diff --git a/.babelrc b/.babelrc index 9b0470a12..93ea6bf23 100644 --- a/.babelrc +++ b/.babelrc @@ -1,13 +1,15 @@ { "plugins": [ + "transform-es2015-modules-commonjs", "syntax-async-generators" ], "presets": [ [ "@babel/preset-env", { + "debug": true, "targets": { - "firefox": 61, + "firefox": 63, "chrome": 67 } } diff --git a/add-on/manifest.firefox-libdweb.json b/add-on/manifest.firefox-libdweb.json new file mode 100644 index 000000000..ebb66fd8f --- /dev/null +++ b/add-on/manifest.firefox-libdweb.json @@ -0,0 +1,24 @@ +{ + "applications": { + "gecko": { + "id": "ipfs-companion-libdweb-build@ci.ipfs.team" + } + }, + "protocol_handlers": [], + "experiment_apis": { + "protocol": { + "schema": "../node_modules/libdweb/src/protocol/protocol.json", + "child": { + "scopes": ["addon_child"], + "paths": [["protocol"]], + "script": "../node_modules/libdweb/src/protocol/client.js" + }, + "parent": { + "events": ["startup"], + "scopes": ["addon_parent"], + "paths": [["protocol"]], + "script": "../node_modules/libdweb/src/protocol/host.js" + } + } + } +} diff --git a/add-on/manifest.firefox.json b/add-on/manifest.firefox.json index e053be1af..c2d189682 100644 --- a/add-on/manifest.firefox.json +++ b/add-on/manifest.firefox.json @@ -8,7 +8,7 @@ "applications": { "gecko": { "id": "ipfs-firefox-addon@lidel.org", - "strict_min_version": "59.0" + "strict_min_version": "63.0" } }, "page_action": { diff --git a/add-on/src/lib/ipfs-companion.js b/add-on/src/lib/ipfs-companion.js index 7fd94f38a..592b08f8f 100644 --- a/add-on/src/lib/ipfs-companion.js +++ b/add-on/src/lib/ipfs-companion.js @@ -8,7 +8,6 @@ const { createIpfsPathValidator, pathAtHttpGateway } = require('./ipfs-path') const createDnslinkResolver = require('./dnslink') const { createRequestModifier, redirectOptOutHint } = require('./ipfs-request') const { initIpfsClient, destroyIpfsClient } = require('./ipfs-client') -const { createIpfsUrlProtocolHandler } = require('./ipfs-protocol') const createNotifier = require('./notifier') const createCopier = require('./copier') const createRuntimeChecks = require('./runtime-checks') @@ -106,9 +105,15 @@ module.exports = async function init () { browser.runtime.onMessage.addListener(onRuntimeMessage) browser.runtime.onConnect.addListener(onRuntimeConnect) - if (runtime.hasNativeProtocolHandler) { - console.log('[ipfs-companion] registerStringProtocol available. Adding ipfs:// handler') + if (runtime.hasNativeProtocolHandler && browser.protocol.registerStringProtocol) { + console.log('[ipfs-companion] registerStringProtocol from Muon-Brave is available. Adding ipfs:// handler') + const { createIpfsUrlProtocolHandler } = require('./ipfs-protocol-muon-brave') browser.protocol.registerStringProtocol('ipfs', createIpfsUrlProtocolHandler(() => ipfs)) + } else if (runtime.hasNativeProtocolHandler && browser.protocol.registerProtocol) { + console.log('[ipfs-companion] registerProtocol from mozilla/libdweb is available. Adding ipfs:// handler') + const { createIpfsUrlProtocolHandler } = require('./ipfs-protocol-libdweb') + browser.protocol.registerProtocol('ipfs', createIpfsUrlProtocolHandler(getIpfs, dnslinkResolver)) + browser.protocol.registerProtocol('ipns', createIpfsUrlProtocolHandler(getIpfs, dnslinkResolver)) } else { console.log('[ipfs-companion] browser.protocol.registerStringProtocol not available, native protocol will not be registered') } diff --git a/add-on/src/lib/ipfs-protocol-libdweb.js b/add-on/src/lib/ipfs-protocol-libdweb.js new file mode 100644 index 000000000..e32305cd4 --- /dev/null +++ b/add-on/src/lib/ipfs-protocol-libdweb.js @@ -0,0 +1,188 @@ +'use strict' +/* eslint-env browser, webextensions */ + +import { asyncIterateStream } from 'async-iterate-stream/asyncIterateStream' +// import streamHead from 'stream-head' + +const { resolver } = require('ipfs-http-response') +const { mimeSniff } = require('./mime-sniff') +// const detectContentType = require('ipfs-http-response/src/utils/content-type') +const toArrayBuffer = require('to-arraybuffer') +const peek = require('buffer-peek-stream') +// const dirView = require('./dir-view') +const PathUtils = require('ipfs/src/http/gateway/utils/path') +const isStream = require('is-stream') + +const textBuffer = (data) => new TextEncoder('utf-8').encode(data).buffer + +/* protocol handler for mozilla/libdweb */ + +exports.createIpfsUrlProtocolHandler = (getIpfs, dnslinkResolver) => { + return async (request) => { + console.time('[ipfs-companion] LibdwebProtocolHandler') + console.log(`[ipfs-companion] handling ${request.url}`) + try { + const ipfs = getIpfs() + const url = request.url + // Get /ipfs/ path for URL (resolve to immutable snapshot if ipns://) + const path = immutableIpfsPath(url, dnslinkResolver) + // Then, fetch response from IPFS + const { content, contentType, contentEncoding } = await getResponse(ipfs, url, path) + + // console.log(`contentType=${contentType}, contentEncoding=${contentEncoding}, content`, content) + + return { + contentEncoding, + contentType, + content: streamRespond(content) + } + } catch (err) { + console.error(`[ipfs-companion] failed to get data for ${request.url}`, err) + return { + contentEncoding: 'utf-8', + contentType: 'text/plain', + content: streamRespond(toErrorResponse(request, err)) + } + } finally { + console.timeEnd('[ipfs-companion] LibdwebProtocolHandler') + } + } +} + +async function * streamRespond (response) { + if (isStream(response)) { + for await (const chunk of asyncIterateStream(response, false)) { + // Buffer to ArrayBuffer + yield toArrayBuffer(chunk) + } + } else { + // just a buffer + yield response + } +} + +// Prepare response with a meaningful error +function toErrorResponse (request, error) { + // console.error(`IPFS Error while getting response for ${request.url}`, error) + // TODO + // - create proper error page + // - find a way to communicate common errors (eg. not found, invalid CID, timeout) + if (error.message === 'file does not exist') { + // eg. when trying to access a non-existing file in a directory (basically http 404) + return textBuffer('Not found') + } else if (error.message === 'selected encoding not supported') { + // eg. when trying to access invalid CID + return textBuffer('IPFS Error: selected encoding is not supported in browser context. Make sure your CID is a valid CIDv1 in Base32.') + } + return textBuffer(`Unable to produce IPFS response for "${request.url}": ${error}`) +} + +function immutableIpfsPath (url, dnslinkResolver) { + // TODO: + // - detect invalid addrs and display error page + + // Move protocol to IPFS-like path + let path = url.replace(/^([^:]+):\/\/*/, '/$1/') + // Unescape special characters, eg. ipns://tr.wikipedia-on-ipfs.org/wiki/G%C3%BCne%C5%9F_r%C3%BCzg%C3%A2r%C4%B1.html + path = decodeURI(path) + // Handle IPNS (if present) + if (path.startsWith('/ipns/')) { + // js-ipfs does not implement ipfs.name.resolve yet, so we only do dnslink lookup + // const response = await ipfs.name.resolve(path, {recursive: true, nocache: false}) + const fqdn = path.split('/')[2] + const dnslinkRecord = dnslinkResolver.readAndCacheDnslink(fqdn) + if (!dnslinkRecord) { + throw new Error(`Missing DNS TXT with dnslink for '${fqdn}'`) + } + path = path.replace(`/ipns/${fqdn}`, dnslinkRecord) + } + return path +} + +async function getResponse (ipfs, url, path) { + let cid + try { + // try direct resolver, then fallback to manual one + const dag = await resolver.cid(ipfs, path) + cid = dag.cid + console.log('resolver.cid', cid.toBaseEncodedString()) + } catch (err) { + // console.error('error in resolver.cid', err) + // handle directories + if (err.cid && err.message === 'This dag node is a directory') { + const dirCid = err.cid + console.log('resolver.directory', dirCid.toBaseEncodedString()) + const data = await resolver.directory(ipfs, url, dirCid) + console.log('resolver.directory', Array.isArray(data) ? data : `returned '${typeof data}'`) + // TODO: redirect so directory always end with `/` + if (typeof data === 'string') { + // return HTML with directory listing + return { + content: textBuffer(data), + contentType: 'text/html', + contentEncoding: 'utf-8' + } + } else if (Array.isArray(data)) { + console.log('resolver.directory.indexes', data) + // return first index file + path = PathUtils.joinURLParts(path, data[0].name) + return getResponse(ipfs, url, path) + } + throw new Error('Invalid output of resolver.directory') + } else if (err.parentDagNode && err.missingLinkName) { + // It may be legitimate error, but it could also be a part of hamt-sharded-directory + // (example: ipns://tr.wikipedia-on-ipfs.org/wiki/Anasayfa.html) + // which is not supported by resolver.cid from ipfs-http-response at this time. + // Until ipfs.resolve support with sharding is added upstream, we use fallback below. + // TODO remove this after ipfs-http-response switch to ipfs.resolve + // or sharding is supported by some other means + try { + const matchingLink = (await ipfs.ls(err.parentDagNode, { resolveType: false })).find(item => item.name === err.missingLinkName) + if (matchingLink) { + console.log('resolver.cid.err.matchingLink', matchingLink) + path = path.replace(matchingLink.path, matchingLink.hash) + console.log('resolver.cid.err.path.after.matchingLink', path) + cid = path + // return getResponse(ipfs, url, path) + } else { + throw err + } + } catch (err) { + console.error('Trying to recover from Error while resolver.cid', err) + if (err.message === 'invalid node type') { + throw new Error('hamt-sharded-directory support is spotty with js-ipfs at this time, try go-ipfs until a fix is found') + } else { + // TODO: investigate issue with js-ipfs and ipns://tr.wikipedia-on-ipfs.org/wiki/Anasayfa.html + // (probably edge case relate to sharding) + // For now we fallback to ipfs.files.catReadableStream(full path) + cid = path + } + } + } else { + // unexpected issue, return error + throw err + } + } + + // Efficient mime-sniff over initial bytes + // const { stream, head } = await streamHead(ipfs.files.catReadableStream(cid), {bytes: 512}) + // const contentType = mimeSniff(head, new URL(url).pathname) || undefined + // below old version with buffer-peek-stream + const { stream, contentType } = await new Promise((resolve, reject) => { + try { + console.log(`ipfs.files.catReadableStream(${cid})`) + const catStream = ipfs.files.catReadableStream(cid) + peek(catStream, 512, (err, data, stream) => { + if (err) return reject(err) + const contentType = mimeSniff(data, new URL(url).pathname) || undefined + // TODO: switch to upstream const contentType = detectContentType(new URL(url).pathname, data) || 'application/octet-stream' + resolve({ stream, contentType }) + }) + } catch (err) { + reject(err) + } + }) + console.log(`[ipfs-companion] [ipfs://] handler read ${path} and internally mime-sniffed it as ${contentType}`) + + return { content: stream, contentType } +} diff --git a/add-on/src/lib/ipfs-protocol.js b/add-on/src/lib/ipfs-protocol-muon-brave.js similarity index 98% rename from add-on/src/lib/ipfs-protocol.js rename to add-on/src/lib/ipfs-protocol-muon-brave.js index f48fb2ed7..9737d2a45 100644 --- a/add-on/src/lib/ipfs-protocol.js +++ b/add-on/src/lib/ipfs-protocol-muon-brave.js @@ -1,3 +1,4 @@ +/* this file requires Muon-Brave */ const { mimeSniff } = require('./mime-sniff') const dirView = require('./dir-view') const PathUtils = require('ipfs/src/http/gateway/utils/path') diff --git a/add-on/src/lib/mime-sniff.js b/add-on/src/lib/mime-sniff.js index cc068ec5a..cf1814e02 100644 --- a/add-on/src/lib/mime-sniff.js +++ b/add-on/src/lib/mime-sniff.js @@ -1,12 +1,13 @@ +'use strict' +/* eslint-env browser, webextensions */ + const docSniff = require('doc-sniff') const fileType = require('file-type') -const isSvg = require('is-svg') const mime = require('mime-types') /* * A quick, best effort mime sniffing fn, via: * @see https://github.com/sindresorhus/file-type - * @see https://github.com/sindresorhus/is-svg * @see https://github.com/bitinn/doc-sniff * * buffer => 'mime/type' @@ -16,16 +17,25 @@ const mime = require('mime-types') exports.mimeSniff = function (buff, path) { // deals with buffers, and uses magic number detection const fileTypeRes = fileType(buff) - if (fileTypeRes) return fileTypeRes.mime + if (fileTypeRes) { + const pathSniffRes = mime.lookup(path) + if (fileTypeRes.mime === 'application/xml' && pathSniffRes === 'image/svg+xml') { + // detected SVGs + return pathSniffRes + } + return fileTypeRes.mime + } const str = buff.toString('utf8') - // You gotta read the file to figure out if something is an svg - if (isSvg(str)) return 'image/svg+xml' - // minimal whatwg style doc sniff. const docSniffRes = docSniff(false, str) + if (docSniffRes === 'text/plain' && mime.lookup(path) === 'text/markdown') { + // force plain text, otherwise browser triggers download of .md files + return 'text/plain' + } + if (!docSniffRes || docSniffRes === 'text/plain') { // fallback to guessing by file extension return mime.lookup(path) diff --git a/add-on/src/lib/runtime-checks.js b/add-on/src/lib/runtime-checks.js index 3d423af36..d190ab31b 100644 --- a/add-on/src/lib/runtime-checks.js +++ b/add-on/src/lib/runtime-checks.js @@ -20,7 +20,7 @@ async function createRuntimeChecks (browser) { const browserInfo = await getBrowserInfo(browser) const runtimeBrowserName = browserInfo ? browserInfo.name : 'unknown' const runtimeIsFirefox = !!runtimeBrowserName.match('Firefox') - const runtimeHasNativeProtocol = !!(browser && browser.protocol && browser.protocol.registerStringProtocol) + const runtimeHasNativeProtocol = !!(browser && browser.protocol && (browser.protocol.registerProtocol || browser.protocol.registerStringProtocol)) // platform const platformInfo = await getPlatformInfo(browser) const runtimeIsAndroid = platformInfo ? platformInfo.os === 'android' : false diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 7956f1990..6e7dc5633 100644 --- a/ci/Jenkinsfile +++ b/ci/Jenkinsfile @@ -63,7 +63,9 @@ timeout(time: 1, unit: 'HOURS') { parallel( // https://github.com/yarnpkg/yarn/issues/3110#issuecomment-293347341 bat 'npx yarn@1.10.1 config set msvs_version 2015 --global' // run developer build as a smoke-test for windows - bat 'npm run dev-build' + // bat 'npm run dev-build' + bat 'npx yarn@1.9.4 --mutex network --no-lockfile' + bat 'npm run libdweb:build' bat 'dir /s /b /o:gn build' } stage('win:test') { @@ -91,7 +93,9 @@ timeout(time: 1, unit: 'HOURS') { parallel( stage('mac:dev-build') { sh 'rm -rf node_modules/' // run developer build as a smoke-test - sh 'npm run dev-build' + // sh 'npm run dev-build' + sh 'npx yarn@1.9.4 --mutex network --no-lockfile' + sh 'npm run libdweb:build' sh 'ls -Rlh build' } stage('mac:test') { diff --git a/docs/developer-notes.md b/docs/developer-notes.md index d2ec21a9b..bca67003e 100644 --- a/docs/developer-notes.md +++ b/docs/developer-notes.md @@ -7,6 +7,7 @@ * [Build and Run in Firefox](#build-and-run-in-firefox) * [Build and Manual Install in Chromium](#build-and-manual-install-in-chromium) * [Firefox for Android](#firefox-for-android) + * [Libdweb with Firefox Nightly](#libdweb) * [Useful Tasks](#useful-tasks) * [Tips](#tips) @@ -62,6 +63,10 @@ Then open up `chrome://extensions` in Chromium-based browser, enable "Developer See [`docs/firefox-for-android.md`](firefox-for-android.md) +### libdweb + +See [`docs/libdweb.md`](libdweb.md) + ## Useful Tasks Each `npm` task can be run separately, but for most of time `dev-build`, `test` and `fix:lint` are all you need. diff --git a/docs/libdweb.md b/docs/libdweb.md new file mode 100644 index 000000000..aac127091 --- /dev/null +++ b/docs/libdweb.md @@ -0,0 +1,86 @@ +# Notes on Developing with `libdweb` + +> [`mozilla/libdweb`](https://github.com/mozilla/libdweb) hosts a community +effort to implement experimental APIs for Firefox WebExtensions with a goal of +enabling dweb protocols in Firefox through browser add-ons. The long term goal +of this project is to integrate these APIs into the WebExtensions ecosystem. + +See also: +- [#343](https://github.com/ipfs-shipyard/ipfs-companion/issues/343): _Create WebExtensions Experiments to Prototype Missing APIs_ + + +## TL;DR + +1. Execute commands below to fetch Firefox Nightly, build and run Companion extension in libdweb-enabled context: + ``` + git clone -b libdweb --depth 1 https://github.com/ipfs-shipyard/ipfs-companion.git + cd ipfs-companion + npm run libdweb + ``` + +2. Optional Smoke-Test: + - Open `ipfs://bafkreickb4yq3sr3q2xqn3z3wzimilsa4wkbx25azqbvcnihq65moyjcvi` + - Open `ipns://docs.ipfs.io` + - Open `ipns://tr.wikipedia-on-ipfs.org` + - Confirm `ipfs://` protocol remains in Location Bar ([example](https://ipfs.io/ipfs/bafybeie5gq4jxvzmsym6hjlwxej4rwdoxt7wadqvmmwbqi7r27fclha2va)) + +## Developer Notes + + +### Install Firefox Nightly + +- Get latest Nightly from http://nightly.mozilla.org/ + - libdweb won't run in regular release, it has to be nightly or developer edition + +### How to Build and run libdweb-enabled bundle + +``` +# checkout libdweb branch into a new directory +# including submodules (namely ./libdweb) +git clone -b libdweb --depth 1 https://github.com/ipfs-shipyard/ipfs-companion.git +cd ipfs-companion + +# install deps and build +npm run libdweb:build + +# run in firefox-nightly +npm run libdweb:firefox +``` + +### Manually run with different firefox binary + +To run your extension in libdweb context: + +``` +npm run libdweb:build +export MOZ_DISABLE_CONTENT_SANDBOX=1 +web-ext run --firefox=/path/to/nightly/firefox-bin --browser-console --url about:debugging +``` + +Additional notes: + +- Script `libdweb:firefox` will download latest Firefox Nightly to `./firefox/firefox` +- After initially running `libdweb:build` it is ok to use `yarn watch` – it will work as expected + +## Known Issues + +If you are using `yarn` it may not update github-based dependencies and produce bogus `this.content is undefined` errors. + +Fix is to make sure you run the latest versions of `libdweb` and other dev deps by removing yarn cache. +Execute `yarn cache clean`. + +## Appendix: Smoke-Testing libdweb APIs + +#### Protocol Handler API + +1. Open `ipfs://bafkreickb4yq3sr3q2xqn3z3wzimilsa4wkbx25azqbvcnihq65moyjcvi` +1. Open `ipns://docs.ipfs.io` +1. Confirm `ipfs://` protocol remains in Location Bar ([example](https://ipfs.io/ipfs/bafybeie5gq4jxvzmsym6hjlwxej4rwdoxt7wadqvmmwbqi7r27fclha2va)) + +## References + +- [ipfs-companion/issues/#343](https://github.com/ipfs-shipyard/ipfs-companion/issues/343) – Create WebExtensions Experiments to Prototype Missing APIs + - [ipfs-companion/pr/533](https://github.com/ipfs-shipyard/ipfs-companion/pull/533) - `ipfs://` and `ipns://` protocol handlers with libdweb API +- https://github.com/mozilla/libdweb/ – Extension context containing an experimental libdweb APIs +- https://github.com/orgs/libdweb – API adapters for seamless libdweb integration +- `#dweb` @ [irc.mozilla.org](https://wiki.mozilla.org/IRC#Connect_to_the_Mozilla_IRC_server) diff --git a/package.json b/package.json index f91f68589..06dac57e7 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,9 @@ "bundle:firefox:stable": "npm run bundle:firefox", "bundle:generic": "shx cp add-on/manifest.common.json add-on/manifest.json && web-ext build -a build/generic", "bundle:firefox": "shx cat add-on/manifest.common.json add-on/manifest.firefox.json | json --deep-merge > add-on/manifest.json && web-ext build -a build/firefox/", + "bundle:firefox:release": "npm run bundle:firefox", "bundle:firefox:beta": "shx cat add-on/manifest.common.json add-on/manifest.firefox.json add-on/manifest.firefox-beta.json | json --deep-merge > add-on/manifest.json && web-ext build -a build/firefox/beta/", + "bundle:firefox:libdweb": "shx cat add-on/manifest.common.json add-on/manifest.firefox.json add-on/manifest.firefox-libdweb.json | json --deep-merge > add-on/manifest.json && web-ext build -a build/firefox/libdweb/", "watch": "npm-run-all build:copy --parallel watch:*", "watch:js": "run-p watch:js:*", "watch:js:webpack": "webpack --watch --progress -d --devtool inline-source-map", @@ -52,6 +54,9 @@ "precommit": "run-s lint:standard", "prepush": "run-s clean build lint test", "firefox": "web-ext run --url about:debugging", + "libdweb": "npm run libdweb:build && npm run libdweb:firefox", + "libdweb:build": "npx yarn@1.9.4 && cross-env-shell RELEASE_CHANNEL=libdweb npm run dev-build", + "libdweb:firefox": "npm run get-firefox-nightly && cross-env MOZ_DISABLE_CONTENT_SANDBOX=1 web-ext run --firefox=./firefox/firefox --url about:debugging", "get-firefox-nightly": "shx test -e ./firefox/firefox || get-firefox -b nightly -e", "ci": "run-s ci:*", "ci:install": "npx yarn@1.10.1 install --frozen-lockfile || npx yarn@1.10.1 install --frozen-lockfile", @@ -64,6 +69,9 @@ }, "private": true, "preferGlobal": false, + "standard": { + "parser": "babel-eslint" + }, "resolutions": { "stream-http": "3.0.0", "uglify-es": "npm:terser" @@ -71,8 +79,10 @@ "devDependencies": { "@babel/core": "7.1.2", "@babel/preset-env": "7.1.0", + "babel-eslint": "10.0.1", "babel-loader": "8.0.4", "babel-plugin-syntax-async-generators": "6.13.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "chai": "4.2.0", "cross-env": "5.2.0", "download-cli": "1.1.1", @@ -95,7 +105,7 @@ "sinon-chrome": "2.3.2", "standard": "12.0.1", "tar": "4.4.6", - "terser": "3.9.2", + "terser": "3.10.0", "transform-loader": "0.2.4", "web-ext": "2.9.1", "webpack": "4.20.2", @@ -104,6 +114,8 @@ "webpack-merge": "4.1.4" }, "dependencies": { + "async-iterate-stream": "1.0.3", + "buffer-peek-stream": "1.0.1", "choo": "6.13.0", "doc-sniff": "1.0.1", "drag-and-drop-files": "0.0.1", @@ -115,6 +127,8 @@ "ipfs-http-response": "0.2.0", "ipfs-postmsg-proxy": "3.1.1", "is-ipfs": "0.4.7", + "is-stream": "1.1.0", + "libdweb": "https://github.com/mozilla/libdweb/tarball/a78b0a0c9a1f1d3d1e3343995de7d4a9b0cb000c/libdweb.tar.gz", "is-svg": "3.0.0", "lru-cache": "4.1.3", "mime-types": "2.1.20", @@ -123,6 +137,7 @@ "piggybacker": "2.0.0", "pull-file-reader": "1.0.2", "tachyons": "4.11.1", + "to-arraybuffer": "1.0.1", "webextension-polyfill": "0.3.1" } } diff --git a/test/functional/lib/ipfs-protocol.test.js b/test/functional/lib/ipfs-protocol-muon-brave.test.js similarity index 97% rename from test/functional/lib/ipfs-protocol.test.js rename to test/functional/lib/ipfs-protocol-muon-brave.test.js index 9a619efa2..2d2c6fe53 100644 --- a/test/functional/lib/ipfs-protocol.test.js +++ b/test/functional/lib/ipfs-protocol-muon-brave.test.js @@ -1,7 +1,7 @@ 'use strict' const { describe, it } = require('mocha') const { expect } = require('chai') -const { createIpfsUrlProtocolHandler } = require('../../../add-on/src/lib/ipfs-protocol') +const { createIpfsUrlProtocolHandler } = require('../../../add-on/src/lib/ipfs-protocol-muon-brave.js') describe('ipfs-protocol', () => { it('should serve an IPFS file', async () => { diff --git a/web-ext-config.js b/web-ext-config.js index 11ba439f0..f3bf8ac4e 100644 --- a/web-ext-config.js +++ b/web-ext-config.js @@ -6,6 +6,7 @@ module.exports = { sourceDir: 'add-on/', ignoreFiles: [ 'src/', + 'libdweb/', '*.map', 'manifest.*.json' ], diff --git a/webpack.config.js b/webpack.config.js index 6407b31a6..765cf5f0c 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -14,6 +14,7 @@ const commonConfig = { publicPath: '/dist/bundles/', filename: '[name].bundle.js' }, + devtool: 'source-map', optimization: { minimizer: [ // Default flags break js-ipfs: https://github.com/ipfs-shipyard/ipfs-companion/issues/521 diff --git a/yarn.lock b/yarn.lock index 084bd0d79..7aff83d5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -47,12 +47,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0", "@babel/generator@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.2.tgz#fde75c072575ce7abbd97322e8fef5bae67e4630" - integrity sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig== +"@babel/generator@^7.1.2", "@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== dependencies: - "@babel/types" "^7.1.2" + "@babel/types" "^7.1.3" jsesc "^2.5.1" lodash "^4.17.10" source-map "^0.5.0" @@ -268,11 +268,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" integrity sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY= -"@babel/parser@^7.1.0", "@babel/parser@^7.1.2": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.2.tgz#85c5c47af6d244fab77bce6b9bd830e38c978409" integrity sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ== +"@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== + "@babel/plugin-proposal-async-generator-functions@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" @@ -396,9 +401,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.2.tgz#5fa77d473f5a0a3f5266ad7ce2e8c995a164d60a" - integrity sha512-cvToXvp/OsYxtEn57XJu9BvsGSEYjAh9UeUuXpoi7x6QHB7YdWyQ4lRU/q0Fu1IJNT0o0u4FQ1DMQBzJ8/8vZg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + integrity sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -466,9 +471,9 @@ "@babel/helper-simple-access" "^7.1.0" "@babel/plugin-transform-modules-systemjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" - integrity sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + integrity sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw== dependencies: "@babel/helper-hoist-variables" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -640,17 +645,17 @@ invariant "^2.2.0" lodash "^4.17.5" -"@babel/traverse@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2" - integrity sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.3.tgz#7a3731b5f049d1190780de7a5e7fc68357fa5e6c" + integrity sha512-HjJEwtHRWmIQYrZW5UGFMOB9PYfGrCjP0TAJEv70D+SVe7PG0uwWbQchsCeg+a1Mv3bPjnDIrh5wa1OgWg6Z1A== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" + "@babel/generator" "^7.1.3" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" debug "^3.1.0" globals "^11.1.0" lodash "^4.17.10" @@ -664,10 +669,10 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.2.tgz#183e7952cf6691628afdc2e2b90d03240bac80c0" - integrity sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg== +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== dependencies: esutils "^2.0.2" lodash "^4.17.10" @@ -737,9 +742,9 @@ integrity sha512-ZwTHAlC9akprWDinwEPD4kOuwaYZlyMwVJIANsKNC3QVp0AHB04m7RnB4eqeWfgmxw8MGTzS9uMaw93Z3QcZbw== "@types/node@*": - version "10.11.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.4.tgz#e8bd933c3f78795d580ae41d86590bfc1f4f389d" - integrity sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ== + version "10.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.7.tgz#0e75ca9357d646ca754016ca1d68a127ad7e7300" + integrity sha512-yOxFfkN9xUFLyvWaeYj90mlqTJ41CsQzWKS3gXdOMOyPVacUsymejKxJ4/pMW7exouubuEeZLJawGgcNGYlTeg== "@webassemblyjs/ast@1.7.8": version "1.7.8" @@ -1467,11 +1472,56 @@ async-each@^1.0.0: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" integrity sha1-GdOGodntxufByF04iu28xW0zYC0= +async-iterate-stream@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-iterate-stream/-/async-iterate-stream-1.0.3.tgz#a1c752c0ed724ed30d53bf9fa72e3b3cbe7ce083" + integrity sha512-LHLxp45cvdOduBgldML36ix/rbXDn/BvMjLz32k6J8TBaxdoM5RLHey8WYvF4GdLfXeOC8udemb8Oro2IbO7Sg== + dependencies: + async.forever "^0.5.2" + core-js "^2.5.1" + async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== +async.forever@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.forever/-/async.forever-0.5.2.tgz#a6f79dbf583787bdba5cbf23c75b55c9d97faaea" + integrity sha1-pvedv1g3h726XL8jx1tVydl/quo= + dependencies: + async.util.ensureasync "0.5.2" + async.util.noop "0.5.2" + async.util.onlyonce "0.5.2" + +async.util.ensureasync@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.ensureasync/-/async.util.ensureasync-0.5.2.tgz#10907f2cbd067a061f99ae6d22e08ced30db0d68" + integrity sha1-EJB/LL0GegYfma5tIuCM7TDbDWg= + dependencies: + async.util.restparam "0.5.2" + async.util.setimmediate "0.5.2" + +async.util.noop@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.noop/-/async.util.noop-0.5.2.tgz#bdd62b97cb0aa3f60b586ad148468698975e58b9" + integrity sha1-vdYrl8sKo/YLWGrRSEaGmJdeWLk= + +async.util.onlyonce@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz#b8e6fc004adc923164d79e32f2813ee465c24ff2" + integrity sha1-uOb8AErckjFk154y8oE+5GXCT/I= + +async.util.restparam@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.restparam/-/async.util.restparam-0.5.2.tgz#03efebf3c0277b97220e525aba750f5e04fc80cd" + integrity sha1-A+/r88Ane5ciDlJaunUPXgT8gM0= + +async.util.setimmediate@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/async.util.setimmediate/-/async.util.setimmediate-0.5.2.tgz#2812ebabf2a58027758d4bc7793d1ccfaf10255f" + integrity sha1-KBLrq/KlgCd1jUvHeT0cz68QJV8= + async@^1.4.0, async@^1.4.2, async@^1.5.2, async@~1.5: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -1555,6 +1605,18 @@ babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.7" +babel-eslint@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" + integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" + babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" @@ -1599,6 +1661,24 @@ babel-plugin-syntax-async-generators@6.13.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" integrity sha1-a8lj67FuzLrmuStZbrfzXDQqi5o= +babel-plugin-transform-es2015-modules-commonjs@6.26.2: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babel-polyfill@6.16.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" @@ -1664,7 +1744,7 @@ babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.26.0: +babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= @@ -1852,9 +1932,9 @@ bl@^1.0.0: safe-buffer "^5.1.1" bl@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-2.1.0.tgz#e5dba41d9be27eb3cb48ed53463cabd025b2a70e" - integrity sha512-5ACYemes58YSYaL06sZuUQBMprbF5ig7B+TNdJXLe5yEgNxrjFyPZbkL7RzJ9ogngDJzZwLCw/qB9Bw9CYT0CA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-2.1.1.tgz#bc883a864d8243b2836cf5b13857f512e7559860" + integrity sha512-YTmzlmPyCuKGFSTLL3P7nlZHk+CDC3ddehCT+/ZwcI35jUjnpfSXlrAAr3hIEoD/+4TvKy27vMp7yc/q8aa6tA== dependencies: readable-stream "^2.3.5" safe-buffer "^5.1.1" @@ -1899,21 +1979,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.0, bn.js@^4.11.3, bn.js@^4 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= dependencies: bytes "3.0.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" boolbase@~1.0.0: version "1.0.0" @@ -2063,11 +2143,11 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.2.tgz#632feb46d1cbdd6bb1a6eb660eff68f2345ae7e7" - integrity sha512-docXmVcYth9AiW5183dEe2IxnbmpXF4jiM6efGBVRAli/iDSS894Svvjenrv5NPqAJ4dEJULmT4MSvmLG9qoYg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.2.0.tgz#3e5e5edf7fa9758ded0885cf88c1e4be753a591c" + integrity sha512-Berls1CHL7qfQz8Lct6QxYA5d2Tvt4doDWHcjvAISybpd+EKZVppNtXgXhaN6SdrPKo7YLTSZuYBs5cYrSWN8w== dependencies: - caniuse-lite "^1.0.30000888" + caniuse-lite "^1.0.30000889" electron-to-chromium "^1.3.73" node-releases "^1.0.0-alpha.12" @@ -2140,6 +2220,11 @@ buffer-more-ints@0.0.2: resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" integrity sha1-JrOIXRD6E9t/wBquOquHAZngEkw= +buffer-peek-stream@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-peek-stream/-/buffer-peek-stream-1.0.1.tgz#53b47570a1347787c5bad4ca2ca3021f9d8b3cfd" + integrity sha1-U7R1cKE0d4fFutTKLKMCH52LPP0= + buffer-split@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-split/-/buffer-split-1.0.0.tgz#4427dbff53731b61d7a71aba47f503396613784a" @@ -2332,10 +2417,10 @@ camelcase@^3.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= -caniuse-lite@^1.0.30000888: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz#53e266c83e725ad3bd2e4a3ea76d5031a8aa4c3e" - integrity sha512-MFxcQ6x/LEEoaIhO7Zdb7Eg8YyNONN+WBnS5ERJ0li2yRw51+i4xXUNxnLaveTb/4ZoJqsWKEmlomhG2pYzlQA== +caniuse-lite@^1.0.30000889: + version "1.0.30000890" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz#86a18ffcc65d79ec6a437e985761b8bf1c4efeaf" + integrity sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg== capture-stack-trace@^1.0.0: version "1.0.1" @@ -2694,9 +2779,9 @@ commander@2.9.0: graceful-readlink ">= 1.0.0" commander@^2.11.0, commander@^2.15.0, commander@^2.18.0, commander@^2.3.0, commander@^2.6.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" - integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== commander@~2.17.1: version "2.17.1" @@ -2858,7 +2943,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== @@ -3172,9 +3257,9 @@ debug@3.1.0, debug@~3.1.0: ms "2.0.0" debug@^3, debug@^3.1.0, debug@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" - integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" @@ -3415,12 +3500,7 @@ delimit-stream@0.1.0: resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= - -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -3688,9 +3768,9 @@ ejs@^2.6.1: integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== electron-to-chromium@^1.3.73: - version "1.3.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz#aa67787067d58cc3920089368b3b8d6fe0fc12f6" - integrity sha512-6PIg7v9zRoVGh6EheRF8h6Plti+3Yo/qtHobS4/Htyt53DNHmKKGFqSae1AIk0k1S4gCQvt7I2WgpbuZNcDY+g== + version "1.3.77" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.77.tgz#9207a874a21a8fcb665bb4ff1675a11ba65517f4" + integrity sha512-XIfQcdU9L4qUte31fFATwptHodMH0Otf53N8y1AKxd1+79vR+2UYpLq+Z1Zbtbuy+w0xd7KwIUrvlnje/htiOg== elegant-spinner@^1.0.1: version "1.0.1" @@ -4085,6 +4165,14 @@ eslint-plugin-standard@~4.0.0: resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-scope@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" @@ -4454,13 +4542,13 @@ expand-template@^1.0.2: integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg== express@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM= + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== dependencies: accepts "~1.3.5" array-flatten "1.1.1" - body-parser "1.18.2" + body-parser "1.18.3" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" @@ -4477,10 +4565,10 @@ express@^4.16.3: on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" + proxy-addr "~2.0.4" + qs "6.5.2" range-parser "~1.2.0" - safe-buffer "5.1.1" + safe-buffer "5.1.2" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" @@ -4602,9 +4690,9 @@ fast-levenshtein@~2.0.4: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-redact@^1.1.14: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-1.2.0.tgz#356bdb968c23473cd4e460689c10785842f41529" - integrity sha512-k/uSk9PtFmvYx0m7bRk5B2gZChQk4euWhrn7Mf3vYSmwZBLh7cGNuMuc/vhH1MKMPyVJMMtl9oMwPnwlKqs7CQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-1.3.0.tgz#c3a41bfecba796f0206c4c71a4613af020e524cc" + integrity sha512-ci4qKDR8nDzQCQTPw4hviyDFaSwTgSYiqddRh/EslkUQa0otpzM8IGnuG+LwiUE54t4OjU2T7bYKmjtd7632Wg== fast-safe-stringify@^2.0.4: version "2.0.6" @@ -5651,9 +5739,9 @@ hosted-git-info@^2.1.4: integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - integrity sha1-ZouTd26q5V696POtRkswekljYl4= + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== htmlparser2@^3.9.1: version "3.9.2" @@ -5667,17 +5755,7 @@ htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^2.0.2" -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@1.6.3, http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= @@ -5752,11 +5830,6 @@ hyperx@^2.3.2: dependencies: hyperscript-attribute-to-property "^1.0.0" -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== - iconv-lite@0.4.23: version "0.4.23" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" @@ -6850,7 +6923,7 @@ is-retry-allowed@^1.0.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@1.1.0, is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -7503,6 +7576,10 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +"libdweb@https://github.com/mozilla/libdweb/tarball/a78b0a0c9a1f1d3d1e3343995de7d4a9b0cb000c/libdweb.tar.gz": + version "0.0.0" + resolved "https://github.com/mozilla/libdweb/tarball/a78b0a0c9a1f1d3d1e3343995de7d4a9b0cb000c/libdweb.tar.gz#fe0fdec69e500f8a191d6d75b5fb51d12d025cb2" + libp2p-bootstrap@~0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/libp2p-bootstrap/-/libp2p-bootstrap-0.9.3.tgz#90d68f890ebdc6aa54e14bb1f257173ad20575f9" @@ -8593,9 +8670,9 @@ minipass@^2.2.1, minipass@^2.3.3: yallist "^3.0.0" minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" + integrity sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg== dependencies: minipass "^2.2.1" @@ -9261,9 +9338,9 @@ npm-conf@^1.1.0: pify "^3.0.0" npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" - integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -10318,7 +10395,7 @@ protons@^1.0.0, protons@^1.0.1: signed-varint "^2.0.1" varint "^5.0.0" -proxy-addr@~2.0.3: +proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== @@ -10623,12 +10700,7 @@ pushdata-bitcoin@^1.0.1: dependencies: bitcoin-ops "^1.3.0" -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== - -qs@^6.5.1, qs@^6.5.2, qs@~6.5.1, qs@~6.5.2: +qs@6.5.2, qs@^6.5.1, qs@^6.5.2, qs@~6.5.1, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== @@ -10686,17 +10758,7 @@ range-parser@~1.2.0: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -raw-body@^2.2.0: +raw-body@2.3.3, raw-body@^2.2.0: version "2.3.3" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== @@ -11284,12 +11346,7 @@ rxjs@^6.1.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -11384,10 +11441,10 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@~5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@5.5.0: version "5.5.0" @@ -11399,6 +11456,11 @@ semver@~5.4.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== +semver@~5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" + integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -11463,11 +11525,6 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -11761,10 +11818,10 @@ snyk-config@2.2.0: lodash "^4.17.5" nconf "^0.10.0" -snyk-docker-plugin@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-1.11.0.tgz#d0115279b731be86f710d45517850fb798517098" - integrity sha512-rJrSj4FfGtaFGNybWTb0bULEqoQEeZfZBpGoDumiXsGqoSWf61Tr1V/Ck9NGcmHWNEVsLZLcE9CXp6Y6Kbo8qA== +snyk-docker-plugin@1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-1.12.0.tgz#6cbf61416946936cbb7bf07bb8293bf7dcdd33be" + integrity sha512-QqKq2bGdnf1L2PNGQrHoqcoaV/PIlJv1qjKIzwA93gfhToKGkgJ31oPXwfef/l9N+ui0Y44c4POBHFbFf8PlJw== dependencies: debug "^3" tslib "^1" @@ -11778,10 +11835,10 @@ snyk-go-plugin@1.5.2: tmp "0.0.33" toml "^2.3.2" -snyk-gradle-plugin@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-2.0.1.tgz#cc0edbe568113f3bf943befaa02b6a2b72b738c0" - integrity sha512-dL9MRlwmDP4OmOk4b61pMqvbu8gG+HVCBTryBEU+vkvjloX0lslKvA5NTUPAM2M8SShnOic54cSegGQChBhYHw== +snyk-gradle-plugin@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-2.1.0.tgz#96c8c0774df6790f67ff0d2888a0a6f0da230754" + integrity sha512-9gYJluomFZ5kaww5FoBvp4zUIsr27pEJ12jQJaVf0FJ0BmyYHmbCoxvHdqjCSYS2fVtF+fmPnvw0XKQOIwA1SA== dependencies: clone-deep "^0.3.0" @@ -11842,17 +11899,17 @@ snyk-policy@1.12.0: snyk-try-require "^1.1.1" then-fs "^2.0.0" -snyk-python-plugin@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.8.1.tgz#622427a30c0570726c9a8c9499e0079184d10874" - integrity sha512-DsUBkQZiPlXGkwzhxxEo2Tvfq6XhygWQThWM0yRBythi9M5n8UimZEwdkBHPj7xKC1clsB8boM3+sT/E1x6XGA== +snyk-python-plugin@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.8.2.tgz#5cd435f7fed745265cdfef30bb09246e43e8a7f5" + integrity sha512-LBvjztnXarSHKyhivzM567icOOLOB98I7S9EEnjepuG+EZ0jiZzqOEMVRmzuYi+hRq3Cwh0hhjkwgJAQpKDz+g== dependencies: tmp "0.0.33" -snyk-resolve-deps@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/snyk-resolve-deps/-/snyk-resolve-deps-4.0.1.tgz#099bacf1034a9737ebbe75bfdb8d06cca0553a3c" - integrity sha512-gieaYoOuJLXzUmDDKfQJAqfwaxa43KmSqN2d9abRfgMXnLlX9IqyoZ1wqZMbd3WN7tsHSkpWvVwc4FHdQEkUKA== +snyk-resolve-deps@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/snyk-resolve-deps/-/snyk-resolve-deps-4.0.2.tgz#c3fa08a14fff6667628ec590061360de15f67ae6" + integrity sha512-nlw62wiWhGOTw3BD3jVIwrUkRR4iNxEkkO4Y/PWs8BsUWseGu1H6QgLesFXJb3qx7ANJ5UbUCJMgV+eL0Lf9cA== dependencies: ansicolors "^0.3.2" debug "^3.2.5" @@ -11901,9 +11958,9 @@ snyk-try-require@1.3.1, snyk-try-require@^1.1.1: then-fs "^2.0.0" snyk@^1.88.2: - version "1.100.2" - resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.100.2.tgz#b12e8c86ddaa4a8d36a87849681ba9b9e14ccea0" - integrity sha512-MiLfz42a2bo+B0FutVwM45RXKsY1VqgLlbnjdIovOECNoY0FBoe0xhJRpDfZEl+xWXS+okBLVR0K01I+me13fQ== + version "1.103.3" + resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.103.3.tgz#efd016e992704cb495ffa7b23d62b23b7a26a3a4" + integrity sha512-tcnVfZ/+eeng90SMtoCZsH/RtO6M7Q0xBba8HWOuF2pj1kMK8dMbZu3NG3adwFDoiclHndufugfnDqueiMLH/A== dependencies: abbrev "^1.1.1" ansi-escapes "^3.1.0" @@ -11921,18 +11978,18 @@ snyk@^1.88.2: recursive-readdir "^2.2.2" semver "^5.5.0" snyk-config "2.2.0" - snyk-docker-plugin "1.11.0" + snyk-docker-plugin "1.12.0" snyk-go-plugin "1.5.2" - snyk-gradle-plugin "2.0.1" + snyk-gradle-plugin "2.1.0" snyk-module "1.8.2" snyk-mvn-plugin "2.0.0" snyk-nodejs-lockfile-parser "1.5.1" snyk-nuget-plugin "1.6.5" snyk-php-plugin "1.5.1" snyk-policy "1.12.0" - snyk-python-plugin "1.8.1" + snyk-python-plugin "1.8.2" snyk-resolve "1.0.1" - snyk-resolve-deps "4.0.1" + snyk-resolve-deps "4.0.2" snyk-sbt-plugin "2.0.0" snyk-tree "^1.0.0" snyk-try-require "1.3.1" @@ -12043,9 +12100,9 @@ sort-keys@^2.0.0: is-plain-obj "^1.0.0" source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.2" @@ -12277,7 +12334,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -12692,10 +12749,11 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -terser@3.9.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.9.2.tgz#d139d8292eb3a23091304c934fb539d9f456fb19" - integrity sha512-zOaL2PwflERZkVWbzv8rGbDR493fUaD/KXIUz/vjuvyH6Cxwu4pitM6con3Jy4bWtcQJwNOvN4rHltFeTEwZQA== +terser@3.10.0, uglify-es@^3.3.4, "uglify-es@npm:terser": + name uglify-es + version "3.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.0.tgz#6ae15dafecbd02c9788d5f36d27fca32196b533a" + integrity sha512-hNh2WR3YxtKoY7BNSb3+CJ9Xv9bbUuOU9uriIf2F1tiAYNA4rNy2wWuSDV8iKcag27q65KPJ/sPpMWEh6qttgw== dependencies: commander "~2.17.1" source-map "~0.6.1" @@ -12811,6 +12869,11 @@ to-array@0.1.4: resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= +to-arraybuffer@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" @@ -13000,7 +13063,7 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-is@~1.6.15, type-is@~1.6.16: +type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== @@ -13025,15 +13088,6 @@ typeforce@^1.11.3: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.13.2.tgz#8978fe69c5b7da34dfdc9f3eef08866ce1a7bdaa" integrity sha512-NBEHFw7hWhzFtr/D73xffwlk7l6QjExtSrS9nhg9VeU5U94tJIeNLgN74bm6V+pUaN8RF14QhL+wXItZJBMJBA== -uglify-es@^3.3.4, "uglify-es@npm:terser": - version "3.9.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.9.3.tgz#14d13207f58b7a25ba7dd11def76c9e73cca5036" - integrity sha512-7CAUcdTRzfxvMUqhSDe95MQ/qVEV3JqiSB8mMGQZSe1CL7AKB1iMpF7Mj6DatC9YfG/4xxE25Egp1kxVNORdGQ== - dependencies: - commander "~2.17.1" - source-map "~0.6.1" - source-map-support "~0.5.6" - uglify-js@^3.1.4: version "3.4.9" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" @@ -13067,9 +13121,9 @@ ultron@~1.1.0: integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== unbzip2-stream@^1.0.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.0.tgz#745ad5745bc4d8f1ac2eb6fc707cfa51d52ab215" - integrity sha512-kE2WkurNnPUMcryNioS68DDbhoPB8Qxsd8btHSj+sd5Pjh2GsjmeHLzMSqV9HHziAo8FzVxVCJl9ZYhk7yY1pA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.1.tgz#7854da51622a7e63624221196357803b552966a1" + integrity sha512-fIZnvdjblYs7Cru/xC6tCPVhz7JkYcVQQkePwMLyQELzYTds2Xn8QefPVnvdVhhZqubxNA1cASXEH5wcK0Bucw== dependencies: buffer "^3.0.1" through "^2.3.6"