diff --git a/add-on/_locales/en/messages.json b/add-on/_locales/en/messages.json index e94a84f29..beded5dcf 100644 --- a/add-on/_locales/en/messages.json +++ b/add-on/_locales/en/messages.json @@ -236,7 +236,7 @@ "description": "An option title on the Preferences screen (option_ipfsNodeConfig_title)" }, "option_ipfsNodeConfig_description": { - "message": "Additional configuration for the embedded IPFS node (arrays will be merged). Must be valid JSON.", + "message": "Additional configuration for the embedded JS IPFS node. Must be valid JSON.", "description": "An option description on the Preferences screen (option_ipfsNodeConfig_description)" }, "option_ipfsNodeType_external": { diff --git a/add-on/src/lib/dir-view.js b/add-on/src/lib/dir-view.js index 920733a17..54ad852e6 100644 --- a/add-on/src/lib/dir-view.js +++ b/add-on/src/lib/dir-view.js @@ -6,7 +6,7 @@ const mainStyle = require('ipfs-http-response/src/dir-view/style') function buildFilesList (path, links) { const rows = links.map((link) => { let row = [ - `
 
`, + '
 
', `${link.name}`, filesize(link.size) ] diff --git a/add-on/src/lib/ipfs-client/embedded-chromesockets.js b/add-on/src/lib/ipfs-client/embedded-chromesockets.js deleted file mode 100644 index 8b62ed18f..000000000 --- a/add-on/src/lib/ipfs-client/embedded-chromesockets.js +++ /dev/null @@ -1,153 +0,0 @@ -'use strict' -/* eslint-env browser, webextensions */ -const browser = require('webextension-polyfill') - -const debug = require('debug') -const log = debug('ipfs-companion:client:embedded') -log.error = debug('ipfs-companion:client:embedded:error') - -// Polyfills required by embedded HTTP server -const uptimeStart = Date.now() -process.uptime = () => Math.floor((Date.now() - uptimeStart) / 1000) -process.hrtime = require('browser-process-hrtime') - -const mergeOptions = require('merge-options') -const Ipfs = require('ipfs') -const HttpApi = require('ipfs/src/http') -const multiaddr = require('multiaddr') -const maToUri = require('multiaddr-to-uri') -const getPort = require('get-port') - -const { optionDefaults } = require('../options') - -// js-ipfs with embedded hapi HTTP server -let node = null -let nodeHttpApi = null - -async function buildConfig (opts) { - const defaultOpts = JSON.parse(optionDefaults.ipfsNodeConfig) - defaultOpts.libp2p = { - config: { - dht: { - // TODO: check if below is needed after js-ipfs is released with DHT disabled - enabled: false - } - } - } - const userOpts = JSON.parse(opts.ipfsNodeConfig) - const ipfsNodeConfig = mergeOptions.call({ concatArrays: true }, defaultOpts, userOpts, { start: false }) - - // Detect when API or Gateway port is not available (taken by something else) - // We find the next free port and update configuration to use it instead - const multiaddr2port = (ma) => parseInt(new URL(multiaddr2httpUrl(ma)).port, 10) - const gatewayPort = multiaddr2port(ipfsNodeConfig.config.Addresses.Gateway) - const apiPort = multiaddr2port(ipfsNodeConfig.config.Addresses.API) - log(`checking if ports are available: api: ${apiPort}, gateway: ${gatewayPort}`) - const freeGatewayPort = await getPort({ port: getPort.makeRange(gatewayPort, gatewayPort + 100) }) - const freeApiPort = await getPort({ port: getPort.makeRange(apiPort, apiPort + 100) }) - if (gatewayPort !== freeGatewayPort || apiPort !== freeApiPort) { - log(`updating config to available ports: api: ${freeApiPort}, gateway: ${freeGatewayPort}`) - const addrs = ipfsNodeConfig.config.Addresses - addrs.Gateway = addrs.Gateway.replace(gatewayPort.toString(), freeGatewayPort.toString()) - addrs.API = addrs.API.replace(apiPort.toString(), freeApiPort.toString()) - } - - return ipfsNodeConfig -} - -exports.init = async function init (opts) { - log('init embedded:chromesockets') - - const ipfsOpts = await buildConfig(opts) - log('creating js-ipfs with opts: ', ipfsOpts) - node = new Ipfs(ipfsOpts) - - return new Promise((resolve, reject) => { - node.once('error', (error) => { - log.error('something went terribly wrong during startup of js-ipfs!', error) - reject(error) - }) - node.once('ready', async () => { - node.once('start', async () => { - // HttpApi is off in browser context and needs to be started separately - try { - const httpServers = new HttpApi(node, ipfsOpts) - nodeHttpApi = await httpServers.start() - await updateConfigWithHttpEndpoints(node, opts) - resolve(node) - } catch (err) { - reject(err) - } - }) - try { - node.on('error', error => { - log.error('something went terribly wrong in embedded js-ipfs!', error) - }) - await node.start() - } catch (err) { - reject(err) - } - }) - }) -} - -const multiaddr2httpUrl = (ma) => maToUri(ma.includes('/http') ? ma : multiaddr(ma).encapsulate('/http')) - -// Update internal configuration to HTTP Endpoints from js-ipfs instance -async function updateConfigWithHttpEndpoints (ipfs, opts) { - const localConfig = await browser.storage.local.get('ipfsNodeConfig') - if (localConfig && localConfig.ipfsNodeConfig) { - const gwMa = await ipfs.config.get('Addresses.Gateway') - const apiMa = await ipfs.config.get('Addresses.API') - const httpGateway = multiaddr2httpUrl(gwMa) - const httpApi = multiaddr2httpUrl(apiMa) - // update ports in JSON configuration for embedded js-ipfs - const ipfsNodeConfig = JSON.parse(localConfig.ipfsNodeConfig) - ipfsNodeConfig.config.Addresses.Gateway = gwMa - ipfsNodeConfig.config.Addresses.API = apiMa - const configChanges = { - customGatewayUrl: httpGateway, - ipfsApiUrl: httpApi, - ipfsNodeConfig: JSON.stringify(ipfsNodeConfig, null, 2) - } - // update current runtime config (in place) - Object.assign(opts, configChanges) - // update user config in storage (triggers async client restart if ports changed) - log(`synchronizing ipfsNodeConfig with customGatewayUrl (${configChanges.customGatewayUrl}) and ipfsApiUrl (${configChanges.ipfsApiUrl})`) - await browser.storage.local.set(configChanges) - } -} - -exports.destroy = async function () { - log('destroy: embedded:chromesockets') - - if (nodeHttpApi) { - try { - await nodeHttpApi.stop() - } catch (err) { - // TODO: needs upstream fix like https://github.com/ipfs/js-ipfs/issues/2257 - if (err.message !== 'Cannot stop server while in stopping phase') { - log.error('failed to stop HttpApi', err) - } - } - nodeHttpApi = null - } - if (node) { - const stopped = new Promise((resolve, reject) => { - node.on('stop', resolve) - node.on('error', reject) - }) - try { - await node.stop() - } catch (err) { - // TODO: remove when fixed upstream: https://github.com/ipfs/js-ipfs/issues/2257 - if (err.message === 'Not able to stop from state: stopping') { - log('destroy: embedded:chromesockets waiting for node.stop()') - await stopped - } else { - throw err - } - } - node = null - } -} diff --git a/add-on/src/lib/ipfs-client/embedded-chromesockets/config.js b/add-on/src/lib/ipfs-client/embedded-chromesockets/config.js new file mode 100644 index 000000000..b8d23e338 --- /dev/null +++ b/add-on/src/lib/ipfs-client/embedded-chromesockets/config.js @@ -0,0 +1,167 @@ +'use strict' + +const browser = require('webextension-polyfill') + +const { optionDefaults } = require('../../options') +const chromeSocketsBundle = require('./libp2p-bundle') +const mergeOptions = require('merge-options') +const getPort = require('get-port') +const { getIPv4, getIPv6 } = require('webrtc-ips') + +const multiaddr = require('multiaddr') +const maToUri = require('multiaddr-to-uri') +const multiaddr2httpUrl = (ma) => maToUri(ma.includes('/http') ? ma : multiaddr(ma).encapsulate('/http')) + +// additional default js-ipfs config specific to runtime with chrome.sockets APIs +const chromeDefaultOpts = { + config: { + Addresses: { + API: '/ip4/127.0.0.1/tcp/5003', + Gateway: '/ip4/127.0.0.1/tcp/9091', + /* Sidenote on API & Gateway: + Gateway can run without API port, + but Web UI needs API (can't use window.ipfs due to sandboxing) + */ + Swarm: [ + // optional ws-star signaling provides a backup for non-LAN peer discovery + // (this will be removed when autorelay and DHT are stable in js-ipfs) + '/dns4/ws-star1.par.dwebops.pub.com/tcp/443/wss/p2p-websocket-star', + '/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star' + ], + // Delegated Content and Peer Routing: https://github.com/ipfs/js-ipfs/pull/2195 + Delegates: // [] // TODO: enable delegates + [ + '/dns4/node1.delegate.ipfs.io/tcp/443/https', + '/dns4/node0.delegate.ipfs.io/tcp/443/https' + ] + }, + Discovery: { + MDNS: { + Enabled: true, + Interval: 10 + } + }, + Swarm: { + ConnMgr: { + LowWater: 100, + HighWater: 250 + } + }, + Bootstrap: [ + // Prioritize TCP Bootstrappers from https://github.com/ipfs/js-ipfs/blob/v0.37.1/src/core/runtime/config-nodejs.js#L22 + '/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z', + '/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ', + '/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM', + '/ip4/162.243.248.213/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm', + '/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu', + '/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64', + '/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd', + '/ip4/178.62.61.185/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3', + '/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx', + '/ip6/2604:a880:1:20::1f9:9001/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z', + '/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM', + '/ip6/2604:a880:0:1010::23:d001/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm', + '/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu', + '/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64', + '/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd', + '/ip6/2a03:b0c0:1:d0::e7:1/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3', + '/ip6/2604:a880:1:20::1d9:6001/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx', + // Twist: connect to preload nodes, but over tcp :) + '/dns4/node0.preload.ipfs.io/tcp/4001/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic', + '/dns4/node1.preload.ipfs.io/tcp/4001/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6', + // WebSockets versions from https://github.com/ipfs/js-ipfs/blob/v0.37.1/src/core/runtime/config-browser.js#L20 + '/dns4/ams-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd', + '/dns4/lon-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3', + '/dns4/sfo-3.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM', + '/dns4/sgp-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu', + '/dns4/nyc-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm', + '/dns4/nyc-2.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64', + '/dns4/node0.preload.ipfs.io/tcp/443/wss/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic', + '/dns4/node1.preload.ipfs.io/tcp/443/wss/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6' + ] + }, + // preload: { enabled: false, addresses: [] } + /* TODO: when we have p2p transport, are preloads still needed? should Brave have own nodes? */ + preload: { + enabled: true, + addresses: [ + '/dns4/node1.preload.ipfs.io/tcp/443/https', + '/dns4/node0.preload.ipfs.io/tcp/443/https' + ] + } +} + +async function buildConfig (opts, log) { + const defaultOpts = JSON.parse(optionDefaults.ipfsNodeConfig) + const userOpts = JSON.parse(opts.ipfsNodeConfig) + const chromeOpts = JSON.parse(JSON.stringify(chromeDefaultOpts)) + + // find a free TCP port for incoming connections + const freeTcpPort = await getPort({ port: getPort.makeRange(4042, 4100) }) + // find out local network IPs + const ipv4 = await getIPv4() + const ipv6 = await getIPv6() + // add TCP multiaddrs + if (ipv4) { + chromeOpts.config.Addresses.Swarm.unshift(`/ip4/${ipv4}/tcp/${freeTcpPort}`) + } + if (ipv6) { + chromeOpts.config.Addresses.Swarm.unshift(`/ip6/${ipv6}/tcp/${freeTcpPort}`) + } + // append user-provided multiaddrs + chromeOpts.config.Addresses.Swarm = chromeOpts.config.Addresses.Swarm.concat(userOpts.config.Addresses.Swarm) + + // merge configs + const finalOpts = { + start: false, + libp2p: chromeSocketsBundle + } + const ipfsNodeConfig = mergeOptions(defaultOpts, userOpts, chromeOpts, finalOpts) + + // Detect when API or Gateway port is not available (taken by something else) + // We find the next free port and update configuration to use it instead + const multiaddr2port = (ma) => parseInt(new URL(multiaddr2httpUrl(ma)).port, 10) + const gatewayPort = multiaddr2port(ipfsNodeConfig.config.Addresses.Gateway) + const apiPort = multiaddr2port(ipfsNodeConfig.config.Addresses.API) + log(`checking if ports are available: api: ${apiPort}, gateway: ${gatewayPort}`) + const freeGatewayPort = await getPort({ port: getPort.makeRange(gatewayPort, gatewayPort + 100) }) + const freeApiPort = await getPort({ port: getPort.makeRange(apiPort, apiPort + 100) }) + if (gatewayPort !== freeGatewayPort || apiPort !== freeApiPort) { + log(`updating config to available ports: api: ${freeApiPort}, gateway: ${freeGatewayPort}`) + const addrs = ipfsNodeConfig.config.Addresses + addrs.Gateway = addrs.Gateway.replace(gatewayPort.toString(), freeGatewayPort.toString()) + addrs.API = addrs.API.replace(apiPort.toString(), freeApiPort.toString()) + } + + return ipfsNodeConfig +} + +async function syncConfig (ipfs, opts, log) { + const storedConfig = await browser.storage.local.get('ipfsNodeConfig') + if (storedConfig && storedConfig.ipfsNodeConfig) { + const maGw = await ipfs.config.get('Addresses.Gateway') + const maApi = await ipfs.config.get('Addresses.API') + const httpGw = multiaddr2httpUrl(maGw) + const httpApi = multiaddr2httpUrl(maApi) + // update config in browser.storage to ports from js-ipfs instance + const changes = { + customGatewayUrl: httpGw, + ipfsApiUrl: httpApi + } + // update ipfsNodeConfig if ports changed (eg. due to old port being busy) + const cfg = JSON.parse(storedConfig.ipfsNodeConfig) + if (maGw !== cfg.config.Addresses.Gateway || + maApi !== cfg.config.Addresses.API) { + cfg.config.Addresses.Gateway = maGw + cfg.config.Addresses.API = maApi + changes.ipfsNodeConfig = JSON.stringify(cfg, null, 2) + } + // update runtime config in place + Object.assign(opts, changes) + // save config to browser.storage (triggers async client restart if ports changed) + log(`synchronizing ipfsNodeConfig with customGatewayUrl (${changes.customGatewayUrl}) and ipfsApiUrl (${changes.ipfsApiUrl})`) + await browser.storage.local.set(changes) + } +} + +module.exports = { buildConfig, syncConfig } diff --git a/add-on/src/lib/ipfs-client/embedded-chromesockets/index.js b/add-on/src/lib/ipfs-client/embedded-chromesockets/index.js new file mode 100644 index 000000000..6d61768c9 --- /dev/null +++ b/add-on/src/lib/ipfs-client/embedded-chromesockets/index.js @@ -0,0 +1,94 @@ +'use strict' +/* eslint-env browser, webextensions */ + +/* ********************************************************* + This file is a wip sandbox. + Code will be refactored when kinks are ironed out. + ********************************************************* */ + +const debug = require('debug') +const log = debug('ipfs-companion:client:embedded') +log.error = debug('ipfs-companion:client:embedded:error') + +// Polyfills required by embedded HTTP server +const uptimeStart = Date.now() +process.uptime = () => Math.floor((Date.now() - uptimeStart) / 1000) +process.hrtime = require('browser-process-hrtime') + +const Ipfs = require('ipfs') +const HttpApi = require('ipfs/src/http') +const { buildConfig, syncConfig } = require('./config') + +// js-ipfs + embedded hapi HTTP server +let node +let nodeHttpApi + +exports.init = async function init (opts) { + log('init embedded:chromesockets') + + const ipfsOpts = await buildConfig(opts, log) + log('creating js-ipfs with opts: ', ipfsOpts) + node = new Ipfs(ipfsOpts) + + return new Promise((resolve, reject) => { + node.once('error', (error) => { + log.error('something went terribly wrong during startup of js-ipfs!', error) + reject(error) + }) + node.once('ready', async () => { + node.once('start', async () => { + // HttpApi is off in browser context and needs to be started separately + try { + const httpServers = new HttpApi(node, ipfsOpts) + nodeHttpApi = await httpServers.start() + await syncConfig(node, opts, log) + resolve(node) + } catch (err) { + reject(err) + } + }) + try { + node.on('error', error => { + log.error('something went terribly wrong in embedded js-ipfs!', error) + }) + await node.start() + } catch (err) { + reject(err) + } + }) + }) +} + +exports.destroy = async function () { + log('destroy: embedded:chromesockets') + + if (nodeHttpApi) { + try { + await nodeHttpApi.stop() + } catch (err) { + // TODO: needs upstream fix like https://github.com/ipfs/js-ipfs/issues/2257 + if (err.message !== 'Cannot stop server while in stopping phase') { + log.error('failed to stop HttpApi', err) + } + } + nodeHttpApi = null + } + if (node) { + const stopped = new Promise((resolve, reject) => { + node.on('stop', resolve) + node.on('error', reject) + }) + try { + await node.stop() + } catch (err) { + // TODO: remove when fixed upstream: https://github.com/ipfs/js-ipfs/issues/2257 + if (err.message === 'Not able to stop from state: stopping') { + log('destroy: embedded:chromesockets waiting for node.stop()') + await stopped + } else { + throw err + } + } + node = null + } +} diff --git a/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p-bundle.js b/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p-bundle.js new file mode 100644 index 000000000..b37474000 --- /dev/null +++ b/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p-bundle.js @@ -0,0 +1,107 @@ +'use strict' + +const get = require('dlv') +const mergeOptions = require('merge-options') +const errCode = require('err-code') + +const ipns = require('ipns') +const multiaddr = require('multiaddr') +const DelegatedPeerRouter = require('libp2p-delegated-peer-routing') +const DelegatedContentRouter = require('libp2p-delegated-content-routing') +const PubsubRouters = { gossipsub: require('libp2p-gossipsub') } +const Libp2pChromeSockets = require('./libp2p') + +// libp2p bundle customized for chrome.sockets +// Loosely follows https://github.com/ipfs/js-ipfs/blob/master/src/core/components/libp2p.js +module.exports = function chromeSocketsBundle ({ datastore, peerInfo, peerBook, options, config }) { + // TODO: Set up Delegate Routing based on the presence of Delegates in the config? + let contentRouting + let peerRouting + + const delegateHosts = get(options, 'config.Addresses.Delegates', + get(config, 'Addresses.Delegates', []) + ) + if (delegateHosts.length > 0) { + // Pick a random delegate host + const delegateString = delegateHosts[Math.floor(Math.random() * delegateHosts.length)] + const delegateAddr = multiaddr(delegateString).toOptions() + const delegatedApiOptions = { + host: delegateAddr.host, + // port is a string atm, so we need to convert for the check + protocol: parseInt(delegateAddr.port) === 443 ? 'https' : 'http', + port: delegateAddr.port + } + contentRouting = [new DelegatedContentRouter(peerInfo.id, delegatedApiOptions)] + peerRouting = [new DelegatedPeerRouter(delegatedApiOptions)] + } + + const getPubsubRouter = () => { + const router = get(config, 'Pubsub.Router', 'gossipsub') + + if (!PubsubRouters[router]) { + throw errCode(new Error(`Router unavailable. Configure libp2p.modules.pubsub to use the ${router} router.`), 'ERR_NOT_SUPPORTED') + } + + return PubsubRouters[router] + } + + const libp2pDefaults = { + datastore, + peerInfo, + peerBook, + modules: { + contentRouting, + peerRouting, + pubsub: getPubsubRouter() + }, + config: { + peerDiscovery: { + bootstrap: { + list: get(options, 'config.Bootstrap', + get(config, 'Bootstrap', [])) + } + }, + relay: { + enabled: get(options, 'relay.enabled', + get(config, 'relay.enabled', true)), + hop: { + enabled: get(options, 'relay.hop.enabled', + get(config, 'relay.hop.enabled', false)), + active: get(options, 'relay.hop.active', + get(config, 'relay.hop.active', false)) + } + }, + dht: { + kBucketSize: get(options, 'dht.kBucketSize', 20), + // enabled: !get(options, 'offline', false), // disable if offline, on by default + enabled: false, + randomWalk: { + enabled: false // disabled waiting for https://github.com/libp2p/js-libp2p-kad-dht/issues/86 + }, + validators: { + ipns: { + func: (key, record, cb) => ipns.validator.validate(record, key, cb) + } + }, + selectors: { + ipns: (k, records) => ipns.validator.select(records[0], records[1]) + } + }, + pubsub: { + enabled: get(config, 'Pubsub.Enabled', true) + } + }, + connectionManager: get(options, 'connectionManager', + { + maxPeers: get(config, 'Swarm.ConnMgr.HighWater'), + minPeers: get(config, 'Swarm.ConnMgr.LowWater') + }) + } + let libp2pOptions + if (typeof options.libp2p !== 'function') { + libp2pOptions = mergeOptions(libp2pDefaults, get(options, 'libp2p', {})) + } else { + libp2pOptions = libp2pDefaults + } + return new Libp2pChromeSockets(libp2pOptions) +} diff --git a/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p.js b/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p.js new file mode 100644 index 000000000..37693e982 --- /dev/null +++ b/add-on/src/lib/ipfs-client/embedded-chromesockets/libp2p.js @@ -0,0 +1,91 @@ +'use strict' + +const TCP = require('libp2p-tcp') +const MulticastDNS = require('libp2p-mdns') +const WS = require('libp2p-websockets') +const WebSocketStarMulti = require('libp2p-websocket-star-multi') +const Bootstrap = require('libp2p-bootstrap') +const KadDHT = require('libp2p-kad-dht') +const GossipSub = require('libp2p-gossipsub') +const Multiplex = require('pull-mplex') +const SECIO = require('libp2p-secio') +const libp2p = require('libp2p') +const mergeOptions = require('merge-options') +const multiaddr = require('multiaddr') + +// libp2p class with constructor tweaked for use with chrome.sockets +// loosely follows: +// - https://github.com/ipfs/js-ipfs/blob/master/src/core/runtime/libp2p-nodejs.js +// - https://github.com/ipfs/js-ipfs/blob/master/src/core/runtime/libp2p-browser.js +class Libp2pChromeSockets extends libp2p { + constructor (_options) { + // this can be replaced once optional listening is supported with the below code. ref: https://github.com/libp2p/interface-transport/issues/41 + // const wsstar = new WebSocketStar({ id: _options.peerInfo.id, ignore_no_online: true }) + const wsstarServers = _options.peerInfo.multiaddrs.toArray().map(String).filter(addr => addr.includes('p2p-websocket-star')) + _options.peerInfo.multiaddrs.replace(wsstarServers.map(multiaddr), '/p2p-websocket-star') // the ws-star-multi module will replace this with the chosen ws-star servers + const wsstar = new WebSocketStarMulti({ + servers: wsstarServers, + id: _options.peerInfo.id, + ignore_no_online: true // allow scenario when all ws-stars are offline + }) + + const defaults = { + switch: { + denyTTL: 2 * 60 * 1e3, // 2 minute base + denyAttempts: 5, // back off 5 times + maxParallelDials: 150, + maxColdCalls: 50, + dialTimeout: 10e3 // Be strict with dial time + }, + modules: { + transport: [ + TCP, + WS, + wsstar + ], + streamMuxer: [ + Multiplex + ], + connEncryption: [ + SECIO + ], + peerDiscovery: [ + MulticastDNS, + Bootstrap, + wsstar.discovery + ], + dht: KadDHT, + pubsub: GossipSub + }, + config: { + peerDiscovery: { + autoDial: true, + mdns: { + enabled: true + }, + bootstrap: { + enabled: true + }, + websocketStar: { + enabled: true + } + }, + dht: { + kBucketSize: 20, + enabled: false, + randomWalk: { + enabled: false + } + }, + pubsub: { + enabled: true, + emitSelf: true + } + } + } + + super(mergeOptions(defaults, _options)) + } +} + +module.exports = Libp2pChromeSockets diff --git a/add-on/src/lib/ipfs-client/embedded.js b/add-on/src/lib/ipfs-client/embedded.js index 535c2fd72..631149151 100644 --- a/add-on/src/lib/ipfs-client/embedded.js +++ b/add-on/src/lib/ipfs-client/embedded.js @@ -15,7 +15,7 @@ exports.init = function init (opts) { const defaultOpts = JSON.parse(optionDefaults.ipfsNodeConfig) const userOpts = JSON.parse(opts.ipfsNodeConfig) - const ipfsOpts = mergeOptions.call({ concatArrays: true }, defaultOpts, userOpts, { start: false }) + const ipfsOpts = mergeOptions(defaultOpts, userOpts, { start: false }) node = new Ipfs(ipfsOpts) diff --git a/add-on/src/lib/options.js b/add-on/src/lib/options.js index 32a242b46..1bb01861b 100644 --- a/add-on/src/lib/options.js +++ b/add-on/src/lib/options.js @@ -24,7 +24,7 @@ exports.optionDefaults = Object.freeze({ ipfsApiUrl: buildIpfsApiUrl(), ipfsApiPollMs: 3000, ipfsProxy: true, // window.ipfs - logNamespaces: 'jsipfs*,ipfs*,libp2p-delegated*,-*:ipns*,-ipfs:preload*,-ipfs-http-client:request*' + logNamespaces: 'jsipfs*,ipfs*,libp2p:mdns*,libp2p-delegated*,-*:ipns*,-ipfs:preload*,-ipfs-http-client:request*,-ipfs:http-api*' }) function buildCustomGatewayUrl () { @@ -45,52 +45,13 @@ function buildDefaultIpfsNodeType () { } function buildDefaultIpfsNodeConfig () { - const config = { + return JSON.stringify({ config: { Addresses: { Swarm: [] } } - } - if (hasChromeSocketsForTcp()) { - // TODO: make more robust (sync with buildCustomGatewayUrl and buildIpfsApiUrl) - // embedded node should use different ports to make it easier - // for people already running regular go-ipfs and js-ipfs on standard ports - config.config.Addresses.API = '/ip4/127.0.0.1/tcp/5003' - config.config.Addresses.Gateway = '/ip4/127.0.0.1/tcp/9091' - - // Until we have MulticastDNS+DNS, peer discovery is done over ws-star - config.config.Addresses.Swarm = [ - '/dns4/ws-star1.par.dwebops.pub/tcp/443/wss/p2p-websocket-star', - '/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star' - ] - // Until DHT and p2p transport are ready, delegate + preload - // Note: we use .preload.ipfs.io and .delegate.ipfs.io as means of http sharding (12 instead of 6 concurrent requests) - const delegates = [ - '/dns4/node1.delegate.ipfs.io/tcp/443/https', - '/dns4/node0.delegate.ipfs.io/tcp/443/https' - ] - // Delegated Content and Peer Routing: https://github.com/ipfs/js-ipfs/pull/2195 - config.config.Addresses.Delegates = delegates - // TODO: when we have p2p transport, are preloads still needed? should Brave have own nodes? - config.preload = { - enabled: true, - addresses: [ - '/dns4/node1.preload.ipfs.io/tcp/443/https', - '/dns4/node0.preload.ipfs.io/tcp/443/https' - ] - } - /* - (Sidenote on why we need API for Web UI) - Gateway can run without API port, - but Web UI does not use window.ipfs due to sandboxing atm. - - If Web UI is able to use window.ipfs, then we can remove API port. - Disabling API is as easy as: - config.config.Addresses.API = '' - */ - } - return JSON.stringify(config, null, 2) + }, null, 2) } // `storage` should be a browser.storage.local or similar diff --git a/add-on/src/popup/browser-action/header.js b/add-on/src/popup/browser-action/header.js index 77ad6c7c8..eae47d2b6 100644 --- a/add-on/src/popup/browser-action/header.js +++ b/add-on/src/popup/browser-action/header.js @@ -25,11 +25,13 @@ module.exports = function header (props) { ${browser.i18n.getMessage('panel_headerIpfsNodeIconLabel')}
- ${powerIcon({ active, + ${powerIcon({ + active, title: 'panel_headerActiveToggleTitle', action: onToggleActive })} - ${optionsIcon({ active, + ${optionsIcon({ + active, title: 'panel_openPreferences', action: onOpenPrefs })} diff --git a/add-on/src/popup/quick-upload.js b/add-on/src/popup/quick-upload.js index 88c2df0e2..098f71ec4 100644 --- a/add-on/src/popup/quick-upload.js +++ b/add-on/src/popup/quick-upload.js @@ -94,7 +94,7 @@ async function processFiles (state, emitter, files) { } catch (err) { console.error('Unable to perform quick upload', err) // keep upload tab and display error message in it - state.message = `Unable to upload to IPFS API:` + state.message = 'Unable to upload to IPFS API:' state.progress = `${err}` emitter.emit('render') } diff --git a/docs/node-types.md b/docs/node-types.md index a1082d380..7b6518c17 100644 --- a/docs/node-types.md +++ b/docs/node-types.md @@ -1,16 +1,27 @@ # Node Types in IPFS Companion > ![screenshot of node type switch](https://user-images.githubusercontent.com/157609/42382479-b4d98768-8134-11e8-979c-69b758846bf0.png)
-> _IPFS Node Type selection_ ----- -> ### **TL;DR** when in doubt, run go-ipfs as _External_ node on your localhost: -> - [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) is a GUI app for Windows/Linux/Mac that installs and manages local IPFS node for you -> - If you prefer more on-hands approach: -> - install IPFS node by hand: [Getting Started](https://ipfs.io/docs/getting-started/) -> - or run it in [Docker](https://github.com/ipfs/go-ipfs#docker-usage) -## External +Available node types: + +- [External](#%EF%B8%8F-external) +- [Embedded](#%EF%B8%8F-embedded) +- [Embedded + `chrome.sockets`](#-embedded--chromesockets) +- [Public](#-public) + +## TL;DR + +When in doubt, use _External_ node running on your localhost: +- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) is a GUI app for Windows/Linux/Mac that installs and manages local IPFS node for you +- If you prefer more hands-on approach: + - install IPFS by following [Getting Started](https://docs.ipfs.io/introduction/usage/) guide + - or run it in [Docker](https://github.com/ipfs/go-ipfs#docker-usage) +- If you are using [Brave](https://brave.com/), feel free to experiment with [Embedded + `chrome.sockets`](#-embedded--chromesockets). + You can always switch back to _External_ with local IPFS Desktop + + +## 🛰️ External _External_ node can be any instance of IPFS daemon that runs outside of web browser process and exposes _Gateway_ and writable _API_ over HTTP at TCP ports. @@ -28,7 +39,7 @@ A good practice is to run it on localhost (`127.0.0.1`) as it provides: Don't know where to start? See [Getting Started](https://ipfs.io/docs/getting-started/) instructions. -## Embedded +## 🏗️ Embedded _Embedded_ node is a js-ipfs instance running in browser (in-memory), without need for any external software. @@ -59,20 +70,26 @@ Power users can provide [custom config](https://github.com/ipfs/js-ipfs#faq) (eg When in doubt, run go-ipfs as External node instead. -## Embedded + `chrome.sockets` +## 🦄 Embedded + `chrome.sockets` This node type replaces regular _Embedded_ type if browser vendor granted us access to `chrome.sockets` APIs. -Those powerful APIs enable exciting possibilities: +Those powerful APIs enable embedded js-ipfs to provide true p2p experience without the need for external daemon: + +### 🚪 HTTP Gateway +- access IPFS resources over HTTP without relying on a public gateway +- automatically picks a free localhost port + +### 🚄 TCP transport +- embedded js-ipfs is able to connect to go-ipfs +- go-ipfs is able to connect to embedded js-ipfs -- Embedded HTTP Gateway [wip] -- True P2P over TCP/UDP transports [future] -- Local Discovery (mDNS/DNS-SD) [future] +### 🔮 Local Discovery (mDNS/DNS-SD) -**Note:** this is still work in progress: one can track progress in [ipfs-companion/issues/664](https://github.com/ipfs-shipyard/ipfs-companion/issues/664). -Right now only [Brave Nightly](https://brave.com/download-nightly/) supports this. +- embedded node discovers go-ipfs in LAN and automatically connects to it +**Note:** this is still work in progress, see [Embedded JS-IPFS in Brave](https://github.com/ipfs-shipyard/ipfs-companion/issues/716) for the current status. -## Public +## 🌐 Public Public node is not a part of the toggle UI. It is used as an implicit fallback for its Gateway functionality when External node is offline or Embedded node is used. It does not expose API port. diff --git a/package.json b/package.json index ba7463759..18f921db6 100644 --- a/package.json +++ b/package.json @@ -68,27 +68,25 @@ "resolutions": { "libp2p-delegated-content-routing": "0.2.4", "libp2p-delegated-peer-routing": "0.2.4", - "@hapi/hapi": "https://github.com/lidel/hapi/tarball/ccbf84ba5edc9b24564fdd166e3ee6d81c4c02d8/hapi.tar.gz", - "pino": "5.12.3", - "hapi-pino": "https://github.com/pinojs/hapi-pino/tarball/3767ed6b67601831e176e084ed82ba4ed9f726e6/hapi-pino.tar.gz", + "@hapi/hapi": "https://github.com/lidel/hapi/tarball/0d73f8dde9fc7d518f477b8e04fe5abff1b33777/hapi.tar.gz", "iso-stream-http": "0.1.2", "stream-http": "npm:iso-stream-http@0.1.2", "pull-to-stream": "0.1.1", "multiaddr": "6.1.0" }, "devDependencies": { - "@babel/core": "7.5.5", - "@babel/preset-env": "7.5.5", + "@babel/core": "7.6.0", + "@babel/preset-env": "7.6.0", "babel-loader": "8.0.6", "babel-plugin-syntax-async-generators": "6.13.0", "chai": "4.2.0", - "cross-env": "5.2.0", + "cross-env": "5.2.1", "download-cli": "1.1.1", "fakefile": "0.0.9", "firefox-addons-add-update-version": "https://github.com/lidel/firefox-addons-add-update-version/tarball/7901bf69b4ed122a20cd5e10ed7f8dae9b00dde7/firefox-addons-add-update-version.tar.gz", "fs-promise": "2.0.3", "get-firefox": "2.2.1", - "husky": "3.0.3", + "husky": "3.0.5", "ignore-styles": "5.0.1", "json": "9.0.6", "mem-storage-area": "1.0.3", @@ -99,36 +97,36 @@ "request-progress": "3.0.0", "shx": "0.3.2", "simple-progress-webpack-plugin": "1.1.2", - "sinon": "7.4.1", + "sinon": "7.4.2", "sinon-chrome": "3.0.1", - "standard": "13.1.0", + "standard": "14.2.0", "tar": "4.4.10", - "terser": "4.1.4", - "terser-webpack-plugin": "1.4.1", + "terser": "4.3.1", + "terser-webpack-plugin": "2.0.1", "transform-loader": "0.2.4", "web-ext": "3.1.1", - "webpack": "4.39.1", - "webpack-bundle-analyzer": "3.4.1", - "webpack-cli": "3.3.6", - "webpack-merge": "4.2.1" + "webpack": "4.39.3", + "webpack-bundle-analyzer": "3.5.0", + "webpack-cli": "3.3.8", + "webpack-merge": "4.2.2" }, "dependencies": { "@material/switch": "3.1.0", "browser-process-hrtime": "1.0.0", "choo": "7.0.0", - "chrome-dgram": "3.0.2", - "chrome-net": "3.3.2", + "chrome-dgram": "3.0.3", + "chrome-net": "3.3.3", "debug": "4.1.1", "doc-sniff": "1.0.1", "drag-and-drop-files": "0.0.1", - "file-type": "12.1.0", - "filesize": "4.1.2", + "file-type": "12.3.0", + "filesize": "4.2.0", "get-port": "5.0.0", "http-dns": "3.0.1", "http-node": "1.2.0", - "ipfs": "https://github.com/ipfs/js-ipfs/tarball/6fa8f88310a4f7f451f0f6846e435134376703e6/js-ipfs.tar.gz", + "ipfs": "https://github.com/ipfs/js-ipfs/tarball/ad65329253da333885b86c7927aa8f0a1e628551/js-ipfs.tar.gz", "ipfs-css": "0.13.1", - "ipfs-http-client": "33.1.1", + "ipfs-http-client": "36.0.0", "ipfs-http-response": "0.3.1", "ipfs-postmsg-proxy": "3.1.1", "ipfsx": "0.17.0", @@ -138,9 +136,9 @@ "lru-cache": "5.1.1", "merge-options": "1.0.1", "mime-types": "2.1.24", - "multiaddr": "6.1.0", - "multiaddr-to-uri": "4.0.1", - "p-queue": "6.1.0", + "multiaddr": "7.1.0", + "multiaddr-to-uri": "5.0.0", + "p-queue": "6.1.1", "path-browserify": "1.0.0", "piggybacker": "2.0.0", "postmsg-rpc": "2.4.0", @@ -148,7 +146,8 @@ "tachyons": "4.11.1", "timers-browserify-full": "0.0.1", "uri-to-multiaddr": "3.0.1", - "webextension-polyfill": "0.4.0" + "webextension-polyfill": "0.4.0", + "webrtc-ips": "0.1.4" }, "engines": { "node": ">=10.0.0", diff --git a/test/functional/lib/ipfs-path.test.js b/test/functional/lib/ipfs-path.test.js index eade73a7d..9aa1cc79a 100644 --- a/test/functional/lib/ipfs-path.test.js +++ b/test/functional/lib/ipfs-path.test.js @@ -227,7 +227,7 @@ describe('ipfs-path.js', function () { }) it('should resolve URL with /ipfs/ path to the custom gateway if provided', function () { const url = 'https://example.com/ipfs/bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa/wiki/Mars.html?argTest#hashTest' - expect(ipfsPathValidator.resolveToPublicUrl(url, 'https://example.com/')).to.equal(`https://example.com/ipfs/bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa/wiki/Mars.html?argTest#hashTest`) + expect(ipfsPathValidator.resolveToPublicUrl(url, 'https://example.com/')).to.equal('https://example.com/ipfs/bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa/wiki/Mars.html?argTest#hashTest') }) it('should resolve /ipfs/ path to itself attached to the default public gateway', function () { const path = '/ipfs/bafybeicgmdpvw4duutrmdxl4a7gc52sxyuk7nz5gby77afwdteh3jc5bqa/wiki/Mars.html?argTest#hashTest' @@ -391,13 +391,13 @@ describe('ipfs-path.js', function () { it('should resolve URL with /ipns/ path', async function () { const url = 'https://example.com/ipns/docs.ipfs.io/foo/bar?argTest#hashTest' const expectedCid = 'QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR' - spoofIpfsResolve(ipfs, `/ipns/docs.ipfs.io/foo/bar`, `/ipfs/${expectedCid}`) + spoofIpfsResolve(ipfs, '/ipns/docs.ipfs.io/foo/bar', `/ipfs/${expectedCid}`) expect(await ipfsPathValidator.resolveToCid(url)).to.equal(expectedCid) }) it('should resolve /ipns/ path to the immutable /ipfs/ one', async function () { const path = '/ipns/libp2p.io/foo/bar?argTest#hashTest' const expectedCid = 'QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR' - spoofIpfsResolve(ipfs, `/ipns/libp2p.io/foo/bar`, `/ipfs/${expectedCid}`) + spoofIpfsResolve(ipfs, '/ipns/libp2p.io/foo/bar', `/ipfs/${expectedCid}`) expect(await ipfsPathValidator.resolveToCid(path)).to.equal(expectedCid) }) it('should resolve URL of a DNSLink website to null if the value if DNSLink is not in cache', async function () { @@ -414,7 +414,7 @@ describe('ipfs-path.js', function () { spoofCachedDnslink(hostname, dnslinkResolver, dnslinkValue) // Note the DNSLink value is ignored, and /ipns/ is passed to ipfs.resolv internally // This ensures the latest pointer is returned, instead of stale value from DNSLink cache - spoofIpfsResolve(ipfs, `/ipns/docs.ipfs.io/guides/concepts/dnslink/`, `/ipfs/${expectedCid}`) + spoofIpfsResolve(ipfs, '/ipns/docs.ipfs.io/guides/concepts/dnslink/', `/ipfs/${expectedCid}`) expect(await ipfsPathValidator.resolveToCid(url)).to.equal(expectedCid) }) // TODO: remove when https://github.com/ipfs/js-ipfs/issues/1918 is addressed @@ -429,7 +429,7 @@ describe('ipfs-path.js', function () { // This ensures the latest pointer is returned, instead of stale value from DNSLink cache // js-ipfs v0.34 does not support DNSLinks in ipfs.name.resolve: https://github.com/ipfs/js-ipfs/issues/1918 const resolve = stub(ipfs, 'resolve') - resolve.withArgs(`/ipns/docs.ipfs.io/guides/concepts/dnslink/`).throws(new Error('resolve non-IPFS names is not implemented')) + resolve.withArgs('/ipns/docs.ipfs.io/guides/concepts/dnslink/').throws(new Error('resolve non-IPFS names is not implemented')) // until it is implemented, we have a workaround that falls back to value from dnslink resolve.withArgs('/ipns/QmRV5iNhGoxBaAcbucMAW9WtVHbeehXhAdr5CZQDhL55Xk/guides/concepts/dnslink/').resolves(`/ipfs/${expectedCid}`) resolve.throws((arg) => new Error(`Unexpected stubbed call ipfs.resolve(${arg})`)) diff --git a/test/functional/lib/ipfs-proxy/enable-command.test.js b/test/functional/lib/ipfs-proxy/enable-command.test.js index 5b058d2e1..9ac50241a 100644 --- a/test/functional/lib/ipfs-proxy/enable-command.test.js +++ b/test/functional/lib/ipfs-proxy/enable-command.test.js @@ -133,7 +133,7 @@ describe('lib/ipfs-proxy/enable-command', () => { // confirm build permission request failed with error expect(requestAccess.called).to.equal(false) - expect(() => { if (error) throw error }).to.throw(`User denied access to selected commands over IPFS proxy: id`) + expect(() => { if (error) throw error }).to.throw('User denied access to selected commands over IPFS proxy: id') // ensure explicit version acl is still missing const versionAcl = await accessControl.getAccess(getScope(), 'version') diff --git a/test/functional/lib/options.test.js b/test/functional/lib/options.test.js index a94c0a2ef..8d421bb24 100644 --- a/test/functional/lib/options.test.js +++ b/test/functional/lib/options.test.js @@ -61,7 +61,7 @@ describe('storeMissingOptions()', function () { describe('hostTextToArray()', function () { it('should sort, dedup hostnames, drop non-FQDNs and produce an array', () => { - const text = `zombo.com\n two.com \n totally not a FQDN \none.pl \nTWO.com\n\n` + const text = 'zombo.com\n two.com \n totally not a FQDN \none.pl \nTWO.com\n\n' const array = ['one.pl', 'two.com', 'zombo.com'] expect(hostTextToArray(text)).to.be.an('array').to.have.ordered.members(array) }) @@ -70,7 +70,7 @@ describe('hostTextToArray()', function () { describe('hostArrayToText()', function () { it('should sort, deduplicate, drop non-FQDNs and produce multiline string', () => { const array = ['zombo.com ', 'two.com ', 'ONE.pl ', 'one.pl', 'totall not a FQDN', 'zombo.com'] - const text = `one.pl\ntwo.com\nzombo.com` + const text = 'one.pl\ntwo.com\nzombo.com' expect(hostArrayToText(array)).to.be.a('string').equal(text) }) }) diff --git a/test/functional/pages/proxy-access-dialog/page.test.js b/test/functional/pages/proxy-access-dialog/page.test.js index 59d1fa92b..7309a533b 100644 --- a/test/functional/pages/proxy-access-dialog/page.test.js +++ b/test/functional/pages/proxy-access-dialog/page.test.js @@ -14,7 +14,7 @@ describe('pages/proxy-access-dialog/page', () => { expect(() => { res = createProxyAccessDialogPage(i18n)(state).toString() }).to.not.throw() expect(res).to.have.string(`page_proxyAccessDialog_title[${state.scope},${state.permissions}]`) expect(res).to.have.string(`page_proxyAccessDialog_wildcardCheckbox_label[${state.scope}]`) - expect(res).to.have.string(`page_proxyAccessDialog_denyButton_text`) - expect(res).to.have.string(`page_proxyAccessDialog_allowButton_text`) + expect(res).to.have.string('page_proxyAccessDialog_denyButton_text') + expect(res).to.have.string('page_proxyAccessDialog_allowButton_text') }) }) diff --git a/webpack.config.js b/webpack.config.js index efaa9c8fd..37edc3057 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -41,7 +41,7 @@ const commonConfig = { 'process.env': { NODE_ENV: '"production"', IPFS_MONITORING: false, - DEBUG: true // controls verbosity of Hapi HTTP server in js-ipfs + DEBUG: false // controls verbosity of Hapi HTTP server in js-ipfs } }) ], diff --git a/yarn.lock b/yarn.lock index 60bb52ed2..9b2fe519d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,18 +16,18 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== +"@babel/core@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48" + integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/generator" "^7.6.0" + "@babel/helpers" "^7.6.0" + "@babel/parser" "^7.6.0" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.0" + "@babel/types" "^7.6.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -58,6 +58,17 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" + integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== + dependencies: + "@babel/types" "^7.6.0" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -213,14 +224,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== +"@babel/helpers@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e" + integrity sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ== dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.0" + "@babel/types" "^7.6.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -241,6 +252,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" + integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -349,10 +365,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-transform-block-scoping@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" + integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" @@ -378,10 +394,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -447,10 +463,10 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -474,12 +490,12 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" + integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== dependencies: - regexp-tree "^0.1.6" + regexp-tree "^0.1.13" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -580,10 +596,10 @@ core-js "^2.6.5" regenerator-runtime "^0.13.2" -"@babel/preset-env@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== +"@babel/preset-env@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" + integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -601,10 +617,10 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.6.0" "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-destructuring" "^7.6.0" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" @@ -613,10 +629,10 @@ "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" "@babel/plugin-transform-modules-systemjs" "^7.5.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" @@ -629,7 +645,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/types" "^7.6.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -660,6 +676,15 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" +"@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.0.tgz#4216d6586854ef5c3c4592dab56ec7eb78485485" @@ -690,6 +715,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" + integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.0.tgz#e47d43840c2e7f9105bc4d3a2c371b4d0c7832ab" @@ -708,6 +748,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.6.0": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" + integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@cliqz-oss/firefox-client@0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@cliqz-oss/firefox-client/-/firefox-client-0.3.1.tgz#86479239f060835608b06584afe5e0a1dd91613c" @@ -724,18 +773,40 @@ "@cliqz-oss/firefox-client" "0.3.1" es6-promise "^2.0.1" +"@hapi/accept@3.x.x": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-3.2.3.tgz#6947259928ed28df2736c7daffbfc739b72adfcc" + integrity sha512-qEzsOJkCAJZxwj3iF83bSG9Lxy8Bpbrt8mRLNdvSALT6vlU2cYh6ZEHKEZPy4h/Mo31Su3j0rJgFF91+W1RWDQ== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/address@2.x.x": version "2.0.0" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== -"@hapi/ammo@3.x.x", "@hapi/ammo@^3.1.0": +"@hapi/ammo@3.x.x": version "3.1.0" resolved "https://registry.yarnpkg.com/@hapi/ammo/-/ammo-3.1.0.tgz#a3281ecb68bf7af2ffa6d0f7656536a7d23700ed" integrity sha512-iFQBEfm3WwWy8JdPQ8l6qXVLPtzmjITVfaxwl6dfoP8kKv6i2Uk43Ax+ShkNfOVyfEnNggqL2IyZTY3DaaRGNg== dependencies: "@hapi/hoek" "6.x.x" +"@hapi/ammo@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@hapi/ammo/-/ammo-3.1.1.tgz#ab700dac10f0b7fc5b7168c550c6be45ec3b981b" + integrity sha512-NYFK27VSPGyQ/KmOQedpQH4PSjE7awLntepX68vrYtRvuJO21W1kX0bK2p3C+6ltUwtCQSvmNT8a4uMVAysC6Q== + dependencies: + "@hapi/hoek" "8.x.x" + +"@hapi/b64@4.x.x": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-4.2.1.tgz#bf8418d7907c5e73463f2e3b5c6fca7e9f2a1357" + integrity sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA== + dependencies: + "@hapi/hoek" "8.x.x" + "@hapi/boom@7.x.x", "@hapi/boom@^7.4.2": version "7.4.2" resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-7.4.2.tgz#c16957cd09796f6c1bfb4031bdc39d66d6d750c3" @@ -743,6 +814,13 @@ dependencies: "@hapi/hoek" "6.x.x" +"@hapi/boom@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-7.4.3.tgz#79ffed6ef8c625046a3bd069abed5a9d35fc50c1" + integrity sha512-3di+R+BcGS7HKy67Zi6mIga8orf67GdR0ubDEVBG1oqz3y9B70LewsuCMCSvWWLKlI6V1+266zqhYzjMrPGvZw== + dependencies: + "@hapi/hoek" "8.x.x" + "@hapi/bounce@1.x.x": version "1.3.1" resolved "https://registry.yarnpkg.com/@hapi/bounce/-/bounce-1.3.1.tgz#7e0017300fa92b21bc6706590cac08f6085899e1" @@ -751,35 +829,87 @@ "@hapi/boom" "7.x.x" "@hapi/hoek" "8.x.x" -"@hapi/content@^4.1.0": +"@hapi/bourne@1.x.x", "@hapi/bourne@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/call@5.x.x": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@hapi/call/-/call-5.1.1.tgz#e0d090483486099589d6a7cd1d08ca0e0e6edb99" + integrity sha512-M6fC+9+K/ZB4hIdVQ8i0kc/6J5PWlW3PEWYKAAZpw0sk+28LiRTSF8BjOWwmiIjZWWs42AnEIiFJA0YrvcDnlw== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "8.x.x" + +"@hapi/catbox-memory@4.x.x": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@hapi/catbox-memory/-/catbox-memory-4.1.1.tgz#263a6f3361f7a200552c5772c98a8e80a1da712f" + integrity sha512-T6Hdy8DExzG0jY7C8yYWZB4XHfc0v+p1EGkwxl2HoaPYAmW7I3E59M/IvmSVpis8RPcIoBp41ZpO2aZPBpM2Ww== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "8.x.x" + +"@hapi/catbox@10.x.x": + version "10.2.2" + resolved "https://registry.yarnpkg.com/@hapi/catbox/-/catbox-10.2.2.tgz#e5c7da6718f5ab5f3a0beefbf352983a3b988626" + integrity sha512-a4KejaKqDOMdwo/PIYoAaObVMmkfkG3RS85kPqNTTURjWnIV1+rrZ938f6RCz5EbrroKbuNC0bcvAt7lAD5LNg== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/joi" "15.x.x" + "@hapi/podium" "3.x.x" + +"@hapi/content@4.x.x", "@hapi/content@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@hapi/content/-/content-4.1.0.tgz#5265516949ca081e85a43e97c1058ff53fc69714" integrity sha512-hv2Czsl49hnWDEfRZOFow/BmYbKyfEknmk3k83gOp6moFn5ceHB4xVcna8OwsGfy8dxO81lhpPy+JgQEaU4SWw== dependencies: "@hapi/boom" "7.x.x" -"@hapi/hapi@^18.3.1", "@hapi/hapi@https://github.com/lidel/hapi/tarball/ccbf84ba5edc9b24564fdd166e3ee6d81c4c02d8/hapi.tar.gz": - version "18.1.0" - resolved "https://github.com/lidel/hapi/tarball/ccbf84ba5edc9b24564fdd166e3ee6d81c4c02d8/hapi.tar.gz#644804c04d27a5051d96a8168b492bf342bc8a30" - dependencies: - accept "3.x.x" - ammo "3.x.x" - boom "7.x.x" - bounce "1.x.x" - call "5.x.x" - catbox "10.x.x" - catbox-memory "4.x.x" - heavy "6.x.x" - hoek "6.x.x" - joi "14.x.x" - mimos "4.x.x" - podium "3.x.x" - shot "4.x.x" - somever "2.x.x" - statehood "6.x.x" - subtext "6.x.x" - teamwork "3.x.x" - topo "3.x.x" +"@hapi/cryptiles@4.x.x": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-4.2.0.tgz#d22bd5afa54f3c1a3b944a43dadfd4c5e5747f72" + integrity sha512-P+ioMP1JGhwDOKPRuQls6sT/ln6Fk+Ks6d90mlBi6HcOu5itvdUiFv5Ynq2DvLadPDWaA43lwNxkfZrjE9s2MA== + dependencies: + "@hapi/boom" "7.x.x" + +"@hapi/file@1.x.x": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@hapi/file/-/file-1.0.0.tgz#c91c39fd04db8bed5af82d2e032e7a4e65555b38" + integrity sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ== + +"@hapi/hapi@^18.3.1", "@hapi/hapi@^18.3.2", "@hapi/hapi@https://github.com/lidel/hapi/tarball/0d73f8dde9fc7d518f477b8e04fe5abff1b33777/hapi.tar.gz": + version "18.3.2" + resolved "https://github.com/lidel/hapi/tarball/0d73f8dde9fc7d518f477b8e04fe5abff1b33777/hapi.tar.gz#d34bafd4b1265720b58123384d6cfee93546325a" + dependencies: + "@hapi/accept" "3.x.x" + "@hapi/ammo" "3.x.x" + "@hapi/boom" "7.x.x" + "@hapi/bounce" "1.x.x" + "@hapi/call" "5.x.x" + "@hapi/catbox" "10.x.x" + "@hapi/catbox-memory" "4.x.x" + "@hapi/heavy" "6.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/joi" "15.x.x" + "@hapi/mimos" "4.x.x" + "@hapi/podium" "3.x.x" + "@hapi/shot" "4.x.x" + "@hapi/somever" "2.x.x" + "@hapi/statehood" "6.x.x" + "@hapi/subtext" "6.x.x" + "@hapi/teamwork" "3.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/heavy@6.x.x": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@hapi/heavy/-/heavy-6.2.1.tgz#4f10877707b6c8a6ad1e9dbb6a3d13c24b3a3a29" + integrity sha512-uaEyC4AtGCGKt/LLBbdDQxJP1bFAbxiot6n/fwa4kyo6w8ULpXXCh8FxLlJ5mC06lqbAxQv45JyozIB6P4Dsig== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/joi" "15.x.x" "@hapi/hoek@6.x.x": version "6.2.4" @@ -791,6 +921,11 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.0.2.tgz#f63a5ff00e891a4e7aa98f11119f9515c6672032" integrity sha512-O6o6mrV4P65vVccxymuruucb+GhP2zl9NLCG8OdoFRS8BEGw3vwpPp20wpAtpbQQxz1CEUtmxJGgWhjq1XA3qw== +"@hapi/hoek@^8.2.2": + version "8.2.4" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.4.tgz#684a14f4ca35d46f44abc87dfc696e5e4fe8a020" + integrity sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow== + "@hapi/inert@^5.2.0": version "5.2.1" resolved "https://registry.yarnpkg.com/@hapi/inert/-/inert-5.2.1.tgz#97de7e688f9bd9d681bf3dd14280d09ef2414544" @@ -803,6 +938,16 @@ "@hapi/joi" "15.x.x" lru-cache "4.1.x" +"@hapi/iron@5.x.x": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-5.1.1.tgz#0e819729f26ee76dea68e4c4e4b5c996fd0513a5" + integrity sha512-QYfm6nofZ19pIxm8LR0lsANBabrdxqe0vUYKKI+0w9VdCetoove+dxfbLfduVDM72kh/RNOQG6E5/xyI826PcA== + dependencies: + "@hapi/b64" "4.x.x" + "@hapi/boom" "7.x.x" + "@hapi/cryptiles" "4.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/joi@15.x.x", "@hapi/joi@^15.0.1", "@hapi/joi@^15.1.0": version "15.1.0" resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.0.tgz#940cb749b5c55c26ab3b34ce362e82b6162c8e7a" @@ -818,6 +963,88 @@ resolved "https://registry.yarnpkg.com/@hapi/marker/-/marker-1.0.0.tgz#65b0b2b01d1be06304886ce9b4b77b1bfb21a769" integrity sha512-JOfdekTXnJexfE8PyhZFyHvHjt81rBFSAbTIRAhF2vv/2Y1JzoKsGqxH/GpZJoF7aEfYok8JVcAHmSz1gkBieA== +"@hapi/mimos@4.x.x": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@hapi/mimos/-/mimos-4.1.1.tgz#4dab8ed5c64df0603c204c725963a5faa4687e8a" + integrity sha512-CXoi/zfcTWfKYX756eEea8rXJRIb9sR4d7VwyAH9d3BkDyNgAesZxvqIdm55npQc6S9mU3FExinMAQVlIkz0eA== + dependencies: + "@hapi/hoek" "8.x.x" + mime-db "1.x.x" + +"@hapi/nigel@3.x.x": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@hapi/nigel/-/nigel-3.1.1.tgz#84794021c9ee6e48e854fea9fb76e9f7e78c99ad" + integrity sha512-R9YWx4S8yu0gcCBrMUDCiEFm1SQT895dMlYoeNBp8I6YhF1BFF1iYPueKA2Kkp9BvyHdjmvrxCOns7GMmpl+Fw== + dependencies: + "@hapi/hoek" "8.x.x" + "@hapi/vise" "3.x.x" + +"@hapi/pez@4.x.x": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@hapi/pez/-/pez-4.1.1.tgz#d515ed75bc082cb6da3ab8d7804a3b41a4d63be6" + integrity sha512-TUa2C7Xk6J69HWrm+Ad+O6dFvdVAG0BiFUYaRsmkdWjFIfwHBCaOI1dWT/juNukSb39Lj6/mDVyjN+H4nKB3xg== + dependencies: + "@hapi/b64" "4.x.x" + "@hapi/boom" "7.x.x" + "@hapi/content" "4.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/nigel" "3.x.x" + +"@hapi/podium@3.x.x": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-3.4.1.tgz#05ae4cba21ddc78bd4d026c720ed05d8b4e9474e" + integrity sha512-WbwYr5nK+GIrCdgEbN8R7Mh7z+j9AgntOLQ/YQdeLtBp+uScVmW9FoycKdNS5uweO74xwICr28Ob0DU74a2zmg== + dependencies: + "@hapi/hoek" "8.x.x" + "@hapi/joi" "15.x.x" + +"@hapi/shot@4.x.x": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@hapi/shot/-/shot-4.1.1.tgz#7b5ca71f63a159a0b28a487cd293f35b04164439" + integrity sha512-TrsqCyaq24XcdvD0bSi26hjwyQQy5q/nzpasbPNgPLoGnxW3sCWE7ws3ba6dd6Atb8TEh9QBD7mBQDCrMMz2Ig== + dependencies: + "@hapi/hoek" "8.x.x" + "@hapi/joi" "15.x.x" + +"@hapi/somever@2.x.x": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@hapi/somever/-/somever-2.1.1.tgz#142bddf7cc4d829f678ed4e60618630a9a7ae845" + integrity sha512-cic5Sto4KGd9B0oQSdKTokju+rYhCbdpzbMb0EBnrH5Oc1z048hY8PaZ1lx2vBD7I/XIfTQVQetBH57fU51XRA== + dependencies: + "@hapi/bounce" "1.x.x" + "@hapi/hoek" "8.x.x" + +"@hapi/statehood@6.x.x": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@hapi/statehood/-/statehood-6.1.1.tgz#64e9787163c57201c120b2381ba1982722ad0d8a" + integrity sha512-tMfS6B8QdrqTaKRUhHv6Ur7oPK6kcEZcnnvBK4IuaPZA9ma5UsyprTXkzbiB0V+0E56dMg3RabO1SABeZkzy6g== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/bounce" "1.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/cryptiles" "4.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/iron" "5.x.x" + "@hapi/joi" "15.x.x" + +"@hapi/subtext@6.x.x": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@hapi/subtext/-/subtext-6.1.1.tgz#3b63b4175a7bd06cd0d21f13912c7d81de90e6d2" + integrity sha512-Y7NjKFRPwlzKRw5IdwRou42hR4IBQZolT+/DlvfSr/CBjGyu38n5+9LKfNKzqB/0AVEk+xynCijsx1o1UVWX8A== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/content" "4.x.x" + "@hapi/file" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/pez" "4.x.x" + "@hapi/wreck" "15.x.x" + +"@hapi/teamwork@3.x.x": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-3.3.1.tgz#b52d0ec48682dc793926bd432e22ceb19c915d3f" + integrity sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ== + "@hapi/topo@3.x.x": version "3.1.2" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.2.tgz#57cc1317be1a8c5f47c124f9b0e3c49cd78424d2" @@ -825,6 +1052,22 @@ dependencies: "@hapi/hoek" "8.x.x" +"@hapi/vise@3.x.x": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@hapi/vise/-/vise-3.1.1.tgz#dfc88f2ac90682f48bdc1b3f9b8f1eab4eabe0c8" + integrity sha512-OXarbiCSadvtg+bSdVPqu31Z1JoBL+FwNYz3cYoBKQ5xq1/Cr4A3IkGpAZbAuxU5y4NL5pZFZG3d2a3ZGm/dOQ== + dependencies: + "@hapi/hoek" "8.x.x" + +"@hapi/wreck@15.x.x": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@hapi/wreck/-/wreck-15.0.2.tgz#e3e1b2830237792f8f6a372caee7866a77d8718d" + integrity sha512-D/7sGmx3XxxkaMWHZDKTMai8rIEfIgE+DnoZeKfmxhKGgvIpMu1f8BBmLADbdniccGer79w74IWWdXleNrT1Rw== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@material/animation@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@material/animation/-/animation-3.1.0.tgz#ab04e7c2e92ab370a2b28d12af1b88538d23014f" @@ -923,6 +1166,13 @@ dependencies: type-detect "4.0.8" +"@sinonjs/commons@^1.3.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" + integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg== + dependencies: + type-detect "4.0.8" + "@sinonjs/formatio@^3.1.0", "@sinonjs/formatio@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" @@ -931,7 +1181,7 @@ "@sinonjs/commons" "^1" "@sinonjs/samsam" "^3.1.0" -"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.1", "@sinonjs/samsam@^3.3.2": +"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.1": version "3.3.2" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.2.tgz#63942e3d5eb0b79f6de3bef9abfad15fb4b6401b" integrity sha512-ILO/rR8LfAb60Y1Yfp9vxfYAASK43NFC2mLzpvLUbCQY/Qu8YwReboseu8aheCEkyElZF2L2T9mHcR2bgdvZyA== @@ -940,6 +1190,15 @@ array-from "^2.1.1" lodash "^4.17.11" +"@sinonjs/samsam@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== + dependencies: + "@sinonjs/commons" "^1.3.0" + array-from "^2.1.1" + lodash "^4.17.15" + "@sinonjs/text-encoding@^0.7.1": version "0.7.1" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" @@ -1253,14 +1512,6 @@ abstract-logging@^1.0.0: resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-1.0.0.tgz#8b7deafd310559bc28f77724dd1bb30177278c1b" integrity sha1-i33q/TEFWbwo93ck3RuzAXcnjBs= -accept@3.x.x: - version "3.1.3" - resolved "https://registry.yarnpkg.com/accept/-/accept-3.1.3.tgz#29c3e2b3a8f4eedbc2b690e472b9ebbdc7385e87" - integrity sha512-OgOEAidVEOKPup+Gv2+2wdH2AgVKI9LxsJ4hicdJ6cY0faUuZdZoi56kkXWlHp9qicN1nWQLmW5ZRGk+SBS5xg== - dependencies: - boom "7.x.x" - hoek "6.x.x" - accepts@~1.3.4, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -1286,6 +1537,11 @@ acorn-jsx@^5.0.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== +acorn-jsx@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== + acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" @@ -1321,6 +1577,11 @@ acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" + integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== + adbkit-logcat@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/adbkit-logcat/-/adbkit-logcat-1.1.0.tgz#01d7f9b0cef9093a30bcb3b007efff301508962f" @@ -1485,13 +1746,6 @@ ajv@^6.10.0, ajv@^6.10.2: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ammo@3.x.x: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ammo/-/ammo-3.0.3.tgz#502aafa9d8bfca264143e226e5f322716e746b0c" - integrity sha512-vo76VJ44MkUBZL/BzpGXaKzMfroF4ZR6+haRuw9p+eSWfoNaH2AxVc8xmiEPC08jhzJSeM6w7/iMUGet8b4oBQ== - dependencies: - hoek "6.x.x" - amqplib@^0.5.1: version "0.5.3" resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.3.tgz#7ccfc85d12ee7cd3c6dc861bb07f0648ec3d7193" @@ -1660,7 +1914,7 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -args@^5.0.0: +args@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/args/-/args-5.0.1.tgz#4bf298df90a4799a09521362c579278cc2fdd761" integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ== @@ -1872,7 +2126,7 @@ async-iterator-last@^1.0.0: resolved "https://registry.yarnpkg.com/async-iterator-last/-/async-iterator-last-1.0.0.tgz#a352b2efd839c37dd3f497ad0b27ad17f9a9176b" integrity sha512-girbg1o/OdnszY9vbkIphzx71Gu0DNm+5DjGe32S1/bMLotPf52XFRRMVw/LE9/4Gn9xmL3H9tWftZ+JJWV4ig== -async-iterator-to-pull-stream@^1.1.0: +async-iterator-to-pull-stream@^1.1.0, async-iterator-to-pull-stream@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz#3a6b9f3cceadff972ca20eb480e3cb43f8789732" integrity sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA== @@ -1911,7 +2165,7 @@ async@^2.6.3: dependencies: lodash "^4.17.14" -async@^3.0.1, async@^3.1.0: +async@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772" integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ== @@ -1953,13 +2207,6 @@ aws4@^1.6.0, aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -b64@4.x.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/b64/-/b64-4.1.2.tgz#7015372ba8101f7fb18da070717a93c28c8580d8" - integrity sha512-+GUspBxlH3CJaxMUGUE1EBoWM6RKgWiYwUDal0qdf8m3ArnXNN1KzKVo5HOnE/FSq4HHyWf3TlHLsZI8PKQgrQ== - dependencies: - hoek "6.x.x" - babel-code-frame@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -2294,13 +2541,6 @@ boom@5.x.x: dependencies: hoek "4.x.x" -boom@7.x.x: - version "7.3.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" - integrity sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A== - dependencies: - hoek "6.x.x" - borc@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.1.tgz#df1a4ec063b9913f2fff5e07c9377eeeff47914a" @@ -2312,19 +2552,6 @@ borc@^2.1.0: iso-url "~0.4.4" json-text-sequence "~0.1.0" -bounce@1.x.x: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bounce/-/bounce-1.2.3.tgz#2b286d36eb21d5f08fe672dd8cd37a109baad121" - integrity sha512-3G7B8CyBnip5EahCZJjnvQ1HLyArC6P5e+xcolo13BVI9ogFaDOsNMAE7FIWliHtIkYI8/nTRCvCY9tZa3Mu4g== - dependencies: - boom "7.x.x" - hoek "6.x.x" - -bourne@1.x.x: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bourne/-/bourne-1.1.2.tgz#e290b5bd7166635632eaf8ef12b006b2d4a75b83" - integrity sha512-b2dgVkTZhkQirNMohgC00rWfpVqEi9y5tKM1k3JvoNx05ODtfQoPPd4js9CYFQoY0IM8LAmnJulEuWv74zjUOg== - boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -2596,6 +2823,11 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + buffer-indexof@~0.0.0: version "0.0.2" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-0.0.2.tgz#ed0f36b7ae166a66a7cd174c0467ae8dedf008f5" @@ -2645,6 +2877,14 @@ buffer@^5.0.2, buffer@^5.1.0, buffer@^5.2.1: base64-js "^1.0.2" ieee754 "^1.1.4" +buffer@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.2.tgz#2012872776206182480eccb2c0fba5f672a2efef" + integrity sha512-iy9koArjAFCzGnx3ZvNA6Z0clIbbFgbdWQ0mKD3hO0krOrZh8UgA6qMKcZvwLJxS+D6iVR76+5/pV56yMNYTag== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" @@ -2696,6 +2936,27 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" +cacache@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2739,14 +3000,6 @@ caching-transform@^3.0.2: package-hash "^3.0.0" write-file-atomic "^2.4.2" -call@5.x.x: - version "5.0.3" - resolved "https://registry.yarnpkg.com/call/-/call-5.0.3.tgz#5dc82c698141c2d45c51a9c3c7e0697f43ac46a2" - integrity sha512-eX16KHiAYXugbFu6VifstSdwH6aMuWWb4s0qvpq1nR1b+Sf+u68jjttg8ixDBEldPqBi30bDU35OJQWKeTLKxg== - dependencies: - boom "7.x.x" - hoek "6.x.x" - callbackify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/callbackify/-/callbackify-1.1.0.tgz#d2a36986d28aa69714526c111209beeb9979d31e" @@ -2853,23 +3106,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -catbox-memory@4.x.x: - version "4.0.1" - resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-4.0.1.tgz#3371ae0dd91bbf5d9dd88dcab5332470354cbd1f" - integrity sha512-ZmqNiLsYCIu9qvBJ/MQbznDV2bFH5gFiH67TgIJgSSffJFtTXArT+MM3AvJQlby9NSkLHOX4eH/uuUqnch/Ldw== - dependencies: - boom "7.x.x" - hoek "6.x.x" - -catbox@10.x.x: - version "10.0.6" - resolved "https://registry.yarnpkg.com/catbox/-/catbox-10.0.6.tgz#d8d8dc3c36c965560539f94245904b229a8af428" - integrity sha512-gQWCnF/jbHcfwGbQ4FQxyRiAwLRipqWTTXjpq7rTqqdcsnZosFa0L3LsCZcPTF33QIeMMkS7QmFBHt6QdzGPvg== - dependencies: - boom "7.x.x" - hoek "6.x.x" - joi "14.x.x" - caw@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" @@ -2913,7 +3149,7 @@ chalk@2.3.x: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3012,18 +3248,18 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== -chrome-dgram@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/chrome-dgram/-/chrome-dgram-3.0.2.tgz#7e0e00084b57971714214372368ad18a7785ad52" - integrity sha512-Ay741EHF/Ib18un+LUtBNK43NrabD6GOuwVaka7uUbV0gFRLEPULm2Q05YSzRNBtSrbaO4eErmDdniiy/u8Lig== +chrome-dgram@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/chrome-dgram/-/chrome-dgram-3.0.3.tgz#121935a81d52d4012273e17bcd6079f31a3fa30c" + integrity sha512-rktbTuXuzriInBm9qESjTqRhnscp26gAdsQnUSWIY4a3miF9gnFOBGib+DO0zcJ0ZF2wj6wwQrPgyWfT4+as3g== dependencies: inherits "^2.0.1" run-series "^1.1.2" -chrome-net@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/chrome-net/-/chrome-net-3.3.2.tgz#0454c247e908db42a93c6024d8a5ac50e3731445" - integrity sha512-BHxWfA9MDnh0C1By5q1DnF1vRS7vfBi2PrqTHIIt1HA4hM6l2xkHzoazbDlZcrDrMfjNs6fojKG+ZD0JmlnNWg== +chrome-net@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/chrome-net/-/chrome-net-3.3.3.tgz#09b40337d97fa857ac44ee9a2d82a66e43863401" + integrity sha512-11jL8+Ogna8M5TEdyalE8IG6cpaFEU3YcaxAj3YjZKjRM/PeT70pZbrUY+xoGwqiEJZwJE4Td2CvGxUvS9ytKQ== dependencies: inherits "^2.0.1" @@ -3413,13 +3649,6 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -content@4.x.x: - version "4.0.6" - resolved "https://registry.yarnpkg.com/content/-/content-4.0.6.tgz#76ffd96c5cbccf64fe3923cbb9c48b8bc04b273e" - integrity sha512-lR9ND3dXiMdmsE84K6l02rMdgiBVmtYWu1Vr/gfSGHcIcznBj2QxmSdUgDuNFOA+G9yrb1IIWkZ7aKtB6hDGyA== - dependencies: - boom "7.x.x" - convert-source-map@^1.1.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" @@ -3567,13 +3796,12 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4, safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-env@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" - integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== +cross-env@5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" + integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== dependencies: cross-spawn "^6.0.5" - is-windows "^1.0.0" cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" @@ -3615,13 +3843,6 @@ cryptiles@3.x.x: dependencies: boom "5.x.x" -cryptiles@4.x.x: - version "4.1.3" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.3.tgz#2461d3390ea0b82c643a6ba79f0ed491b0934c25" - integrity sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw== - dependencies: - boom "7.x.x" - crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -4011,10 +4232,10 @@ degenerator@^1.0.4: escodegen "1.x.x" esprima "3.x.x" -deglob@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/deglob/-/deglob-3.1.0.tgz#1868193193d3432a5326e8fb2052b439a43a454e" - integrity sha512-al10l5QAYaM/PeuXkAr1Y9AQz0LCtWsnJG23pIgh44hDxHFOj36l6qvhfjnIWBYwZOqM1fXUFV9tkjL7JPdGvw== +deglob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-4.0.1.tgz#0685c6383992fd6009be10653a2b1116696fad55" + integrity sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg== dependencies: find-root "^1.0.0" glob "^7.0.5" @@ -4531,6 +4752,22 @@ es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.1 is-regex "^1.0.4" object-keys "^1.0.12" +es-abstract@^1.13.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" + integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" + es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" @@ -4668,15 +4905,15 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-config-standard-jsx@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-7.0.0.tgz#05c737d9eab524860fe6853cfd535045c3e07e5b" - integrity sha512-OiKOF3MFVmWOCVfsi8GHlVorOEiBsPzAnUhM3c6HML94O2krbdQ/eMABySHgHHOIBYRls9sR9I3lo6O0vXhVEg== +eslint-config-standard-jsx@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz#314c62a0e6f51f75547f89aade059bec140edfc7" + integrity sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw== -eslint-config-standard@13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-13.0.1.tgz#c9c6ffe0cfb8a51535bc5c7ec9f70eafb8c6b2c0" - integrity sha512-zLKp4QOgq6JFgRm1dDCVv1Iu0P5uZ4v5Wa4DTOkg2RFMxdCX/9Qf7lz9ezRj2dBRa955cWQF/O/LWEiYWAHbTw== +eslint-config-standard@14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz#b23da2b76fe5a2eba668374f246454e7058f15d4" + integrity sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA== eslint-import-resolver-node@^0.3.2: version "0.3.2" @@ -4694,13 +4931,13 @@ eslint-module-utils@^2.4.0: debug "^2.6.8" pkg-dir "^2.0.0" -eslint-plugin-es@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" - integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== +eslint-plugin-es@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" + integrity sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ== dependencies: - eslint-utils "^1.3.0" - regexpp "^2.0.1" + eslint-utils "^1.4.2" + regexpp "^3.0.0" eslint-plugin-import@~2.18.0: version "2.18.0" @@ -4726,13 +4963,13 @@ eslint-plugin-no-unsafe-innerhtml@1.0.16: dependencies: eslint "^3.7.1" -eslint-plugin-node@~9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz#f2fd88509a31ec69db6e9606d76dabc5adc1b91a" - integrity sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw== +eslint-plugin-node@~10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6" + integrity sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ== dependencies: - eslint-plugin-es "^1.4.0" - eslint-utils "^1.3.1" + eslint-plugin-es "^2.0.0" + eslint-utils "^1.4.2" ignore "^5.1.1" minimatch "^3.0.4" resolve "^1.10.1" @@ -4779,16 +5016,28 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.0, eslint-utils@^1.3.1: +eslint-utils@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== +eslint-utils@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== + dependencies: + eslint-visitor-keys "^1.0.0" + eslint-visitor-keys@1.0.0, eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + eslint@5.16.0: version "5.16.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" @@ -4872,10 +5121,10 @@ eslint@^3.7.1: text-table "~0.2.0" user-home "^2.0.0" -eslint@~6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.1.0.tgz#06438a4a278b1d84fb107d24eaaa35471986e646" - integrity sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ== +eslint@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.3.0.tgz#1f1a902f67bfd4c354e7288b81e40654d927eb6a" + integrity sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -4884,9 +5133,9 @@ eslint@~6.1.0: debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^6.0.0" + eslint-utils "^1.4.2" + eslint-visitor-keys "^1.1.0" + espree "^6.1.1" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" @@ -4932,14 +5181,14 @@ espree@^3.4.0: acorn "^5.5.0" acorn-jsx "^3.0.0" -espree@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.0.0.tgz#716fc1f5a245ef5b9a7fdb1d7b0d3f02322e75f6" - integrity sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q== +espree@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" + integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.0.0" + acorn-jsx "^5.0.2" + eslint-visitor-keys "^1.1.0" esprima@3.x.x, esprima@^3.1.3: version "3.1.3" @@ -5267,10 +5516,10 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-json-parse@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" - integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== +fast-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.0.0.tgz#9bc72e6860347bb045a876d1c5c0af11e9b984e7" + integrity sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ== fast-json-patch@^2.0.6: version "2.1.0" @@ -5353,10 +5602,10 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-type@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.1.0.tgz#c2938e303bd0f0b96cd98f0f47d7c114de592350" - integrity sha512-aZkf42yWGiH+vSOpbVgvbnoRuX4JiitMX9pHYqTHemNQ3lrx64iHi33YGAP7TSJSno56kxQY1lHmw8S6ujlFUg== +file-type@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.3.0.tgz#74d755e5dc9c5cbc7ee6f182529b453906ac88c2" + integrity sha512-4E4Esq9KLwjYCY32E7qSmd0h7LefcniZHX+XcdJ4Wfx1uGJX7QCigiqw/U0yT7WOslm28yhxl87DJ0wHYv0RAA== file-type@5.2.0, file-type@^5.2.0: version "5.2.0" @@ -5402,10 +5651,10 @@ filenamify@^2.0.0: strip-outer "^1.0.0" trim-repeated "^1.0.0" -filesize@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-4.1.2.tgz#fcd570af1353cea97897be64f56183adb995994b" - integrity sha512-iSWteWtfNcrWQTkQw8ble2bnonSl7YJImsn9OZKpE2E4IHhXI78eASpDYUljXZZdYj36QsEKjOs/CsiDqmKMJw== +filesize@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-4.2.0.tgz#a8c989a179ca3a895cc32eab4abc64ebf6d34d44" + integrity sha512-bdS2UP98MZzLyTZzhuSH5ctAWyDt81n5xMti9BSdmgPXjjENLDz5Bmbk2R7ATVw/HRysZzWA2JIPgcSAOimWpw== filesize@^3.6.1: version "3.6.1" @@ -5444,6 +5693,15 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-cache-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" + integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.0" + pkg-dir "^4.1.0" + find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -5550,7 +5808,7 @@ flatmap@0.0.3: resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" integrity sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ= -flatstr@^1.0.9: +flatstr@^1.0.12, flatstr@^1.0.9: version "1.0.12" resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== @@ -5578,6 +5836,13 @@ fnv1a@^1.0.1: resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.0.1.tgz#915e2d6d023c43d5224ad9f6d2a3c4156f5712f5" integrity sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU= +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -5685,6 +5950,15 @@ fs-extra@^2.0.0: graceful-fs "^4.1.2" jsonfile "^2.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@~4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -6111,6 +6385,15 @@ globals@^9.14.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globalthis@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" + integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + object-keys "^1.0.12" + got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -6175,6 +6458,11 @@ graceful-fs@^4.1.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.1 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== +graceful-fs@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== + graceful-fs@~3.0.2: version "3.0.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" @@ -6230,14 +6518,15 @@ handlebars@^4.1.2: optionalDependencies: uglify-js "^3.1.4" -hapi-pino@^6.0.2, "hapi-pino@https://github.com/pinojs/hapi-pino/tarball/3767ed6b67601831e176e084ed82ba4ed9f726e6/hapi-pino.tar.gz": - version "5.4.0" - resolved "https://github.com/pinojs/hapi-pino/tarball/3767ed6b67601831e176e084ed82ba4ed9f726e6/hapi-pino.tar.gz#3a8f286bdb50b8dc3a6c949be22df2cd192dc317" +hapi-pino@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/hapi-pino/-/hapi-pino-6.1.0.tgz#95e72251dde7cd49af4a146e2b97ab0b28fbaa33" + integrity sha512-LP/hfRj2WCWg8QRjPt+FZzhnnDP+h28NkdLlNn0RbtAHp28ZynqHzF3hxjl+mJdl8mwo2L4DOw91uMsi+6V7Qg== dependencies: + "@hapi/hoek" "^8.2.2" abstract-logging "^1.0.0" - hoek "^6.1.2" - pino "^5.12.3" - pino-pretty "^2.5.0" + pino "^5.13.2" + pino-pretty "^3.2.1" har-schema@^2.0.0: version "2.0.0" @@ -6402,15 +6691,6 @@ heap@~0.2.6: resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" integrity sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw= -heavy@6.x.x: - version "6.1.2" - resolved "https://registry.yarnpkg.com/heavy/-/heavy-6.1.2.tgz#e5d56f18170a37b01d4381bc07fece5edc68520b" - integrity sha512-cJp884bqhiebNcEHydW0g6V1MUGYOXRPw9c7MFiHQnuGxtbWuSZpsbojwb2kxb3AA1/Rfs8CNiV9MMOF8pFRDg== - dependencies: - boom "7.x.x" - hoek "6.x.x" - joi "14.x.x" - hi-base32@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.0.tgz#61329f76a31f31008533f1c36f2473e259d64571" @@ -6430,11 +6710,6 @@ hoek@4.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== -hoek@6.x.x, hoek@^6.1.2: - version "6.1.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" - integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== - homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -6558,10 +6833,10 @@ human-to-milliseconds@^2.0.0: resolved "https://registry.yarnpkg.com/human-to-milliseconds/-/human-to-milliseconds-2.0.0.tgz#4790f764bf926d3676f685fed745814010170793" integrity sha512-O9SPpvCfucmYUFz3rr/mzfRBrxhLuKCNKOQ+XoKdLpUlYzvyaZHvsnjrJ0ybsKI03Zbp1KZVZ2C3m1Qm/DJH5A== -husky@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.3.tgz#6f3fb99f60ef72cdf34e5d78445c2f798c441b1d" - integrity sha512-DBBMPSiBYEMx7EVUTRE/ymXJa/lOL+WplcsV/lZu+/HHGt0gzD+5BIz9EJnCrWyUa7hkMuBh7/9OZ04qDkM+Nw== +husky@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.5.tgz#d7db27c346645a8dc52df02aa534a377ad7925e0" + integrity sha512-cKd09Jy9cDyNIvAdN2QQAP/oA21sle4FWXjIMDttailpLAYZuBE7WaPmhrkj+afS8Sj9isghAtFvWSQ0JiwOHg== dependencies: chalk "^2.4.2" cosmiconfig "^5.2.1" @@ -6870,11 +7145,25 @@ ip-address@^5.8.9: lodash "^4.17.11" sprintf-js "1.1.2" +ip-address@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-6.1.0.tgz#3c3335bc90f22b3545a6eca5bffefabeb2ea6fd2" + integrity sha512-u9YYtb1p2fWSbzpKmZ/b3QXWA+diRYPxc2c4y5lFB/MMk5WZ7wNZv8S3CFcIGVJ5XtlaCAl/FQy/D3eQ2XtdOA== + dependencies: + jsbn "1.1.0" + lodash "^4.17.15" + sprintf-js "1.1.2" + ip-regex@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip-regex@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -6933,7 +7222,70 @@ ipfs-css@0.13.1: resolved "https://registry.yarnpkg.com/ipfs-css/-/ipfs-css-0.13.1.tgz#f751be9cc89e30c34c50325848233f6da6b6728e" integrity sha512-hofJSYVBE3VC3/MOYZKfF66SKuHgnYkhXUmPDS8PISI8ygcljGOyBSSU4Je3dfgZX5UHDBEnzq5XyrTU822EDg== -ipfs-http-client@33.1.1, ipfs-http-client@^33.0.1, ipfs-http-client@^33.0.2: +ipfs-http-client@36.0.0: + version "36.0.0" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-36.0.0.tgz#f053bd0592d3143866b18e139075d58c6bc412c4" + integrity sha512-t9CnsABeIHoXYMdGq7gtYAqiUScnv1TGMs3Q+M9SuTGBQyRdzJERm20OW9/BE2jtbBLGvrDmq+5k6bW6A6eQTw== + dependencies: + abort-controller "^3.0.0" + async "^2.6.1" + async-iterator-all "^1.0.0" + async-iterator-to-pull-stream "^1.3.0" + bignumber.js "^9.0.0" + bl "^3.0.0" + bs58 "^4.0.1" + buffer "^5.4.2" + cids "~0.7.1" + concat-stream "github:hugomrdias/concat-stream#feat/smaller" + debug "^4.1.0" + detect-node "^2.0.4" + end-of-stream "^1.4.1" + err-code "^2.0.0" + explain-error "^1.0.4" + flatmap "0.0.3" + fs-extra "^8.1.0" + glob "^7.1.3" + ipfs-block "~0.8.1" + ipfs-utils "^0.1.0" + ipld-dag-cbor "~0.15.0" + ipld-dag-pb "~0.17.3" + ipld-raw "^4.0.0" + is-ipfs "~0.6.1" + is-pull-stream "0.0.0" + is-stream "^2.0.0" + iso-stream-http "~0.1.2" + iso-url "~0.4.6" + it-glob "0.0.4" + it-to-stream "^0.1.1" + iterable-ndjson "^1.1.0" + just-kebab-case "^1.1.0" + just-map-keys "^1.1.0" + kind-of "^6.0.2" + ky "^0.13.0" + ky-universal "^0.3.0" + lru-cache "^5.1.1" + multiaddr "^7.1.0" + multibase "~0.6.0" + multicodec "~0.5.1" + multihashes "~0.4.14" + ndjson "github:hugomrdias/ndjson#feat/readable-stream3" + once "^1.4.0" + peer-id "~0.12.3" + peer-info "~0.15.1" + promise-nodeify "^3.0.1" + promisify-es6 "^1.0.3" + pull-defer "~0.2.3" + pull-stream "^3.6.9" + pull-stream-to-async-iterator "^1.0.2" + pull-to-stream "~0.1.1" + pump "^3.0.0" + qs "^6.5.2" + readable-stream "^3.1.1" + stream-to-pull-stream "^1.7.2" + tar-stream "^2.0.1" + through2 "^3.0.1" + +ipfs-http-client@^33.0.1, ipfs-http-client@^33.0.2: version "33.1.1" resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-33.1.1.tgz#6ddc13e86f8db768093290b19537d2388c74dd45" integrity sha512-iwtLL3lOIzxXJFwLnOEtFUv1cYTuWJ0NauD7rpMEd/y4C7z6fuN6TSF4h547lxMh7sJWv+6Z0PmOA5N8FzUHJw== @@ -6984,22 +7336,24 @@ ipfs-http-client@33.1.1, ipfs-http-client@^33.0.1, ipfs-http-client@^33.0.2: tar-stream "^2.0.1" through2 "^3.0.1" -ipfs-http-client@^33.1.0: - version "33.1.0" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-33.1.0.tgz#4d3beceba27fcef26cf1940375a5f8c9d609f0dd" - integrity sha512-hkS8nXay3DGKb/KXU1RDvTyxnvkAdhS5enlXxNXaS7yKvADlf5SEuQGYjW+VknkPPQ4FNbY3JttQ3YW+LTuoRA== +ipfs-http-client@^34.0.0: + version "34.0.0" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-34.0.0.tgz#8804d06a11c22306332a8ffa0949b6f672a0c9c8" + integrity sha512-4RCkk8ix4Dqn6sxqFVwuXWCZ1eLFPsVaj6Ijvu1fs9VYgxgVudsW9PWwarlr4mw1xUCmPWYyXnEbGgzBrfMy0Q== dependencies: + abort-controller "^3.0.0" async "^2.6.1" bignumber.js "^9.0.0" bl "^3.0.0" bs58 "^4.0.1" - buffer "^5.2.1" + buffer "^5.4.2" cids "~0.7.1" concat-stream "github:hugomrdias/concat-stream#feat/smaller" debug "^4.1.0" detect-node "^2.0.4" end-of-stream "^1.4.1" - err-code "^1.1.2" + err-code "^2.0.0" + explain-error "^1.0.4" flatmap "0.0.3" glob "^7.1.3" ipfs-block "~0.8.1" @@ -7012,9 +7366,12 @@ ipfs-http-client@^33.1.0: is-stream "^2.0.0" iso-stream-http "~0.1.2" iso-url "~0.4.6" + iterable-ndjson "^1.1.0" just-kebab-case "^1.1.0" just-map-keys "^1.1.0" kind-of "^6.0.2" + ky "^0.11.2" + ky-universal "^0.2.2" lru-cache "^5.1.1" multiaddr "^6.0.6" multibase "~0.6.0" @@ -7022,8 +7379,9 @@ ipfs-http-client@^33.1.0: multihashes "~0.4.14" ndjson "github:hugomrdias/ndjson#feat/readable-stream3" once "^1.4.0" - peer-id "~0.12.2" + peer-id "~0.12.3" peer-info "~0.15.1" + promise-nodeify "^3.0.1" promisify-es6 "^1.0.3" pull-defer "~0.2.3" pull-stream "^3.6.9" @@ -7053,9 +7411,9 @@ ipfs-http-response@0.3.1, ipfs-http-response@~0.3.1: stream-to-blob "^1.0.1" ipfs-mfs@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/ipfs-mfs/-/ipfs-mfs-0.12.0.tgz#fa1efbd24a74d8340762716cb5d43eb1fe00683e" - integrity sha512-EY+At/kw2Lsyfd/AFInmvR2O6MQvQ87RWhAnN3GXSy/tXaopaS5CqT9SSUVAx3we87/pAUbusxQ1pK7HYtrXSw== + version "0.12.2" + resolved "https://registry.yarnpkg.com/ipfs-mfs/-/ipfs-mfs-0.12.2.tgz#2e8d548aa0da699f6b11a3e1f1798c253a5a43cf" + integrity sha512-o9vGKEdUI4HwQV67DQnC1AVSSs7i/yaIHrKPEb6Oe6vGeobLGuEGMReWjTcnMi5KAKUECFESEVtDuNJDr8BW5Q== dependencies: "@hapi/boom" "^7.4.2" "@hapi/joi" "^15.1.0" @@ -7065,20 +7423,20 @@ ipfs-mfs@~0.12.0: err-code "^1.1.2" hamt-sharding "~0.0.2" interface-datastore "~0.6.0" - ipfs-multipart "~0.1.0" + ipfs-multipart "~0.2.0" ipfs-unixfs "~0.1.16" ipfs-unixfs-exporter "~0.37.6" ipfs-unixfs-importer "~0.39.9" ipld-dag-pb "~0.17.2" joi-browser "^13.4.0" - mortice "^1.2.1" + mortice "^2.0.0" multicodec "~0.5.3" multihashes "~0.4.14" once "^1.4.0" promisify-es6 "^1.0.3" pull-stream "^3.6.9" -ipfs-multipart@~0.1.0, ipfs-multipart@~0.1.1: +ipfs-multipart@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ipfs-multipart/-/ipfs-multipart-0.1.1.tgz#a8c2ad93c3732c00558f50f254ba88a6aeaac6ae" integrity sha512-NAmCxgBkZ0usWXf8lMwYYEXvyzrqa65uy/1caVKm5yOKFoqXNrNOt4Ev99Pb+B0RMRqGSdfSvtnZM1cfhSSk2A== @@ -7086,6 +7444,14 @@ ipfs-multipart@~0.1.0, ipfs-multipart@~0.1.1: "@hapi/content" "^4.1.0" dicer "~0.3.0" +ipfs-multipart@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ipfs-multipart/-/ipfs-multipart-0.2.0.tgz#f9bc27856dd94a2b4ca1d7f60311775b22638d9c" + integrity sha512-pDCr7xtOW7KCqgeGmejfWjm5xPH516Kx4OU/PdbtIZu68/cFPW4jftJy9idQHdf0C/NnKHnqntMY93rbc+qrQg== + dependencies: + "@hapi/content" "^4.1.0" + it-multipart "~0.0.2" + ipfs-postmsg-proxy@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/ipfs-postmsg-proxy/-/ipfs-postmsg-proxy-3.1.1.tgz#7f14fcaecddcd1ca41d2ee077757efe234c92ac0" @@ -7172,6 +7538,23 @@ ipfs-unixfs@~0.1.16: dependencies: protons "^1.0.1" +ipfs-utils@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-0.1.0.tgz#f756297d157c1d4d62a74e27791b2edc5ae1e311" + integrity sha512-ukL46N8nxURmTAWC2fUKPLFaHQEvCuMn6mrM/6izEbthB6TCkFTqmUl/dhx5cRJFkYOUTvBzKNo9dnvo+8oAwQ== + dependencies: + buffer "^5.2.1" + err-code "^2.0.0" + fs-extra "^8.1.0" + is-buffer "^2.0.3" + is-electron "^2.2.0" + is-pull-stream "0.0.0" + is-stream "^2.0.0" + it-glob "0.0.4" + kind-of "^6.0.2" + pull-stream-to-async-iterator "^1.0.2" + readable-stream "^3.4.0" + ipfs-utils@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-0.0.3.tgz#b56e0f2294ea627c61af11f1a169370609797226" @@ -7185,31 +7568,35 @@ ipfs-utils@~0.0.3: kind-of "^6.0.2" readable-stream "^3.3.0" -ipfs-utils@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-0.0.4.tgz#946114cfeb6afb4454b4ccb10d2327cd323b0cce" - integrity sha512-7cZf6aGj2FG3XJWhCNwn4mS93Q0GEWjtBZvEHqzgI43U2qzNDCyzfS1pei1Y5F+tw/zDJ5U4XG0G9reJxR53Ig== +ipfs-utils@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-0.2.0.tgz#e9ccda585450eebb62944436c0fa45bbc464b869" + integrity sha512-rb3YSOQrSuS6NO4oCsgxM1+uQz21c4ZB3F5iMajftmBFd/wrySjDpl/slQ++EiPWp4DweByKt8IQqZD5eU1zfQ== dependencies: buffer "^5.2.1" + err-code "^2.0.0" + fs-extra "^8.1.0" is-buffer "^2.0.3" is-electron "^2.2.0" is-pull-stream "0.0.0" is-stream "^2.0.0" + it-glob "0.0.4" kind-of "^6.0.2" + pull-stream-to-async-iterator "^1.0.2" readable-stream "^3.4.0" -"ipfs@https://github.com/ipfs/js-ipfs/tarball/6fa8f88310a4f7f451f0f6846e435134376703e6/js-ipfs.tar.gz": - version "0.37.0" - resolved "https://github.com/ipfs/js-ipfs/tarball/6fa8f88310a4f7f451f0f6846e435134376703e6/js-ipfs.tar.gz#5d1582a899ccefd265e0b93e848e9a76619a0888" +"ipfs@https://github.com/ipfs/js-ipfs/tarball/ad65329253da333885b86c7927aa8f0a1e628551/js-ipfs.tar.gz": + version "0.38.0-pre.1" + resolved "https://github.com/ipfs/js-ipfs/tarball/ad65329253da333885b86c7927aa8f0a1e628551/js-ipfs.tar.gz#63488a4ef5f865635f68beb61ae41db6829ab916" dependencies: - "@hapi/ammo" "^3.1.0" - "@hapi/boom" "^7.4.2" - "@hapi/hapi" "^18.3.1" + "@hapi/ammo" "^3.1.1" + "@hapi/boom" "^7.4.3" + "@hapi/hapi" "^18.3.2" "@hapi/joi" "^15.0.1" array-shuffle "^1.0.1" async "^2.6.1" async-iterator-all "^1.0.0" - async-iterator-to-pull-stream "^1.1.0" + async-iterator-to-pull-stream "^1.3.0" async-iterator-to-stream "^1.1.0" base32.js "~0.1.0" bignumber.js "^9.0.0" @@ -7218,7 +7605,6 @@ ipfs-utils@~0.0.4: bs58 "^4.0.1" buffer-peek-stream "^1.0.1" byteman "^1.3.5" - callbackify "^1.1.0" cid-tool "~0.3.0" cids "~0.7.1" class-is "^1.1.0" @@ -7227,19 +7613,20 @@ ipfs-utils@~0.0.4: debug "^4.1.0" dlv "^1.1.3" err-code "^2.0.0" + explain-error "^1.0.4" file-type "^12.0.1" fnv1a "^1.0.1" fsm-event "^2.1.0" get-folder-size "^2.0.0" glob "^7.1.3" - hapi-pino "^6.0.2" + hapi-pino "^6.1.0" hashlru "^2.3.0" human-to-milliseconds "^2.0.0" interface-datastore "~0.6.0" ipfs-bitswap "~0.25.1" ipfs-block "~0.8.1" ipfs-block-service "~0.15.2" - ipfs-http-client "^33.1.0" + ipfs-http-client "^34.0.0" ipfs-http-response "~0.3.1" ipfs-mfs "~0.12.0" ipfs-multipart "~0.1.1" @@ -7247,7 +7634,7 @@ ipfs-utils@~0.0.4: ipfs-unixfs "~0.1.16" ipfs-unixfs-exporter "~0.37.7" ipfs-unixfs-importer "~0.39.11" - ipfs-utils "~0.0.4" + ipfs-utils "~0.2.0" ipld "~0.24.1" ipld-bitcoin "~0.3.0" ipld-dag-cbor "~0.15.0" @@ -7262,32 +7649,34 @@ ipfs-utils@~0.0.4: is-pull-stream "~0.0.0" is-stream "^2.0.0" iso-url "~0.4.6" - just-flatten-it "^2.1.0" just-safe-set "^2.1.0" kind-of "^6.0.2" - ky "~0.11.2" - ky-universal "~0.2.2" - libp2p "~0.25.4" + ky "~0.13.0" + ky-universal "~0.3.0" + libp2p "~0.26.1" libp2p-bootstrap "~0.9.3" libp2p-crypto "~0.16.0" libp2p-delegated-content-routing "^0.2.4" libp2p-delegated-peer-routing "^0.2.4" + libp2p-floodsub "^0.17.2" + libp2p-gossipsub "~0.0.5" libp2p-kad-dht "~0.15.3" libp2p-keychain "~0.4.2" libp2p-mdns "~0.12.0" libp2p-record "~0.6.3" libp2p-secio "~0.11.0" - libp2p-tcp "~0.13.0" + libp2p-tcp "~0.13.1" libp2p-webrtc-star "~0.16.0" libp2p-websocket-star-multi "~0.4.3" - libp2p-websockets "~0.12.2" + libp2p-websockets "~0.12.3" lodash "^4.17.15" mafmt "^6.0.2" merge-options "^1.0.1" mime-types "^2.1.21" mkdirp "~0.5.1" + mortice "^1.2.2" multiaddr "^6.1.0" - multiaddr-to-uri "^4.0.1" + multiaddr-to-uri "^5.0.0" multibase "~0.6.0" multicodec "~0.5.5" multihashes "~0.4.14" @@ -7297,7 +7686,7 @@ ipfs-utils@~0.0.4: peer-id "~0.12.3" peer-info "~0.15.0" progress "^2.0.1" - promise-nodeify "3.0.1" + promise-nodeify "^3.0.1" promisify-es6 "^1.0.3" protons "^1.0.1" pull-abortable "^4.1.1" @@ -7316,13 +7705,13 @@ ipfs-utils@~0.0.4: receptacle "^1.3.2" semver "^6.3.0" stream-to-pull-stream "^1.7.3" - superstruct "~0.6.0" + superstruct "~0.6.2" tar-stream "^2.0.0" temp "~0.9.0" update-notifier "^3.0.1" uri-to-multiaddr "^3.0.1" varint "^5.0.0" - yargs "^13.3.0" + yargs "^14.0.0" yargs-promise "^1.1.0" optionalDependencies: prom-client "^11.5.3" @@ -7492,16 +7881,6 @@ ipns@~0.5.2: protons "^1.0.1" timestamp-nano "^1.0.0" -iron@5.x.x: - version "5.0.6" - resolved "https://registry.yarnpkg.com/iron/-/iron-5.0.6.tgz#7121d4a6e3ac2f65e4d02971646fea1995434744" - integrity sha512-zYUMOSkEXGBdwlV/AXF9zJC0aLuTJUKHkGeYS5I2g225M5i6SrxQyGJGhPgOR8BK1omL6N5i6TcwfsXbP8/Exw== - dependencies: - b64 "4.x.x" - boom "7.x.x" - cryptiles "4.x.x" - hoek "6.x.x" - is-absolute@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" @@ -7550,7 +7929,7 @@ is-buffer@^2.0.0, is-buffer@^2.0.3, is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== -is-callable@^1.1.4: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -7711,6 +8090,13 @@ is-ip@^2.0.0: dependencies: ip-regex "^2.0.0" +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + is-ipfs@0.6.1, is-ipfs@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-0.6.1.tgz#c85069c73275dc6a60673c791a9be731e2b4bfc4" @@ -7900,7 +8286,7 @@ is-utf8@^0.2.0, is-utf8@^0.2.1: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -7930,13 +8316,6 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isemail@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" - integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== - dependencies: - punycode "2.x.x" - isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" @@ -8043,11 +8422,54 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" +it-glob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.4.tgz#f437a63bfaca8caa0cbb982bf7a3204670c96a79" + integrity sha512-sTMM62VQWRqlMpgbd+x1uTviQY7a8vMLXYmw+KPiV9vmAYuyIr9Sp1QRQ5B/faybf4O9RzMGyQb7eFpqLwsBhQ== + dependencies: + fs-extra "^8.1.0" + minimatch "^3.0.4" + +it-multipart@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/it-multipart/-/it-multipart-0.0.2.tgz#83e8d55aec54026340e94ea9f7928266597adb20" + integrity sha512-Mlvf1Tt+gLyk5EkE9njjfDCuvf5+3rx1vDt271MT7Ye08/3yJL/h+M/EWhPBPLebmNrkfXUQOGl8ud4T9PzuWA== + dependencies: + buffer-indexof "^1.1.1" + parse-headers "^2.0.2" + +it-to-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.1.tgz#3fb4a9c4df868cd8f4aaf2071eba5ada5a3fad2a" + integrity sha512-QQx/58JBvT189imr6fD234F8aVf8EdyQHJR0MxXAOShEWK1NWyahPYIQt/tQG7PId0ZG/6/3tUiVCfw2cq+e1w== + dependencies: + buffer "^5.2.1" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.4.0" + +iterable-ndjson@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" + integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== + dependencies: + string_decoder "^1.2.0" + jed@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4" integrity sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ= +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + jetpack-id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jetpack-id/-/jetpack-id-1.0.0.tgz#2cf9fbae46d8074fc16b7de0071c8efebca473a6" @@ -8063,15 +8485,6 @@ joi-browser@^13.4.0: resolved "https://registry.yarnpkg.com/joi-browser/-/joi-browser-13.4.0.tgz#b72ba61b610e3f58e51b563a14e0f5225cfb6896" integrity sha512-TfzJd2JaJ/lg/gU+q5j9rLAjnfUNF9DUmXTP9w+GfmG79LjFOXFeM7hIFuXCBcZCivUDFwd9l1btTV9rhHumtQ== -joi@14.x.x: - version "14.3.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c" - integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ== - dependencies: - hoek "6.x.x" - isemail "3.x.x" - topo "3.x.x" - js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -8305,11 +8718,6 @@ just-extend@^4.0.2: resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== -just-flatten-it@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/just-flatten-it/-/just-flatten-it-2.1.0.tgz#2514337cc77ee3462869fee3d939b06ec1fd7986" - integrity sha512-mX3NUt/LF6EzohLJZXhywCwz2zqdhx6wVkEu6UfUx00lVQlSB6SBV1O+/Le15NfsimrWRD82H69ZkSVQZffhmw== - just-kebab-case@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/just-kebab-case/-/just-kebab-case-1.1.0.tgz#ebe854fde84b0afa4e597fcd870b12eb3c026755" @@ -8409,7 +8817,7 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -ky-universal@~0.2.2: +ky-universal@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.2.2.tgz#7a36e1a75641a98f878157463513965f799f5bfe" integrity sha512-fb32o/fKy/ux2ALWa9HU2hvGtfOq7/vn2nH0FpVE+jwNzyTeORlAbj3Fiw+WLMbUlmVqZIWupnLZ2USHvqwZHw== @@ -8417,11 +8825,24 @@ ky-universal@~0.2.2: abort-controller "^3.0.0" node-fetch "^2.3.0" -ky@~0.11.2: +ky-universal@^0.3.0, ky-universal@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.3.0.tgz#3fcbb0dd03da39b5f05100d9362a630d5e1d402e" + integrity sha512-CM4Bgb2zZZpsprcjI6DNYTaH3oGHXL2u7BU4DK+lfCuC4snkt9/WRpMYeKbBbXscvKkeqBwzzjFX2WwmKY5K/A== + dependencies: + abort-controller "^3.0.0" + node-fetch "^2.6.0" + +ky@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/ky/-/ky-0.11.2.tgz#4ffe6621d9d9ab61bf0f5500542e3a96d1ba0815" integrity sha512-5Aou5BWue5/mkPqIRqzSWW+0Hkl403pr/2AIrCKYw7cVl/Xoe8Xe4KLBO0PRjbz7GnRe1/8wW1KhqQNFFE7/GQ== +ky@^0.13.0, ky@~0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.13.0.tgz#354c3d209f26d772415cbfe4f5d02ccbcb5ed536" + integrity sha512-qmyUE2IvwLveZEHiLmFzUIrW4EsSX18ItZgEfgx8JXFxSEPKrnXvWrjQDP6zi4mwcie3MWBEHyUg0aNF8OS9oA== + labeled-stream-splicer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" @@ -8645,47 +9066,20 @@ levn@^0.3.0, levn@~0.3.0: resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libp2p-bootstrap@~0.9.3: - version "0.9.7" - resolved "https://registry.yarnpkg.com/libp2p-bootstrap/-/libp2p-bootstrap-0.9.7.tgz#eabedab24775a6175f07ce035b716e8114d84a76" - integrity sha512-GuuYoTh0UBBlph0WuuiewtDZqfYsXmhSdX+JLMzGY6uMuK5aLr7gCa++2zVyBoOIgn0yTq2F6n4vKaWoK9Hi0w== - dependencies: - async "^2.6.1" - debug "^4.1.1" - mafmt "^6.0.4" - multiaddr "^6.0.3" - peer-id "~0.12.2" - peer-info "~0.15.1" - -libp2p-circuit@~0.3.6: - version "0.3.7" - resolved "https://registry.yarnpkg.com/libp2p-circuit/-/libp2p-circuit-0.3.7.tgz#f2eb7a7250d968fa3844dcfeb718ac4735b78f5b" - integrity sha512-Z14T3D1YYE1W2k9QtheyxzfwGpEi4Tk4gDofSmAhKqlfCQcctNvKdv0udgjnwzZjXRBtAmNzVJfxZ2WagtZotA== - dependencies: - async "^2.6.2" - debug "^4.1.1" - interface-connection "~0.3.3" - mafmt "^6.0.7" - multiaddr "^6.0.6" - once "^1.4.0" - peer-id "~0.12.2" - peer-info "~0.15.1" - protons "^1.0.1" - pull-handshake "^1.1.4" - pull-length-prefixed "^1.3.2" - pull-pair "^1.1.0" - pull-stream "^3.6.9" + prelude-ls "~1.1.2" + type-check "~0.3.2" -libp2p-connection-manager@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/libp2p-connection-manager/-/libp2p-connection-manager-0.1.0.tgz#1807d8dcdb27619d69899a38c43f842f66b25652" - integrity sha512-Md5UERlkD+KUsdUQRJE+B+UBq/KwOTo650z8Bl0zEfKjfnv/yMeFhucnf14suYBnzIIdGsckYn66xbeki31BLw== +libp2p-bootstrap@~0.9.3: + version "0.9.7" + resolved "https://registry.yarnpkg.com/libp2p-bootstrap/-/libp2p-bootstrap-0.9.7.tgz#eabedab24775a6175f07ce035b716e8114d84a76" + integrity sha512-GuuYoTh0UBBlph0WuuiewtDZqfYsXmhSdX+JLMzGY6uMuK5aLr7gCa++2zVyBoOIgn0yTq2F6n4vKaWoK9Hi0w== dependencies: + async "^2.6.1" debug "^4.1.1" - latency-monitor "~0.2.1" + mafmt "^6.0.4" + multiaddr "^6.0.3" + peer-id "~0.12.2" + peer-info "~0.15.1" libp2p-crypto-secp256k1@~0.2.2: version "0.2.3" @@ -8792,33 +9186,37 @@ libp2p-delegated-peer-routing@0.2.4, libp2p-delegated-peer-routing@^0.2.4: peer-id "^0.12.2" peer-info "^0.15.1" -libp2p-floodsub@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/libp2p-floodsub/-/libp2p-floodsub-0.16.1.tgz#ce9ee5be742d97fefa111649edc6fa1e70bc47a7" - integrity sha512-3Y+BMwlgit5LGKFUwEn5hNH9+WvhK4mkSEKe7mu0xtQ0KmFvwUpYt+UO/By1iZRpYDyEhQ8rya0ZJtYcqFkxvg== +libp2p-floodsub@^0.17.2, libp2p-floodsub@~0.17.1: + version "0.17.2" + resolved "https://registry.yarnpkg.com/libp2p-floodsub/-/libp2p-floodsub-0.17.2.tgz#c789bcd55cfb513a4d2f5291bd28d6aa2be271d1" + integrity sha512-xOljtBcNTerBwRYFnXlJVmTwdYla9YTvBux6HaBE0GvVjPHqOI7gO5WJQ1Nul/7h5qLX5tJqZ4OY5CVn+mcuUQ== dependencies: async "^2.6.2" bs58 "^4.0.1" debug "^4.1.1" length-prefixed-stream "^2.0.0" libp2p-crypto "~0.16.1" - libp2p-pubsub "~0.1.0" + libp2p-pubsub "~0.2.0" protons "^1.0.1" pull-length-prefixed "^1.3.2" pull-pushable "^2.2.0" pull-stream "^3.6.9" -libp2p-identify@~0.7.6: - version "0.7.6" - resolved "https://registry.yarnpkg.com/libp2p-identify/-/libp2p-identify-0.7.6.tgz#b17fad2ec0df76d6ca6b5b0a7e58b04620b8dbe9" - integrity sha512-QleYqI6f8ah6G6sQU9uaIa9FVOtyp6LtiqopfjrmAIO5Oz22Zw+dpT7FcEXvYP7kL036Es2vzZm0js0pOWw1MA== +libp2p-gossipsub@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/libp2p-gossipsub/-/libp2p-gossipsub-0.0.5.tgz#0206f96cd5f9e74221fb68ce6730f86e2d529294" + integrity sha512-7IM9hcSkc7pBWEju/a5ZGcUrEHclgVoUU7XPrMsMB7s5QNXziSbLjJvIBlgU7WOxoTmgmZldEtHPkrsPEb1C9A== dependencies: - multiaddr "^6.0.4" + async "^2.6.2" + err-code "^1.1.2" + libp2p-floodsub "~0.17.1" + libp2p-pubsub "~0.2.0" + multistream-select "~0.14.6" peer-id "~0.12.2" peer-info "~0.15.1" protons "^1.0.1" - pull-length-prefixed "^1.3.1" - pull-stream "^3.6.9" + pull-length-prefixed "^1.3.3" + pull-stream "^3.6.13" libp2p-kad-dht@~0.15.3: version "0.15.3" @@ -8883,19 +9281,10 @@ libp2p-mdns@~0.12.0: peer-id "~0.12.2" peer-info "~0.15.1" -libp2p-ping@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/libp2p-ping/-/libp2p-ping-0.8.5.tgz#e7fb9fb32d9ff0d6b51be52caef4395ce1a17613" - integrity sha512-BzCN3+jp1SvJQZlXq2G3TMkyK5UOOf3JO+CZMnaUEHYlRgQf2zShYta5XU2IGx0EJA/23iCdCL+LjBP/DOvbkQ== - dependencies: - libp2p-crypto "~0.16.0" - pull-handshake "^1.1.4" - pull-stream "^3.6.9" - -libp2p-pubsub@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/libp2p-pubsub/-/libp2p-pubsub-0.1.0.tgz#cf7b5bd389a0a6879a814d5e6519b13ad361b4fa" - integrity sha512-oppDCIZLmqODAgt1r625yO0j9wy7auro7B6/5bw2WN5ctqTsG791dn3SGVRLV8Dvd7uSfMlOaZ/Bkw8jle0Ytg== +libp2p-pubsub@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/libp2p-pubsub/-/libp2p-pubsub-0.2.0.tgz#28f11af5190e9f5cebbb40a3943488b8f2d6dbdf" + integrity sha512-H1UIvJqYWEopb3EJluEoanU/cLgQF9aEzhTwmvH00GmJkyxQ5f/KMmVMCU0WxtEKTpQE9IA2W9vtX41nvlzo0w== dependencies: async "^2.6.2" bs58 "^4.0.1" @@ -8907,6 +9296,7 @@ libp2p-pubsub@~0.1.0: pull-length-prefixed "^1.3.1" pull-pushable "^2.2.0" pull-stream "^3.6.9" + sinon "^7.3.2" time-cache "~0.3.0" libp2p-record@~0.6.2, libp2p-record@~0.6.3: @@ -8939,30 +9329,6 @@ libp2p-secio@~0.11.0: pull-length-prefixed "^1.3.1" pull-stream "^3.6.9" -libp2p-switch@^0.42.12: - version "0.42.12" - resolved "https://registry.yarnpkg.com/libp2p-switch/-/libp2p-switch-0.42.12.tgz#672ab3b249121e876231d9fef9a143a5ed2c41da" - integrity sha512-aNjJQpP9kSClXXKIliSqIowIoxAy0JQ8hnw6BoqOHUIG9Eov4GVyuOdU6lQKl1ym4uKMsnF2G49qpZJ47O01XA== - dependencies: - async "^2.6.2" - bignumber.js "^8.1.1" - class-is "^1.1.0" - debug "^4.1.1" - err-code "^1.1.2" - fsm-event "^2.1.0" - hashlru "^2.3.0" - interface-connection "~0.3.3" - libp2p-circuit "~0.3.6" - libp2p-identify "~0.7.6" - moving-average "^1.0.0" - multiaddr "^6.0.6" - multistream-select "~0.14.4" - once "^1.4.0" - peer-id "~0.12.2" - peer-info "~0.15.1" - pull-stream "^3.6.9" - retimer "^2.0.0" - libp2p-tcp@~0.13.0: version "0.13.0" resolved "https://registry.yarnpkg.com/libp2p-tcp/-/libp2p-tcp-0.13.0.tgz#597f0f837890ca07b062b75593a4d58b755122b2" @@ -8979,6 +9345,22 @@ libp2p-tcp@~0.13.0: once "^1.4.0" stream-to-pull-stream "^1.7.2" +libp2p-tcp@~0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/libp2p-tcp/-/libp2p-tcp-0.13.1.tgz#170bc283fb7b7afa1554dd5f4ab9e57b0097e4b2" + integrity sha512-gb9C6u+ax11+2ntXnaBPRveb/dyQ36j0dU6FLXcUSIO9ovkWWXduCZC0Fi/Uyc/CZAUYUsu/ACKSvEX+ELS9AQ== + dependencies: + class-is "^1.1.0" + debug "^4.1.1" + interface-connection "~0.3.3" + ip-address "^6.1.0" + lodash.includes "^4.3.0" + lodash.isfunction "^3.0.9" + mafmt "^6.0.7" + multiaddr "^6.1.0" + once "^1.4.0" + stream-to-pull-stream "^1.7.3" + libp2p-webrtc-star@~0.16.0: version "0.16.1" resolved "https://registry.yarnpkg.com/libp2p-webrtc-star/-/libp2p-webrtc-star-0.16.1.tgz#d160a157d033f1ad915cf460776a1ca32f352b75" @@ -9036,7 +9418,7 @@ libp2p-websocket-star@~0.10.2: socket.io-client "^2.1.1" socket.io-pull-stream "~0.1.5" -libp2p-websockets@^0.12.2, libp2p-websockets@~0.12.2: +libp2p-websockets@^0.12.2: version "0.12.2" resolved "https://registry.yarnpkg.com/libp2p-websockets/-/libp2p-websockets-0.12.2.tgz#eecf25564cbe6b0e9017bb411c2a8abec8c9f29b" integrity sha512-K/Jg/fWFfP5NyiLx01EJcoAcYQO00RSHpZfPQDR3May6ABvOseAjq45SrUDdDCW5mCS0502Vz1VjRrZdOXw8zQ== @@ -9048,27 +9430,53 @@ libp2p-websockets@^0.12.2, libp2p-websockets@~0.12.2: multiaddr-to-uri "^4.0.1" pull-ws hugomrdias/pull-ws#fix/bundle-size -libp2p@~0.25.4: - version "0.25.5" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.25.5.tgz#f7153064cb64555c4520b086a79b787bd2de2161" - integrity sha512-vkUGFkPcY7t/LyyIbjKbF7KE4O+gPmJXvv363TjmNSZX/ph0aP8KtCpurxwo82ztxec3w5XCZUyNGrjEliSshw== +libp2p-websockets@~0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/libp2p-websockets/-/libp2p-websockets-0.12.3.tgz#f4bc201b0f381bd6b53f5e92446394761f29ceb3" + integrity sha512-qA5YZv7RoxGUtMlcD8JwquonM0/19MCV0UPDRihCjzTi4wRgGKhIXZSwd/fs+8RRTKHMEUngAxit7ZLSlYgdQQ== + dependencies: + class-is "^1.1.0" + debug "^4.1.1" + interface-connection "~0.3.3" + mafmt "^6.0.7" + multiaddr-to-uri "^5.0.0" + pull-ws hugomrdias/pull-ws#fix/bundle-size + +libp2p@~0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.26.1.tgz#9b4143c07ac1ebd5318167964564de3815f26c2d" + integrity sha512-nndg8kEp18PW5L5h6GPDAv/xtTI5YgHik5Uwoiw3FvVKyfpm4A+HZ1INmL3PeI+wR7fZa7uQ6J5udywZ4FYEMw== dependencies: async "^2.6.2" + bignumber.js "^9.0.0" + class-is "^1.1.0" debug "^4.1.1" err-code "^1.1.2" fsm-event "^2.1.0" - libp2p-connection-manager "^0.1.0" - libp2p-floodsub "^0.16.1" - libp2p-ping "^0.8.5" - libp2p-switch "^0.42.12" + hashlru "^2.3.0" + interface-connection "~0.3.3" + latency-monitor "~0.2.1" + libp2p-crypto "~0.16.1" libp2p-websockets "^0.12.2" mafmt "^6.0.7" + merge-options "^1.0.1" + moving-average "^1.0.0" multiaddr "^6.1.0" + multistream-select "~0.14.6" once "^1.4.0" peer-book "^0.9.1" peer-id "^0.12.2" - peer-info "^0.15.1" + peer-info "~0.15.1" + promisify-es6 "^1.0.3" + protons "^1.0.1" + pull-cat "^1.1.11" + pull-defer "~0.2.3" + pull-handshake "^1.1.4" + pull-reader "^1.3.1" + pull-stream "^3.6.9" + retimer "^2.0.0" superstruct "^0.6.0" + xsalsa20 "^1.0.2" lie@~3.3.0: version "3.3.0" @@ -9457,6 +9865,13 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" + integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== + dependencies: + semver "^6.0.0" + mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" @@ -9628,6 +10043,11 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merkle-lib@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" @@ -9724,14 +10144,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimos@4.x.x: - version "4.0.2" - resolved "https://registry.yarnpkg.com/mimos/-/mimos-4.0.2.tgz#f2762d7c60118ce51c2231afa090bc335d21d0f8" - integrity sha512-5XBsDqBqzSN88XPPH/TFpOalWOjHJM5Z2d3AMx/30iq+qXvYKd/8MPhqBwZDOLtoaIWInR3nLzMQcxfGK9djXA== - dependencies: - hoek "6.x.x" - mime-db "1.x.x" - min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -9888,13 +10300,24 @@ moment@^2.10.6: resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -mortice@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/mortice/-/mortice-1.2.2.tgz#a388dcb24bb984da86c4edb04ed29d70d352882b" - integrity sha512-zECpP0bCFVxlAbIJST7ZHQPm5ECKsJRaw4JfSmu5XQeSkO+UB8i+1GUxkskqLHHQfj/wGRWNDd8KBkWfHaZZkw== +mortice@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/mortice/-/mortice-1.2.3.tgz#8e92963d67708dc229a98d5b65ebaa1fc4afb7fd" + integrity sha512-m285eSxSrbNieKgWWzGSbWO2oSoFHb2fdZX306afMVJ8p8boeAmUW5hCyZBC/gHuBMizR7wO9sXH74kZmf0ZbA== dependencies: observable-webworkers "^1.0.0" - p-queue "^5.0.0" + p-queue "^6.0.0" + promise-timeout "^1.3.0" + shortid "^2.2.8" + +mortice@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mortice/-/mortice-2.0.0.tgz#7be171409c2115561ba3fc035e4527f9082eefde" + integrity sha512-rXcjRgv2MRhpwGHErxKcDcp5IoA9CPvPFLXmmseQYIuQ2fSVu8tsMKi/eYUXzp/HH1s6y3IID/GwRqlSglDdRA== + dependencies: + globalthis "^1.0.0" + observable-webworkers "^1.0.0" + p-queue "^6.0.0" promise-timeout "^1.3.0" shortid "^2.2.8" @@ -9945,14 +10368,21 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multiaddr-to-uri@4.0.1, multiaddr-to-uri@^4.0.1: +multiaddr-to-uri@5.0.0, multiaddr-to-uri@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-5.0.0.tgz#f62421bd905d2690030acdae09b0719f60b6a91c" + integrity sha512-aVc52fdGXso3DwvVKUTjMddhLyuFBXcpGSbsIju0lKiYKFBUEREXSLpcqTOZlO8w1G1TivVmDe4CBUKQ/xMm5A== + dependencies: + multiaddr "^6.1.0" + +multiaddr-to-uri@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-4.0.1.tgz#3b89d2a460a96602a16f3bfe296ee771ecb2558b" integrity sha512-RVHKm5NXcMWMIhrwF4B4Q34JtMXt1/2wgnDTnKRE+AGAiXfqFika0bIfCsAtLp+gZJOWeDLeT1vR6P0gGyVAtg== dependencies: multiaddr "^6.0.3" -multiaddr@6.1.0, multiaddr@^4.0.0, multiaddr@^5.0.0, multiaddr@^6.0.3, multiaddr@^6.0.4, multiaddr@^6.0.6, multiaddr@^6.1.0: +multiaddr@6.1.0, multiaddr@^4.0.0, multiaddr@^5.0.0, multiaddr@^6.0.3, multiaddr@^6.0.4, multiaddr@^6.0.6, multiaddr@^6.1.0, multiaddr@^7.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-6.1.0.tgz#1f93afce58a33db5cc32a5917d8a14105d94330e" integrity sha512-+XTP3OzG2m6JVcjxA9QBmGDr0Vk8WwnohC/fCC3puXb5qJqfJwLVJLEtdTc6vK7ri/hw+Nn4wyT4LkZaPnvGfQ== @@ -9964,6 +10394,18 @@ multiaddr@6.1.0, multiaddr@^4.0.0, multiaddr@^5.0.0, multiaddr@^6.0.3, multiaddr is-ip "^2.0.0" varint "^5.0.0" +multiaddr@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.1.0.tgz#e74d69b10cff2840c4c36eb2ecef94a6b933a977" + integrity sha512-XQS/KsvlsnlTs2krhSYP8Nzin3S8vKBBQcaQO2K4gd/4Oq56kfxiPeAOWEvloB5gY8iv9wSorZ3WOA9yYqf9+A== + dependencies: + bs58 "^4.0.1" + class-is "^1.1.0" + hi-base32 "~0.5.0" + ip "^1.1.5" + is-ip "^3.1.0" + varint "^5.0.0" + multibase@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.0.tgz#0216e350614c7456da5e8e5b20d3fcd4c9104f56" @@ -10058,12 +10500,12 @@ multimatch@4.0.0: arrify "^2.0.1" minimatch "^3.0.4" -multistream-select@~0.14.4: - version "0.14.5" - resolved "https://registry.yarnpkg.com/multistream-select/-/multistream-select-0.14.5.tgz#6b8e91079149e6b33f628730382780810b3e122d" - integrity sha512-vu5CbuXZEv2GjJgXC9VOcXesNxGykI0lqYC900xwQPeALiiIK4stVyjlpb/UowtmSZ4KELsRQYb7/gvC1lA37Q== +multistream-select@~0.14.6: + version "0.14.6" + resolved "https://registry.yarnpkg.com/multistream-select/-/multistream-select-0.14.6.tgz#a3998eeb3fed83be2e8cd1eac5053825899f8d4b" + integrity sha512-oRxaStv2thLDZi3eojRgolS9DHbH5WENV2NwN6VwubEwsuwSEALbmSyxQ7PSzB7rSjgX2LGpuMzZ9O+ZptbEyA== dependencies: - async "^3.1.0" + async "^2.6.3" debug "^4.1.1" err-code "^1.1.2" interface-connection "~0.3.3" @@ -10349,14 +10791,6 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nigel@3.x.x: - version "3.0.4" - resolved "https://registry.yarnpkg.com/nigel/-/nigel-3.0.4.tgz#edcd82f2e9387fe34ba21e3127ae4891547c7945" - integrity sha512-3SZCCS/duVDGxFpTROHEieC+itDo4UqL9JNUyQJv3rljudQbK6aqus5B4470OxhESPJLN93Qqxg16rH7DUjbfQ== - dependencies: - hoek "6.x.x" - vise "3.x.x" - nise@^1.4.10: version "1.5.0" resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.0.tgz#d03ea0e6c1b75c638015aa3585eddc132949a50d" @@ -10368,10 +10802,10 @@ nise@^1.4.10: lolex "^4.1.0" path-to-regexp "^1.7.0" -nise@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.1.tgz#de61d99a1d3b46b5233be4531569b9a8e27372b2" - integrity sha512-edFWm0fsFG2n318rfEnKlTZTkjlbVOFF9XIA+fj+Ed+Qz1laYW2lobwavWoMzGrYDHH1EpiNJgDfvGnkZztR/g== +nise@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652" + integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA== dependencies: "@sinonjs/formatio" "^3.2.1" "@sinonjs/text-encoding" "^0.7.1" @@ -10684,7 +11118,12 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -10935,6 +11374,11 @@ p-defer@^1.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + p-event@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" @@ -10942,6 +11386,14 @@ p-event@^1.0.0: dependencies: p-timeout "^1.1.1" +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -10997,10 +11449,10 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-queue@6.1.0, p-queue@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.1.0.tgz#3f546275073b41e4af460e41459524b15c2753f3" - integrity sha512-907vNz/cY+JEsqGglo7o/Ia9E/wisahJGOp9HPfbAyCVGERQVmFGA4IyknxY1v+QRBiMKedL3ToOBXNEy9MKQA== +p-queue@6.1.1, p-queue@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.1.1.tgz#eedbaf7335b4931ef857e2e58063fed461b97e80" + integrity sha512-R9gq36Th88xZ+rWAptN5IXLwqkwA1gagCQhT6ZXQ6RxEfmjb9ZW+UBzRVqv9sm5TQmbbI/TsKgGLbOaA61xR5w== dependencies: eventemitter3 "^4.0.0" p-timeout "^3.1.0" @@ -11012,6 +11464,14 @@ p-queue@^5.0.0: dependencies: eventemitter3 "^3.1.0" +p-queue@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.1.0.tgz#3f546275073b41e4af460e41459524b15c2753f3" + integrity sha512-907vNz/cY+JEsqGglo7o/Ia9E/wisahJGOp9HPfbAyCVGERQVmFGA4IyknxY1v+QRBiMKedL3ToOBXNEy9MKQA== + dependencies: + eventemitter3 "^4.0.0" + p-timeout "^3.1.0" + p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" @@ -11138,6 +11598,14 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-headers@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34" + integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== + dependencies: + for-each "^0.3.3" + string.prototype.trim "^1.1.2" + parse-json@4.0.0, parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -11418,17 +11886,6 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pez@4.x.x: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pez/-/pez-4.0.5.tgz#a975c49deff330d298d82851b39f81c2710556df" - integrity sha512-HvL8uiFIlkXbx/qw4B8jKDCWzo7Pnnd65Uvanf9OOCtb20MRcb9gtTVBf9NCnhETif1/nzbDHIjAWC/sUp7LIQ== - dependencies: - b64 "4.x.x" - boom "7.x.x" - content "4.x.x" - hoek "6.x.x" - nigel "3.x.x" - pidtree@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" @@ -11466,27 +11923,51 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pino-pretty@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-2.6.1.tgz#b5a8e28137deb1629428931d98c708b51f0e9555" - integrity sha512-e/CWtKLidqkr7sinfIVVcsfcHgnFVlGvuEfKuuPFnxBo+9dZZsmgF8a9Rj7SYJ5LMZ8YBxNY9Ca46eam4ajKtQ== +pino-pretty@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-3.2.1.tgz#db13b793f7074f25051306ee625b6feabae056d9" + integrity sha512-PGdcRYw7HCF7ovMhrnepOUmEVh5+tATydRrBICEbP37oRasXV+lo2HA9gg8b7cE7LG6G1OZGVXTZ7MLd946k1Q== dependencies: - args "^5.0.0" - chalk "^2.3.2" + "@hapi/bourne" "^1.3.2" + args "^5.0.1" + chalk "^2.4.2" dateformat "^3.0.3" - fast-json-parse "^1.0.3" fast-safe-stringify "^2.0.6" jmespath "^0.15.0" pump "^3.0.0" - readable-stream "^3.0.6" - split2 "^3.0.0" + readable-stream "^3.3.0" + split2 "^3.1.1" pino-std-serializers@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz#cb5e3e58c358b26f88969d7e619ae54bdfcc1ae1" integrity sha512-WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ== -pino@5.12.3, pino@5.12.6, pino@^5.12.3, pino@~5.12.0: +pino@5.12.6: + version "5.12.6" + resolved "https://registry.yarnpkg.com/pino/-/pino-5.12.6.tgz#04a668278d7616db71871f1bd3e26f6918e05feb" + integrity sha512-LM5ug2b27uymIIkaBw54ncF+9DSf8S4z1uzw+Y5I94dRu3Z+lFuB13j0kg1InAeyxy+CsLGnWHKy9+zgTreFOg== + dependencies: + fast-redact "^1.4.4" + fast-safe-stringify "^2.0.6" + flatstr "^1.0.9" + pino-std-serializers "^2.3.0" + quick-format-unescaped "^3.0.2" + sonic-boom "^0.7.3" + +pino@^5.13.2: + version "5.13.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-5.13.2.tgz#773416c9764634276e7b2ae021357679ff7b5634" + integrity sha512-WwOSCy36/gWhinsqWqAnuwIi2WtcH+jvoyeLm3bjUALIrzWIst0AovQjK4jVvSN2l64KFPfi3gd2fjsTovjdLQ== + dependencies: + fast-redact "^1.4.4" + fast-safe-stringify "^2.0.6" + flatstr "^1.0.9" + pino-std-serializers "^2.3.0" + quick-format-unescaped "^3.0.2" + sonic-boom "^0.7.5" + +pino@~5.12.0: version "5.12.3" resolved "https://registry.yarnpkg.com/pino/-/pino-5.12.3.tgz#5ebc7d15b3584b91de8d3cdae01ef3a10e7fb977" integrity sha512-/PiX7QXOMZz7edRVGm/apt22nkdRByB6ki0ftWcDpHjjNmjnE7UubNd7NeDX7cBey27obxvBvZy3oQuJbz1+Ag== @@ -11529,7 +12010,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.2.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -11556,14 +12037,6 @@ po2json@0.4.5: gettext-parser "1.1.0" nomnom "1.8.1" -podium@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/podium/-/podium-3.2.0.tgz#2a7c579ddd5408f412d014c9ffac080c41d83477" - integrity sha512-rbwvxwVkI6gRRlxZQ1zUeafrpGxZ7QPHIheinehAvGATvGIPfWRkaTeWedc5P4YjXJXEV8ZbBxPtglNylF9hjw== - dependencies: - hoek "6.x.x" - joi "14.x.x" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -11675,12 +12148,17 @@ prometheus-gc-stats@~0.6.0: optionalDependencies: gc-stats "^1.2.1" +promise-controller@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promise-controller/-/promise-controller-0.3.0.tgz#e512a5059075a0c2dedd1488695412f0650c33f7" + integrity sha512-w1RTaOwD5bNtYjIj5L8+ruDtMgnKC0pLtOogA3kcS4LRtiwLOpAdokjYbkjJMa6AGV0oasHa8RRNa8qEpG1qyw== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise-nodeify@3.0.1: +promise-nodeify@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/promise-nodeify/-/promise-nodeify-3.0.1.tgz#f0f5d9720ee9ec71dd2bfa92667be504c10229c2" integrity sha512-ghsSuzZXJX8iO7WVec2z7GI+Xk/EyiD+JZK7AZKhUqYfpLa/Zs4ylUD+CwwnKlG6G3HnkUPMAi6PO7zeqGKssg== @@ -12049,16 +12527,16 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@2.x.x, punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + pushdata-bitcoin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" @@ -12385,16 +12863,21 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" - integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== +regexp-tree@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" + integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + regexpu-core@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" @@ -12774,7 +13257,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@~5.1.2: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, 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.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== @@ -12825,6 +13308,14 @@ schema-utils@^2.0.1: ajv "^6.1.0" ajv-keywords "^3.1.0" +schema-utils@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.2.0.tgz#48a065ce219e0cacf4631473159037b2c1ae82da" + integrity sha512-5EwsCNhfFTZvUreQhx/4vVQpJ/lnCAkgoIHLhSpp4ZirE+4hzFvdJi0FMub6hxbFVBJYSpeVVmon+2e7uEGRrA== + dependencies: + ajv "^6.10.2" + ajv-keywords "^3.4.1" + scroll-to-anchor@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/scroll-to-anchor/-/scroll-to-anchor-1.1.0.tgz#c99b8d2e5d95056752787ca78095ab75b520b3fd" @@ -12922,6 +13413,11 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== +serialize-javascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.0.tgz#9310276819efd0eb128258bb341957f6eb2fc570" + integrity sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ== + serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -13066,14 +13562,6 @@ shortid@^2.2.8: dependencies: nanoid "^2.0.0" -shot@4.x.x: - version "4.0.7" - resolved "https://registry.yarnpkg.com/shot/-/shot-4.0.7.tgz#b05d2858634fedc18ece99e8f638fab7c9f9d4c4" - integrity sha512-RKaKAGKxJ11EjJl0cf2fYVSsd4KB5Cncb9J0v7w+0iIaXpxNqFWTYNDNhBX7f0XSyDrjOH9a4OWZ9Gp/ZML+ew== - dependencies: - hoek "6.x.x" - joi "14.x.x" - shx@0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.2.tgz#40501ce14eb5e0cbcac7ddbd4b325563aad8c123" @@ -13145,17 +13633,17 @@ sinon-chrome@3.0.1: sinon "^7.2.3" urijs "^1.18.2" -sinon@7.4.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.4.1.tgz#bcd0c63953893e87fa0cc502f52489c32a83d4d9" - integrity sha512-7s9buHGHN/jqoy/v4bJgmt0m1XEkCEd/tqdHXumpBp0JSujaT4Ng84JU5wDdK4E85ZMq78NuDe0I3NAqXY8TFg== +sinon@7.4.2, sinon@^7.3.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.4.2.tgz#ecd54158fef2fcfbdb231a3fa55140e8cb02ad6c" + integrity sha512-pY5RY99DKelU3pjNxcWo6XqeB1S118GBcVIIdDi6V+h6hevn1izcg2xv1hTHW/sViRXU7sUOxt4wTUJ3gsW2CQ== dependencies: "@sinonjs/commons" "^1.4.0" "@sinonjs/formatio" "^3.2.1" - "@sinonjs/samsam" "^3.3.2" + "@sinonjs/samsam" "^3.3.3" diff "^3.5.0" lolex "^4.2.0" - nise "^1.5.1" + nise "^1.5.2" supports-color "^5.5.0" sinon@^7.2.3: @@ -13544,14 +14032,6 @@ socks@~2.3.2: ip "^1.1.5" smart-buffer "4.0.2" -somever@2.x.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/somever/-/somever-2.0.0.tgz#7bdbed3bee8ece2c7c8a2e7d9a1c022bd98d6c89" - integrity sha512-9JaIPP+HxwYGqCDqqK3tRaTqdtQHoK6Qy3IrXhIt2q5x8fs8RcfU7BMWlFTCOgFazK8p88zIv1tHQXvAwtXMyw== - dependencies: - bounce "1.x.x" - hoek "6.x.x" - sonic-boom@^0.7.3: version "0.7.4" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-0.7.4.tgz#dc1740a900cf8646471f6ac1f4933a5c66c0ca60" @@ -13559,6 +14039,13 @@ sonic-boom@^0.7.3: dependencies: flatstr "^1.0.9" +sonic-boom@^0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-0.7.5.tgz#b383d92cdaaa8e66d1f77bdec71b49806d01b5f1" + integrity sha512-1pKrnAV6RfvntPnarY71tpthFTM3pWZWWQdghZY8ARjtDPGzG/inxqSuRwQY/7V1woUjfyxPb437zn4p5phgnQ== + dependencies: + flatstr "^1.0.12" + sort-keys-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" @@ -13689,7 +14176,7 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split2@^3.0.0, split2@^3.1.0: +split2@^3.1.0, split2@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/split2/-/split2-3.1.1.tgz#c51f18f3e06a8c4469aaab487687d8d956160bb6" integrity sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q== @@ -13740,43 +14227,30 @@ stable@~0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -standard-engine@~11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-11.0.1.tgz#943d710be54537dbedaf8a90367d271f4023fe7c" - integrity sha512-WZQ5PpEDfRzPFk+H9xvKVQPQIxKnAQB2cb2Au4NyTCtdw5R0pyMBUZLbPXyFjnlhe8Ae+zfNrWU4m6H5b7cEAg== +standard-engine@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-12.0.0.tgz#1643dceba96ca9c04c535a1fb28d79bfb21b3572" + integrity sha512-gJIIRb0LpL7AHyGbN9+hJ4UJns37lxmNTnMGRLC8CFrzQ+oB/K60IQjKNgPBCB2VP60Ypm6f8DFXvhVWdBOO+g== dependencies: - deglob "^3.0.0" + deglob "^4.0.0" get-stdin "^7.0.0" minimist "^1.1.0" pkg-conf "^3.1.0" -standard@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/standard/-/standard-13.1.0.tgz#3de68ac1248d563a445edc806504987a11ea7496" - integrity sha512-h3NaMzsa88+/xtjXCMvdn6EWWdlodsI/HvtsQF+EGwrF9kVNwNha9TkFABU6bSBoNfC79YDyIAq9ekxOMBFkuw== +standard@14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/standard/-/standard-14.2.0.tgz#7abb64d63095b41c4cd56ef25bbd04f7364af10f" + integrity sha512-qVXM+iVRBJn7f9HhlH4MxioeCzevLSyMqVLTb48MXcwEtQwjhXKg4MVlWLfQtHxaNACRbtmr5l4D4/Ao1oNgYA== dependencies: - eslint "~6.1.0" - eslint-config-standard "13.0.1" - eslint-config-standard-jsx "7.0.0" + eslint "~6.3.0" + eslint-config-standard "14.1.0" + eslint-config-standard-jsx "8.1.0" eslint-plugin-import "~2.18.0" - eslint-plugin-node "~9.1.0" + eslint-plugin-node "~10.0.0" eslint-plugin-promise "~4.2.1" eslint-plugin-react "~7.14.2" eslint-plugin-standard "~4.0.0" - standard-engine "~11.0.1" - -statehood@6.x.x: - version "6.0.9" - resolved "https://registry.yarnpkg.com/statehood/-/statehood-6.0.9.tgz#b347ae19818aec7fc26645fe1ec6a61928a57a3c" - integrity sha512-jbFg1+MYEqfC7ABAoWZoeF4cQUtp3LUvMDUGExL76cMmleBHG7I6xlZFsE8hRi7nEySIvutHmVlLmBe9+2R5LQ== - dependencies: - boom "7.x.x" - bounce "1.x.x" - bourne "1.x.x" - cryptiles "4.x.x" - hoek "6.x.x" - iron "5.x.x" - joi "14.x.x" + standard-engine "^12.0.0" static-extend@^0.1.1: version "0.1.2" @@ -13920,6 +14394,31 @@ string.prototype.padend@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" +string.prototype.trim@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" + integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.13.0" + function-bind "^1.1.1" + +string.prototype.trimleft@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz#68b6aa8e162c6a80e76e3a8a0c2e747186e271ff" + integrity sha1-aLaqjhYsaoDnbjqKDC50cYbicf8= + dependencies: + define-properties "^1.1.2" + function-bind "^1.0.2" + +string.prototype.trimright@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz#ab4a56d802a01fbe7293e11e84f24dc8164661dd" + integrity sha1-q0pW2AKgH75yk+EehPJNyBZGYd0= + dependencies: + define-properties "^1.1.2" + function-bind "^1.0.2" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -13927,6 +14426,13 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.1.0" +string_decoder@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -14047,18 +14553,6 @@ subarg@^1.0.0: dependencies: minimist "^1.1.0" -subtext@6.x.x: - version "6.0.12" - resolved "https://registry.yarnpkg.com/subtext/-/subtext-6.0.12.tgz#ac09be3eac1eca3396933adeadd65fc781f64fc1" - integrity sha512-yT1wCDWVgqvL9BIkWzWqgj5spUSYo/Enu09iUV8t2ZvHcr2tKGTGg2kc9tUpVEsdhp1ihsZeTAiDqh0TQciTPQ== - dependencies: - boom "7.x.x" - bourne "1.x.x" - content "4.x.x" - hoek "6.x.x" - pez "4.x.x" - wreck "14.x.x" - superagent@^3.1.0, superagent@~3.8.1: version "3.8.3" resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" @@ -14075,7 +14569,7 @@ superagent@^3.1.0, superagent@~3.8.1: qs "^6.5.1" readable-stream "^2.3.5" -superstruct@^0.6.0, superstruct@~0.6.0, superstruct@~0.6.1: +superstruct@^0.6.0, superstruct@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.1.tgz#148fc3d627bb59fcfe24aa1bd2a1b8c51b1db072" integrity sha512-LDbOKL5sNbOJ00Q36iYRhSexKIptZje0/mhNznnz04wT9CmsPDZg/K/UV1dgYuCwNMuOBHTbVROZsGB9EhhK4w== @@ -14083,6 +14577,14 @@ superstruct@^0.6.0, superstruct@~0.6.0, superstruct@~0.6.1: clone-deep "^2.0.1" kind-of "^6.0.1" +superstruct@~0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.2.tgz#c5eb034806a17ff98d036674169ef85e4c7f6a1c" + integrity sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig== + dependencies: + clone-deep "^2.0.1" + kind-of "^6.0.1" + supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" @@ -14216,11 +14718,6 @@ tdigest@^0.1.1: dependencies: bintrees "1.0.1" -teamwork@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/teamwork/-/teamwork-3.2.0.tgz#27916edab815459c1a4686252eb18fb5925f49fa" - integrity sha512-xAmJ8PIVjRZMXAHgUuOP8ITsv0SedyWAit2UWiNImXgg/F+BxrsG46ZegElNBM0Dwp+iMfbigg/Ll/M2oDRYww== - temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -14248,7 +14745,21 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -terser-webpack-plugin@1.4.1, terser-webpack-plugin@^1.4.1: +terser-webpack-plugin@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.0.1.tgz#5e69a187133472174ef2fb51afc76a0f0a7b1d13" + integrity sha512-DXx8f7080P2dgW9Ydd7MUon81AL+GkGr9prfQRf+rH06dRrgCGIvtT7q73JRm2UzmjKeJGtro9O8zwL2y2udag== + dependencies: + cacache "^12.0.3" + find-cache-dir "^3.0.0" + jest-worker "^24.9.0" + schema-utils "^2.2.0" + serialize-javascript "^2.1.0" + source-map "^0.6.1" + terser "^4.2.1" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== @@ -14263,7 +14774,16 @@ terser-webpack-plugin@1.4.1, terser-webpack-plugin@^1.4.1: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@4.1.4, terser@^4.1.2: +terser@4.3.1, terser@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" + integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^4.1.2: version "4.1.4" resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.4.tgz#4478b6a08bb096a61e793fea1a4434408bab936c" integrity sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg== @@ -14464,13 +14984,6 @@ toml@^3.0.0: resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== -topo@3.x.x: - version "3.0.3" - resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" - integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ== - dependencies: - hoek "6.x.x" - tosource@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tosource/-/tosource-1.0.0.tgz#42d88dd116618bcf00d6106dd5446f3427902ff1" @@ -15033,13 +15546,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vise@3.x.x: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vise/-/vise-3.0.2.tgz#9a8b7450f783aa776faa327fe47d7bfddb227266" - integrity sha512-X52VtdRQbSBXdjcazRiY3eRgV3vTQ0B+7Wh8uC9cVv7lKfML5m9+9NHlbcgCY0R9EAqD1v/v7o9mhGh2A3ANFg== - dependencies: - hoek "6.x.x" - vm-browserify@^1.0.0, vm-browserify@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" @@ -15122,10 +15628,10 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-bundle-analyzer@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.4.1.tgz#430544c7ba1631baccf673475ca8300cb74a3c47" - integrity sha512-Bs8D/1zF+17lhqj2OYmzi7HEVYqEVxu7lCO9Ff8BwajenOU0vAwEoV8e4ICCPNZAcqR1PCR/7o2SkW+cnCmF0A== +webpack-bundle-analyzer@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.5.0.tgz#c82130a490a05f9267aa5956871aef574dff5074" + integrity sha512-NzueflueLSJxWGzDlMq5oUV+P8Qoq6yiaQlXGCbDYUpHEKlmzWdPLBJ4k/B6HTdAP/vHM8ply1Fx08mDnY+S8Q== dependencies: acorn "^6.0.7" acorn-walk "^6.1.1" @@ -15141,10 +15647,10 @@ webpack-bundle-analyzer@3.4.1: opener "^1.5.1" ws "^6.0.0" -webpack-cli@3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.6.tgz#2c8c399a2642133f8d736a359007a052e060032c" - integrity sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A== +webpack-cli@3.3.8: + version "3.3.8" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.8.tgz#caeaebcc26f685db1736e5decd3f01aac30123ec" + integrity sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw== dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -15158,14 +15664,14 @@ webpack-cli@3.3.6: v8-compile-cache "2.0.3" yargs "13.2.4" -webpack-merge@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" - integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw== +webpack-merge@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== dependencies: - lodash "^4.17.5" + lodash "^4.17.15" -webpack-sources@^1.4.0, webpack-sources@^1.4.1: +webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -15173,10 +15679,10 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.39.1: - version "4.39.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.1.tgz#60ed9fb2b72cd60f26ea526c404d2a4cc97a1bd8" - integrity sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ== +webpack@4.39.3: + version "4.39.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.3.tgz#a02179d1032156b713b6ec2da7e0df9d037def50" + integrity sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -15202,6 +15708,13 @@ webpack@4.39.1: watchpack "^1.6.0" webpack-sources "^1.4.1" +webrtc-ips@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/webrtc-ips/-/webrtc-ips-0.1.4.tgz#c1806a1dd0a91ca01eeb44997ef2133c2a865e53" + integrity sha512-zjpkAmPDxkllbjprCa14s9bpqlb+pqe17T0+uF/SfJTM5XcgUdMP1RDwFcgANIYvZgYbkK075Ok+82YPodvm+A== + dependencies: + promise-controller "^0.3.0" + "webrtcsupport@github:ipfs/webrtcsupport": version "2.2.0" resolved "https://codeload.github.com/ipfs/webrtcsupport/tar.gz/0669f576582c53a3a42aa5ac014fcc5966809615" @@ -15325,15 +15838,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -wreck@14.x.x: - version "14.2.0" - resolved "https://registry.yarnpkg.com/wreck/-/wreck-14.2.0.tgz#0064a5b930fc675f57830c1fd28342da1a70b0fc" - integrity sha512-NFFft3SMgqrJbXEVfYifh+QDWFxni+98/I7ut7rLbz3F0XOypluHsdo3mdEYssGSirMobM3fGlqhyikbWKDn2Q== - dependencies: - boom "7.x.x" - bourne "1.x.x" - hoek "6.x.x" - write-file-atomic@^2.0.0, write-file-atomic@^2.4.2: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" @@ -15419,6 +15923,11 @@ xregexp@^4.2.4: dependencies: "@babel/runtime-corejs2" "^7.2.0" +xsalsa20@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.0.2.tgz#46cc53439d543d88782e42dfada5c5a69ab6314d" + integrity sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw== + xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -15548,12 +16057,13 @@ yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.0.0.tgz#ba4cacc802b3c0b3e36a9e791723763d57a85066" + integrity sha512-ssa5JuRjMeZEUjg7bEL99AwpitxU/zWGAGpdj0di41pOEmJti8NR6kyUIJBkR78DTYNPZOU08luUo0GTHuB+ow== dependencies: cliui "^5.0.0" + decamelize "^1.2.0" find-up "^3.0.0" get-caller-file "^2.0.1" require-directory "^2.1.1"