diff --git a/add-on/_locales/en/messages.json b/add-on/_locales/en/messages.json
index f2c5acc2e..f433e9940 100644
--- a/add-on/_locales/en/messages.json
+++ b/add-on/_locales/en/messages.json
@@ -366,6 +366,18 @@
"message": "drop it here to share",
"description": "Partial info stats beneath the header on the share files page (quickUpload_drop_it_here)"
},
+ "quickUpload_options_show": {
+ "message": "upload options",
+ "description": "Button on the share files page (quickUpload_options_show)"
+ },
+ "quickUpload_options_wrapWithDirectory": {
+ "message": "Wrap single files in a directory to preserve their filenames.",
+ "description": "Checkbox label on the share files page (quickUpload_options_wrapWithDirectory)"
+ },
+ "quickUpload_options_pinUpload": {
+ "message": "Pin files so they are retained when performing garbage collection on your IPFS repo.",
+ "description": "Checkbox label on the share files page (quickUpload_options_pinUpload)"
+ },
"page_proxyAcl_title": {
"message": "Manage Permissions",
"description": "Page title for the IPFS proxy ACL page (page_proxyAcl_title)"
diff --git a/add-on/src/background/big-deps.js b/add-on/src/background/big-deps.js
new file mode 100644
index 000000000..7b12c1f75
--- /dev/null
+++ b/add-on/src/background/big-deps.js
@@ -0,0 +1,12 @@
+'use strict'
+/* eslint-env browser, webextensions */
+
+// Problem: addons-linter does not permit .js bigger than 4MB (FILE_TOO_LARGE)
+// Solution: this file lets us fine-tune to decide what to extract
+// into a shared bundle created by browserify+factor-bundle
+
+const Ipfs = require('ipfs')
+// const IpfsApi = require('ipfs-api')
+const node = new Ipfs({ start: false })
+console.log('this code wont run :-)', node)
+// console.log('fake api', IpfsApi)
diff --git a/add-on/src/lib/ipfs-companion.js b/add-on/src/lib/ipfs-companion.js
index 2a32bf01f..71ffccb89 100644
--- a/add-on/src/lib/ipfs-companion.js
+++ b/add-on/src/lib/ipfs-companion.js
@@ -219,7 +219,7 @@ module.exports = async function init () {
// URL Uploader
// -------------------------------------------------------------------
- async function addFromURL (info) {
+ async function addFromURL (info, options) {
const srcUrl = await findUrlForContext(info)
let result
try {
@@ -233,17 +233,19 @@ module.exports = async function init () {
// console.log('addFromURL.fetchOptions', fetchOptions)
const response = await fetch(srcUrl, fetchOptions)
const blob = await response.blob()
-
const buffer = await new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onloadend = () => resolve(Buffer.from(reader.result))
reader.onerror = reject
reader.readAsArrayBuffer(blob)
})
-
- result = await ipfs.files.add(buffer)
+ const data = {
+ path: decodeURIComponent(new URL(response.url).pathname.split('/').pop()),
+ content: buffer
+ }
+ result = await ipfs.files.add(data, options)
} else {
- result = await ipfs.util.addFromURL(srcUrl)
+ result = await ipfs.util.addFromURL(srcUrl, options)
}
} catch (error) {
console.error('Error in upload to IPFS context menu', error)
@@ -274,19 +276,24 @@ module.exports = async function init () {
}
}
- function uploadResultHandler (result) {
- result.forEach(function (file) {
+ async function uploadResultHandler (result) {
+ for (let file of result) {
if (file && file.hash) {
const {path, url} = getIpfsPathAndNativeAddress(file.hash)
- browser.tabs.create({
- 'url': url
- })
- console.info('[ipfs-companion] successfully stored', path)
+ // open the wrapping directory (or the CID if wrapping was disabled)
+ if (result.length === 1 || file.path === '' || file.path === file.hash) {
+ await browser.tabs.create({
+ 'url': url
+ })
+ }
+ // preload every item
if (state.preloadAtPublicGateway) {
preloadAtPublicGateway(path)
}
+ console.info('[ipfs-companion] successfully stored', file)
}
- })
+ }
+ return result
}
// Page-specific Actions
@@ -589,17 +596,20 @@ module.exports = async function init () {
return ipfs
},
- async ipfsAddAndShow (buffer) {
+ async ipfsAddAndShow (data, options) {
+ options = options || {}
let result
try {
- result = await api.ipfs.files.add(buffer)
+ result = await api.ipfs.files.add(data, options)
+ if (options.wrapWithDirectory && result.length !== data.length + 1) {
+ throw new Error(`ipfs.files.add result should include an entry for every uploaded file plus additional one for a wrapping directory (${data.length + 1} in total), but found only ${result.length} entries`)
+ }
} catch (err) {
console.error('Failed to IPFS add', err)
notify('notify_uploadErrorTitle', 'notify_inlineErrorMsg', `${err.message}`)
throw err
}
- uploadResultHandler(result)
- return result
+ return uploadResultHandler(result)
},
async destroy () {
diff --git a/add-on/src/popup/quick-upload.css b/add-on/src/popup/quick-upload.css
index c34cad974..3c84c7039 100644
--- a/add-on/src/popup/quick-upload.css
+++ b/add-on/src/popup/quick-upload.css
@@ -1,4 +1,5 @@
@import url('../../ui-kit/tachyons.css');
+@import url('../../ui-kit/ipfs.css');
@import url('heartbeat.css');
html, body, #root {
@@ -11,3 +12,37 @@ html, body, #root {
.hover-inner-shadow:hover {
box-shadow: inset 0 0 10px 5px rgba(211, 235, 237, 0.2);
}
+
+.no-user-select {
+ user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+}
+
+/* Temporary CSS for custom checkbox (TODO: move/replace with ipfs-css */
+input[type='checkbox'] {
+ display:none;
+}
+
+input[type=checkbox] + .mark {
+ background: transparent;
+ height: 16px;
+ width: 16px;
+ display: inline-block;
+ padding: 0;
+ border: 1px #6ACAD1 solid;
+ position: relative;
+}
+
+input[type=checkbox]:checked + .mark::after {
+ color: #6ACAD1;
+ position: absolute;
+ left: 4px;
+ top: 2px;
+ content: "";
+ height: 6px;
+ width: 6px;
+ border-left: 2px solid;
+ border-bottom: 2px solid;
+ transform: rotate(-45deg);
+}
diff --git a/add-on/src/popup/quick-upload.html b/add-on/src/popup/quick-upload.html
index 82fd6ceac..ed0304e26 100644
--- a/add-on/src/popup/quick-upload.html
+++ b/add-on/src/popup/quick-upload.html
@@ -2,7 +2,6 @@
- IPFS Upload
diff --git a/add-on/src/popup/quick-upload.js b/add-on/src/popup/quick-upload.js
index e2bd39033..d8c353435 100644
--- a/add-on/src/popup/quick-upload.js
+++ b/add-on/src/popup/quick-upload.js
@@ -6,16 +6,30 @@ const choo = require('choo')
const html = require('choo/html')
const logo = require('./logo')
+document.title = browser.i18n.getMessage('panel_quickUpload')
+
const app = choo()
app.use(quickUploadStore)
app.route('*', quickUploadPage)
app.mount('#root')
+function file2buffer (file) {
+ return new Promise((resolve, reject) => {
+ const reader = new FileReader()
+ reader.onloadend = () => resolve(Buffer.from(reader.result))
+ reader.onerror = reject
+ reader.readAsArrayBuffer(file)
+ })
+}
+
function quickUploadStore (state, emitter) {
state.message = ''
state.peerCount = ''
state.ipfsNodeType = 'external'
+ state.wrapWithDirectory = true
+ state.pinUpload = true
+ state.expandOptions = false
function updateState ({ipfsNodeType, peerCount}) {
state.ipfsNodeType = ipfsNodeType
@@ -37,22 +51,25 @@ function quickUploadStore (state, emitter) {
})
emitter.on('fileInputChange', async (event) => {
- const file = event.target.files[0]
try {
const { ipfsCompanion } = await browser.runtime.getBackgroundPage()
-
- const buffer = await new Promise((resolve, reject) => {
- const reader = new FileReader()
- reader.onloadend = () => resolve(Buffer.from(reader.result))
- reader.onerror = reject
- reader.readAsArrayBuffer(file)
- })
-
- await ipfsCompanion.ipfsAddAndShow(buffer)
-
+ const uploadTab = await browser.tabs.getCurrent()
+ const files = []
+ for (let file of event.target.files) {
+ const buffer = await file2buffer(file)
+ files.push({
+ path: file.name,
+ content: buffer
+ })
+ }
+ const uploadOptions = {
+ wrapWithDirectory: state.wrapWithDirectory || files.length > 1,
+ pin: state.pinUpload
+ }
+ const result = await ipfsCompanion.ipfsAddAndShow(files, uploadOptions)
+ console.log('Upload result', result)
// close upload tab as it will be replaced with a new tab with uploaded content
- const tab = await browser.tabs.getCurrent()
- browser.tabs.remove(tab.id)
+ browser.tabs.remove(uploadTab.id)
} catch (err) {
console.error('Unable to perform quick upload', err)
// keep upload tab and display error message in it
@@ -62,14 +79,41 @@ function quickUploadStore (state, emitter) {
})
}
+function quickUploadOptions (state, emit) {
+ const onExpandOptions = (e) => { state.expandOptions = true; emit('render') }
+ const onWrapWithDirectoryChange = (e) => { state.wrapWithDirectory = e.target.checked }
+ const onPinUploadChange = (e) => { state.pinUpload = e.target.checked }
+ if (state.expandOptions) {
+ return html`
+
+
+
+
+ `
+ }
+ return html`
+
+ `
+}
+
function quickUploadPage (state, emit) {
const onFileInputChange = (e) => emit('fileInputChange', e)
const {peerCount} = state
return html`
-
`
diff --git a/package.json b/package.json
index 1d6a6e2b1..14abcccdc 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"build:copy:wx-polyfill-lib": "shx cp node_modules/webextension-polyfill/dist/browser-polyfill.min.js add-on/dist/contentScripts/browser-polyfill.min.js",
"build:js": "run-p build:js:*",
"build:js:gui": "browserify -p prundupify -g [ uglifyify --compress [ --inline=0 ] ] -t [ browserify-package-json --global ] add-on/src/popup/browser-action/index.js add-on/src/popup/page-action/index.js add-on/src/popup/quick-upload.js -p [ factor-bundle -o add-on/dist/popup/browser-action/browser-action.js -o add-on/dist/popup/page-action/page-action.js -o add-on/dist/popup/quick-upload.js] -o add-on/dist/ipfs-companion-gui-common.js",
- "build:js:backend": "browserify -p prundupify -g [ uglifyify --compress [ --inline=0 ] ] -t [ browserify-package-json --global ] add-on/src/background/background.js add-on/src/options/options.js add-on/src/pages/proxy-acl/index.js add-on/src/pages/proxy-access-dialog/index.js -p [ factor-bundle -o add-on/dist/background/background.js -o add-on/dist/options/options.js -o add-on/dist/pages/proxy-acl/proxy-acl.js -o add-on/dist/pages/proxy-access-dialog/proxy-access-dialog.js ] -o add-on/dist/ipfs-companion-common.js",
+ "build:js:backend": "browserify -p prundupify -g [ uglifyify --compress [ --inline=0 ] ] -t [ browserify-package-json --global ] add-on/src/background/background.js add-on/src/background/big-deps.js add-on/src/options/options.js add-on/src/pages/proxy-acl/index.js add-on/src/pages/proxy-access-dialog/index.js -p [ factor-bundle -o add-on/dist/background/background.js -o add-on/dist/background/big-deps.js -o add-on/dist/options/options.js -o add-on/dist/pages/proxy-acl/proxy-acl.js -o add-on/dist/pages/proxy-access-dialog/proxy-access-dialog.js ] -o add-on/dist/ipfs-companion-common.js",
"build:content-scripts": "run-p build:content-scripts:*",
"build:content-scripts:ipfs-proxy": "run-s build:content-scripts:ipfs-proxy:*",
"build:content-scripts:ipfs-proxy:page": "browserify -p prundupify -g uglifyify -t [ browserify-package-json --global ] add-on/src/contentScripts/ipfs-proxy/page.js -o add-on/dist/contentScripts/ipfs-proxy/page.js",
@@ -94,7 +94,7 @@
"doc-sniff": "1.0.1",
"file-type": "7.6.0",
"ipfs": "0.28.2",
- "ipfs-api": "18.2.0",
+ "ipfs-api": "21.0.0",
"ipfs-css": "0.3.0",
"ipfs-postmsg-proxy": "2.16.0",
"is-ipfs": "0.3.2",
diff --git a/yarn.lock b/yarn.lock
index 43ec641ca..1280ac6f6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1039,6 +1039,17 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-
inherits "^2.0.1"
safe-buffer "^5.0.1"
+browserify-aes@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
browserify-cipher@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
@@ -1160,6 +1171,17 @@ bs58check@<3.0.0, bs58check@^2.0.0:
bs58 "^4.0.0"
create-hash "^1.1.0"
+buffer-alloc-unsafe@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz#ffe1f67551dd055737de253337bfe853dfab1a6a"
+
+buffer-alloc@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.1.0.tgz#05514d33bf1656d3540c684f65b1202e90eca303"
+ dependencies:
+ buffer-alloc-unsafe "^0.1.0"
+ buffer-fill "^0.1.0"
+
buffer-compare@=1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-compare/-/buffer-compare-1.0.0.tgz#acaa7a966e98eee9fae14b31c39a5f158fb3c4a2"
@@ -1180,6 +1202,14 @@ buffer-equals@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5"
+buffer-fill@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071"
+
+buffer-from@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
+
buffer-indexof@~0.0.0:
version "0.0.2"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-0.0.2.tgz#ed0f36b7ae166a66a7cd174c0467ae8dedf008f5"
@@ -1729,6 +1759,15 @@ concat-stream@^1.6.1:
readable-stream "^2.2.2"
typedarray "^0.0.6"
+concat-stream@^1.6.2:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
concat-stream@~1.5.1:
version "1.5.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
@@ -3313,6 +3352,10 @@ from@~0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+fs-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+
"fs-ext@github:baudehlo/node-fs-ext#master":
version "1.0.0"
resolved "https://codeload.github.com/baudehlo/node-fs-ext/tar.gz/500be8514729c194ac7ca2b30b5bc7eaf812670d"
@@ -4167,7 +4210,47 @@ ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-ipfs-api@18.2.0, ipfs-api@^18.1.2:
+ipfs-api@21.0.0:
+ version "21.0.0"
+ resolved "https://registry.yarnpkg.com/ipfs-api/-/ipfs-api-21.0.0.tgz#fd8611025e8eff91cde0fad1ca2386d73ff05cd8"
+ dependencies:
+ async "^2.6.0"
+ big.js "^5.0.3"
+ bs58 "^4.0.1"
+ cids "~0.5.3"
+ concat-stream "^1.6.2"
+ detect-node "^2.0.3"
+ flatmap "0.0.3"
+ glob "^7.1.2"
+ ipfs-block "~0.7.1"
+ ipfs-unixfs "~0.1.14"
+ ipld-dag-cbor "~0.12.0"
+ ipld-dag-pb "~0.14.4"
+ is-ipfs "~0.3.2"
+ is-pull-stream "0.0.0"
+ is-stream "^1.1.0"
+ libp2p-crypto "^0.13.0"
+ lru-cache "^4.1.3"
+ multiaddr "^5.0.0"
+ multibase "~0.4.0"
+ multihashes "~0.4.13"
+ ndjson "^1.5.0"
+ once "^1.4.0"
+ peer-id "~0.10.7"
+ peer-info "~0.14.1"
+ promisify-es6 "^1.0.3"
+ pull-defer "^0.2.2"
+ pull-pushable "^2.2.0"
+ pull-stream-to-stream "^1.3.4"
+ pump "^3.0.0"
+ qs "^6.5.2"
+ readable-stream "^2.3.6"
+ stream-http "^2.8.2"
+ stream-to-pull-stream "^1.7.2"
+ streamifier "^0.1.1"
+ tar-stream "^1.6.0"
+
+ipfs-api@^18.1.2:
version "18.2.0"
resolved "https://registry.yarnpkg.com/ipfs-api/-/ipfs-api-18.2.0.tgz#10b3095509aa4ec121ba1b4a7e29edea4e61281d"
dependencies:
@@ -4235,7 +4318,7 @@ ipfs-block-service@~0.13.0:
version "0.13.0"
resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.13.0.tgz#4d827863c59f34f9e44deb92dea9a5b1a9fcb093"
-ipfs-block@^0.7.1:
+ipfs-block@^0.7.1, ipfs-block@~0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ipfs-block/-/ipfs-block-0.7.1.tgz#f506d6159219e19690d3ab863c039cba293d1e40"
dependencies:
@@ -4502,6 +4585,23 @@ ipld-dag-pb@~0.13.1:
pull-traverse "^1.0.3"
stable "^0.1.6"
+ipld-dag-pb@~0.14.4:
+ version "0.14.4"
+ resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.14.4.tgz#9a147575939832ab143da5b3a1b11cc37905ef7e"
+ dependencies:
+ async "^2.6.0"
+ bs58 "^4.0.1"
+ buffer-loader "~0.0.1"
+ cids "~0.5.3"
+ class-is "^1.1.0"
+ is-ipfs "~0.3.2"
+ multihashes "~0.4.13"
+ multihashing-async "~0.4.8"
+ protons "^1.0.1"
+ pull-stream "^3.6.7"
+ pull-traverse "^1.0.3"
+ stable "0.1.6"
+
ipld-ethereum@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ipld-ethereum/-/ipld-ethereum-2.0.0.tgz#f024c201f8ec670f6c18c91cf3d8d39879330acf"
@@ -5521,6 +5621,24 @@ libp2p-crypto@^0.12.1, libp2p-crypto@~0.12.0, libp2p-crypto@~0.12.1:
tweetnacl "^1.0.0"
webcrypto-shim "github:dignifiedquire/webcrypto-shim#master"
+libp2p-crypto@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz#25404ea43bf2fd3802780d9ab87b5d2095d86f07"
+ dependencies:
+ asn1.js "^5.0.0"
+ async "^2.6.0"
+ browserify-aes "^1.2.0"
+ bs58 "^4.0.1"
+ keypair "^1.0.1"
+ libp2p-crypto-secp256k1 "~0.2.2"
+ multihashing-async "~0.4.8"
+ node-forge "^0.7.5"
+ pem-jwk "^1.5.1"
+ protons "^1.0.1"
+ rsa-pem-to-jwk "^1.1.3"
+ tweetnacl "^1.0.0"
+ webcrypto-shim "github:dignifiedquire/webcrypto-shim#master"
+
libp2p-floodsub@^0.14.1, libp2p-floodsub@~0.14.1:
version "0.14.1"
resolved "https://registry.yarnpkg.com/libp2p-floodsub/-/libp2p-floodsub-0.14.1.tgz#5aa77718c09427123869f53722ad1ae102a3be2e"
@@ -6031,6 +6149,13 @@ lru-cache@^4.0.0, lru-cache@^4.1.2:
pseudomap "^1.0.2"
yallist "^2.1.2"
+lru-cache@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
lru_map@0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
@@ -6051,6 +6176,12 @@ mafmt@^4.0.0:
dependencies:
multiaddr "^3.0.2"
+mafmt@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-6.0.0.tgz#ec13f8761253354c23420ae3903c837b6649caa6"
+ dependencies:
+ multiaddr "^4.0.0"
+
magic-string@^0.22.4:
version "0.22.5"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e"
@@ -6406,6 +6537,19 @@ multiaddr@^4.0.0:
varint "^5.0.0"
xtend "^4.0.1"
+multiaddr@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-5.0.0.tgz#c8d7492d8506de470610f6c1adb82af9a69d6748"
+ dependencies:
+ bs58 "^4.0.1"
+ class-is "^1.1.0"
+ ip "^1.1.5"
+ ip-address "^5.8.9"
+ lodash.filter "^4.6.0"
+ lodash.map "^4.6.0"
+ varint "^5.0.0"
+ xtend "^4.0.1"
+
multibase@~0.3.4:
version "0.3.4"
resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.3.4.tgz#fba8b0aac9724f62e24782557e2a062e30d3ae7f"
@@ -6701,6 +6845,10 @@ node-forge@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300"
+node-forge@^0.7.5:
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
+
node-notifier@5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
@@ -7296,6 +7444,15 @@ peer-info@^0.14.0:
multiaddr "^4.0.0"
peer-id "~0.10.7"
+peer-info@~0.14.1:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/peer-info/-/peer-info-0.14.1.tgz#ac5aec421e9965f7b0e7576d717941bb25676134"
+ dependencies:
+ lodash.uniqby "^4.7.0"
+ mafmt "^6.0.0"
+ multiaddr "^4.0.0"
+ peer-id "~0.10.7"
+
pelo@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/pelo/-/pelo-0.1.0.tgz#54157d3bc63c10da65504d6b801f0b535584c11b"
@@ -7794,6 +7951,10 @@ qs@^6.5.1, qs@~6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+qs@^6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+
qs@~6.3.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
@@ -7929,6 +8090,18 @@ readable-stream@^2.3.5:
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
+readable-stream@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
readable-stream@~1.0.15, readable-stream@~1.0.17:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@@ -9106,6 +9279,16 @@ stream-http@^2.8.1:
to-arraybuffer "^1.0.0"
xtend "^4.0.0"
+stream-http@^2.8.2:
+ version "2.8.2"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87"
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
stream-parser@~0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773"
@@ -9192,7 +9375,7 @@ string.prototype.padend@^3.0.0:
es-abstract "^1.4.3"
function-bind "^1.0.2"
-string_decoder@^1.1.1:
+string_decoder@^1.1.1, string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
dependencies:
@@ -9397,6 +9580,18 @@ tar-stream@^1.1.2, tar-stream@^1.5.0, tar-stream@^1.5.5:
readable-stream "^2.0.0"
xtend "^4.0.0"
+tar-stream@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.0.tgz#a50efaa7b17760b82c27b3cae4a301a8254a5715"
+ dependencies:
+ bl "^1.0.0"
+ buffer-alloc "^1.1.0"
+ end-of-stream "^1.0.0"
+ fs-constants "^1.0.0"
+ readable-stream "^2.0.0"
+ to-buffer "^1.1.0"
+ xtend "^4.0.0"
+
tar@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -9538,6 +9733,10 @@ to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+to-buffer@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
+
to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"