diff --git a/app/background.html b/app/background.html index 4f80b2d7f..447efa60e 100644 --- a/app/background.html +++ b/app/background.html @@ -6,12 +6,18 @@ - - - - + {{@if(it.useLavamoat)}} + + + + {{#else}} + + + + + {{/if}} {{@each(it.jsBundles) => val}} - + {{/each}} diff --git a/app/home.html b/app/home.html index c55a6446f..d44eb6663 100644 --- a/app/home.html +++ b/app/home.html @@ -12,12 +12,18 @@
- - - - + {{@if(it.useLavamoat)}} + + + + {{#else}} + + + + + {{/if}} {{@each(it.jsBundles) => val}} - + {{/each}} diff --git a/app/notification.html b/app/notification.html index 7ff5d73cc..1002a37ef 100644 --- a/app/notification.html +++ b/app/notification.html @@ -35,12 +35,18 @@
- - - - + {{@if(it.useLavamoat)}} + + + + {{#else}} + + + + + {{/if}} {{@each(it.jsBundles) => val}} - + {{/each}} diff --git a/app/popup.html b/app/popup.html index 378efbfb4..e24978ad7 100644 --- a/app/popup.html +++ b/app/popup.html @@ -12,12 +12,18 @@
- - - - + {{@if(it.useLavamoat)}} + + + + {{#else}} + + + + + {{/if}} {{@each(it.jsBundles) => val}} - + {{/each}} diff --git a/development/build/scripts.js b/development/build/scripts.js index 618485ad7..e681be02f 100644 --- a/development/build/scripts.js +++ b/development/build/scripts.js @@ -4,6 +4,7 @@ const { writeFileSync, readFileSync } = require('fs'); const EventEmitter = require('events'); const gulp = require('gulp'); const watch = require('gulp-watch'); +const Vinyl = require('vinyl'); const source = require('vinyl-source-stream'); const buffer = require('vinyl-buffer'); const log = require('fancy-log'); @@ -20,7 +21,8 @@ const endOfStream = pify(require('end-of-stream')); const labeledStreamSplicer = require('labeled-stream-splicer').obj; const wrapInStream = require('pumpify').obj; const Sqrl = require('squirrelly'); -const lavaPack = require('@lavamoat/lavapack'); +const lavapack = require('@lavamoat/lavapack'); +const lavamoatBrowserify = require('lavamoat-browserify'); const terser = require('terser'); const bifyModuleGroups = require('bify-module-groups'); @@ -260,7 +262,22 @@ function createFactoredBuild({ // set bundle entries bundlerOpts.entries = [...entryFiles]; + // setup lavamoat + // lavamoat will add lavapack but it will be removed by bify-module-groups + // we will re-add it later by installing a lavapack runtime + const lavamoatOpts = { + policy: path.resolve(__dirname, '../../lavamoat/browserify/policy.json'), + policyOverride: path.resolve( + __dirname, + '../../lavamoat/browserify/policy-override.json', + ), + writeAutoPolicy: process.env.WRITE_AUTO_POLICY, + }; + Object.assign(bundlerOpts, lavamoatBrowserify.args); + bundlerOpts.plugin.push([lavamoatBrowserify, lavamoatOpts]); + // setup bundle factoring with bify-module-groups plugin + // note: this will remove lavapack, but its ok bc we manually readd it later Object.assign(bundlerOpts, bifyModuleGroups.plugin.args); bundlerOpts.plugin = [...bundlerOpts.plugin, [bifyModuleGroups.plugin]]; @@ -282,18 +299,24 @@ function createFactoredBuild({ groupingMap: sizeGroupMap, }), ); - pipeline.get('vinyl').unshift( - // convert each module group into a stream with a single vinyl file - streamFlatMap((moduleGroup) => { - const filename = `${moduleGroup.label}.js`; - const childStream = wrapInStream( - moduleGroup.stream, - lavaPack({ raw: true, hasExports: true, includePrelude: false }), - source(filename), - ); - return childStream; + // converts each module group into a single vinyl file containing its bundle + const moduleGroupPackerStream = streamFlatMap((moduleGroup) => { + const filename = `${moduleGroup.label}.js`; + const childStream = wrapInStream( + moduleGroup.stream, + // we manually readd lavapack here bc bify-module-groups removes it + lavapack({ raw: true, hasExports: true, includePrelude: false }), + source(filename), + ); + return childStream; + }); + pipeline.get('vinyl').unshift(moduleGroupPackerStream, buffer()); + // add lavamoat policy loader file to packer output + moduleGroupPackerStream.push( + new Vinyl({ + path: 'policy-load.js', + contents: lavapack.makePolicyLoaderStream(lavamoatOpts), }), - buffer(), ); // setup bundle destination browserPlatforms.forEach((platform) => { @@ -307,36 +330,58 @@ function createFactoredBuild({ const commonSet = sizeGroupMap.get('common'); // create entry points for each file for (const [groupLabel, groupSet] of sizeGroupMap.entries()) { - // skip "common" group, they are added tp all other groups + // skip "common" group, they are added to all other groups if (groupSet === commonSet) continue; switch (groupLabel) { case 'ui': { - renderHtmlFile('popup', groupSet, commonSet, browserPlatforms); - renderHtmlFile( - 'notification', + renderHtmlFile({ + htmlName: 'popup', groupSet, commonSet, browserPlatforms, - ); - renderHtmlFile('home', groupSet, commonSet, browserPlatforms); + useLavamoat: false, + }); + renderHtmlFile({ + htmlName: 'notification', + groupSet, + commonSet, + browserPlatforms, + useLavamoat: false, + }); + renderHtmlFile({ + htmlName: 'home', + groupSet, + commonSet, + browserPlatforms, + useLavamoat: false, + }); break; } case 'background': { - renderHtmlFile('background', groupSet, commonSet, browserPlatforms); - break; - } - case 'content-script': { - renderHtmlFile( - 'trezor-usb-permissions', + renderHtmlFile({ + htmlName: 'background', groupSet, commonSet, browserPlatforms, - ); + useLavamoat: false, + }); + break; + } + case 'content-script': { + renderHtmlFile({ + htmlName: 'trezor-usb-permissions', + groupSet, + commonSet, + browserPlatforms, + useLavamoat: false, + }); break; } default: { - throw new Error(`buildsys - unknown groupLabel "${groupLabel}"`); + throw new Error( + `build/scripts - unknown groupLabel "${groupLabel}"`, + ); } } } @@ -637,13 +682,24 @@ function getEnvironment({ devMode, testing }) { return 'other'; } -function renderHtmlFile(htmlName, groupSet, commonSet, browserPlatforms) { +function renderHtmlFile({ + htmlName, + groupSet, + commonSet, + browserPlatforms, + useLavamoat, +}) { + if (useLavamoat === undefined) { + throw new Error( + 'build/scripts/renderHtmlFile - must specify "useLavamoat" option', + ); + } const htmlFilePath = `./app/${htmlName}.html`; const htmlTemplate = readFileSync(htmlFilePath, 'utf8'); const jsBundles = [...commonSet.values(), ...groupSet.values()].map( (label) => `./${label}.js`, ); - const htmlOutput = Sqrl.render(htmlTemplate, { jsBundles }); + const htmlOutput = Sqrl.render(htmlTemplate, { jsBundles, useLavamoat }); browserPlatforms.forEach((platform) => { const dest = `./dist/${platform}/${htmlName}.html`; // we dont have a way of creating async events atm diff --git a/development/build/static.js b/development/build/static.js index 3926cefb0..5addd1b10 100644 --- a/development/build/static.js +++ b/development/build/static.js @@ -159,6 +159,11 @@ function getCopyTargets(shouldIncludeLockdown) { src: require.resolve('@lavamoat/lavapack/src/runtime-cjs.js'), dest: `runtime-cjs.js`, }, + { + // eslint-disable-next-line node/no-extraneous-require + src: require.resolve('@lavamoat/lavapack/src/runtime.js'), + dest: `runtime-lavamoat.js`, + }, { src: `./app/phishing.html`, dest: `phishing.html`, diff --git a/lavamoat/browserify/policy-override.json b/lavamoat/browserify/policy-override.json new file mode 100644 index 000000000..71fd98f61 --- /dev/null +++ b/lavamoat/browserify/policy-override.json @@ -0,0 +1,55 @@ +{ + "resources": { + "browser-resolve": { + "packages": { + "core-js": true + } + }, + "babel-runtime": { + "packages": { + "@babel/runtime": true + } + }, + "node-fetch": { + "globals": { + "fetch": true + } + }, + "lodash": { + "globals": { + "setTimeout": true, + "clearTimeout": true + } + }, + "@ethersproject/random": { + "globals": { + "crypto.getRandomValues": true + } + }, + "browser-passworder": { + "globals": { + "crypto": true + } + }, + "randombytes": { + "globals": { + "crypto.getRandomValues": true + } + }, + "extensionizer": { + "globals": { + "console": true + } + }, + "web3": { + "globals": { + "XMLHttpRequest": true + } + }, + "storage": { + "globals": { + "localStorage": true + } + } + } +} diff --git a/lavamoat/browserify/policy.json b/lavamoat/browserify/policy.json new file mode 100644 index 000000000..766fae5a4 --- /dev/null +++ b/lavamoat/browserify/policy.json @@ -0,0 +1,4656 @@ +{ + "resources": { + "3box": { + "globals": { + "console.error": true, + "console.log": true, + "console.warn": true, + "fetch": true, + "setTimeout": true + }, + "packages": { + "3box-orbitdb-plugins": true, + "3id-resolver": true, + "@babel/runtime": true, + "buffer": true, + "did-jwt": true, + "elliptic": true, + "ethers": true, + "graphql-request": true, + "https-did-resolver": true, + "ipfs": true, + "ipfs-did-document": true, + "ipfs-log": true, + "ipfs-mini": true, + "is-ipfs": true, + "js-sha256": true, + "multihashes": true, + "muport-did-resolver": true, + "node-fetch": true, + "orbit-db": true, + "orbit-db-access-controllers": true, + "orbit-db-identity-provider": true, + "orbit-db-pubsub": true, + "process": true, + "store": true, + "tweetnacl": true, + "tweetnacl-util": true + } + }, + "3box-orbitdb-plugins": { + "globals": { + "console.log": true + }, + "packages": { + "base64url": true, + "did-jwt": true, + "did-resolver": true, + "events": true, + "ipfs-log": true, + "is-ipfs": true, + "orbit-db-access-controllers": true, + "orbit-db-io": true, + "safe-buffer": true + } + }, + "3id-resolver": { + "packages": { + "@babel/runtime": true, + "base64url": true, + "did-jwt": true, + "did-resolver": true, + "ipfs-did-document": true + } + }, + "@babel/runtime": { + "packages": { + "regenerator-runtime": true + } + }, + "@download/blockies": { + "globals": { + "document.createElement": true + } + }, + "@ensdomains/content-hash": { + "globals": { + "console.warn": true + }, + "packages": { + "buffer": true, + "cids": true, + "js-base64": true, + "multicodec": true, + "multihashes": true + } + }, + "@ethereumjs/common": { + "packages": { + "buffer": true, + "crc-32": true, + "ethereumjs-util": true, + "events": true + } + }, + "@ethereumjs/tx": { + "packages": { + "@ethereumjs/common": true, + "buffer": true, + "ethereumjs-util": true, + "is-buffer": true + } + }, + "@ethersproject/abi": { + "globals": { + "console.log": true + }, + "packages": { + "@ethersproject/address": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/constants": true, + "@ethersproject/hash": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/strings": true + } + }, + "@ethersproject/abstract-provider": { + "packages": { + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true + } + }, + "@ethersproject/abstract-signer": { + "packages": { + "@ethersproject/logger": true, + "@ethersproject/properties": true + } + }, + "@ethersproject/address": { + "packages": { + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/rlp": true + } + }, + "@ethersproject/base64": { + "globals": { + "atob": true, + "btoa": true + }, + "packages": { + "@ethersproject/bytes": true + } + }, + "@ethersproject/basex": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/properties": true + } + }, + "@ethersproject/bignumber": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "bn.js": true + } + }, + "@ethersproject/bytes": { + "packages": { + "@ethersproject/logger": true + } + }, + "@ethersproject/constants": { + "packages": { + "@ethersproject/bignumber": true + } + }, + "@ethersproject/contracts": { + "globals": { + "setTimeout": true + }, + "packages": { + "@ethersproject/abi": true, + "@ethersproject/abstract-provider": true, + "@ethersproject/abstract-signer": true, + "@ethersproject/address": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/transactions": true + } + }, + "@ethersproject/hash": { + "packages": { + "@ethersproject/address": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/strings": true + } + }, + "@ethersproject/hdnode": { + "packages": { + "@ethersproject/basex": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "@ethersproject/pbkdf2": true, + "@ethersproject/properties": true, + "@ethersproject/sha2": true, + "@ethersproject/signing-key": true, + "@ethersproject/strings": true, + "@ethersproject/transactions": true, + "@ethersproject/wordlists": true + } + }, + "@ethersproject/json-wallets": { + "packages": { + "@ethersproject/address": true, + "@ethersproject/bytes": true, + "@ethersproject/hdnode": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/pbkdf2": true, + "@ethersproject/properties": true, + "@ethersproject/random": true, + "@ethersproject/strings": true, + "@ethersproject/transactions": true, + "aes-js": true, + "scrypt-js": true + } + }, + "@ethersproject/keccak256": { + "packages": { + "@ethersproject/bytes": true, + "js-sha3": true + } + }, + "@ethersproject/logger": { + "globals": { + "console": true + } + }, + "@ethersproject/networks": { + "packages": { + "@ethersproject/logger": true + } + }, + "@ethersproject/pbkdf2": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/sha2": true + } + }, + "@ethersproject/properties": { + "packages": { + "@ethersproject/logger": true + } + }, + "@ethersproject/providers": { + "globals": { + "WebSocket": true, + "clearInterval": true, + "clearTimeout": true, + "console.log": true, + "console.warn": true, + "name": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "@ethersproject/abstract-provider": true, + "@ethersproject/abstract-signer": true, + "@ethersproject/address": true, + "@ethersproject/basex": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/constants": true, + "@ethersproject/hash": true, + "@ethersproject/logger": true, + "@ethersproject/networks": true, + "@ethersproject/properties": true, + "@ethersproject/random": true, + "@ethersproject/sha2": true, + "@ethersproject/strings": true, + "@ethersproject/transactions": true, + "@ethersproject/web": true, + "bech32": true + } + }, + "@ethersproject/random": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/logger": true + } + }, + "@ethersproject/rlp": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/logger": true + } + }, + "@ethersproject/sha2": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "hash.js": true + } + }, + "@ethersproject/signing-key": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "elliptic": true + } + }, + "@ethersproject/solidity": { + "packages": { + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/keccak256": true, + "@ethersproject/sha2": true, + "@ethersproject/strings": true + } + }, + "@ethersproject/strings": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/constants": true, + "@ethersproject/logger": true + } + }, + "@ethersproject/transactions": { + "globals": { + "console.log": true + }, + "packages": { + "@ethersproject/address": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/constants": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/rlp": true, + "@ethersproject/signing-key": true + } + }, + "@ethersproject/units": { + "packages": { + "@ethersproject/bignumber": true, + "@ethersproject/logger": true + } + }, + "@ethersproject/wallet": { + "packages": { + "@ethersproject/abstract-provider": true, + "@ethersproject/abstract-signer": true, + "@ethersproject/address": true, + "@ethersproject/bytes": true, + "@ethersproject/hash": true, + "@ethersproject/hdnode": true, + "@ethersproject/json-wallets": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/random": true, + "@ethersproject/signing-key": true, + "@ethersproject/transactions": true + } + }, + "@ethersproject/web": { + "globals": { + "clearTimeout": true, + "fetch": true, + "setTimeout": true + }, + "packages": { + "@ethersproject/base64": true, + "@ethersproject/bytes": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/strings": true + } + }, + "@ethersproject/wordlists": { + "packages": { + "@ethersproject/bytes": true, + "@ethersproject/hash": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/strings": true + } + }, + "@formatjs/intl-relativetimeformat": { + "globals": { + "Intl": true + }, + "packages": { + "@formatjs/intl-utils": true + } + }, + "@formatjs/intl-utils": { + "globals": { + "Intl.getCanonicalLocales": true + } + }, + "@material-ui/core": { + "globals": { + "Image": true, + "_formatMuiErrorMessage": true, + "addEventListener": true, + "clearInterval": true, + "clearTimeout": true, + "console.error": true, + "console.warn": true, + "document": true, + "getComputedStyle": true, + "getSelection": true, + "innerHeight": true, + "innerWidth": true, + "matchMedia": true, + "navigator": true, + "performance.now": true, + "removeEventListener": true, + "requestAnimationFrame": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "@babel/runtime": true, + "@material-ui/styles": true, + "@material-ui/system": true, + "@material-ui/utils": true, + "clsx": true, + "hoist-non-react-statics": true, + "popper.js": true, + "prop-types": true, + "react": true, + "react-dom": true, + "react-is": true, + "react-transition-group": true + } + }, + "@material-ui/styles": { + "globals": { + "console.error": true, + "console.warn": true, + "document.createComment": true, + "document.head": true + }, + "packages": { + "@babel/runtime": true, + "@material-ui/utils": true, + "clsx": true, + "hoist-non-react-statics": true, + "jss": true, + "jss-plugin-camel-case": true, + "jss-plugin-default-unit": true, + "jss-plugin-global": true, + "jss-plugin-nested": true, + "jss-plugin-props-sort": true, + "jss-plugin-rule-value-function": true, + "jss-plugin-vendor-prefixer": true, + "prop-types": true, + "react": true + } + }, + "@material-ui/system": { + "globals": { + "console.error": true + }, + "packages": { + "@babel/runtime": true, + "@material-ui/utils": true, + "prop-types": true + } + }, + "@material-ui/utils": { + "packages": { + "@babel/runtime": true, + "prop-types": true, + "react-is": true + } + }, + "@metamask/controllers": { + "globals": { + "Headers": true, + "clearInterval": true, + "clearTimeout": true, + "console.error": true, + "console.log": true, + "fetch": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "@ethereumjs/common": true, + "@ethereumjs/tx": true, + "@metamask/contract-metadata": true, + "abort-controller": true, + "async-mutex": true, + "await-semaphore": true, + "buffer": true, + "eth-ens-namehash": true, + "eth-json-rpc-infura": true, + "eth-keyring-controller": true, + "eth-method-registry": true, + "eth-phishing-detect": true, + "eth-query": true, + "eth-rpc-errors": true, + "eth-sig-util": true, + "ethereumjs-tx": true, + "ethereumjs-util": true, + "ethereumjs-wallet": true, + "ethers": true, + "ethjs-query": true, + "ethjs-unit": true, + "ethjs-util": true, + "events": true, + "human-standard-collectible-abi": true, + "human-standard-token-abi": true, + "immer": true, + "isomorphic-fetch": true, + "jsonschema": true, + "nanoid": true, + "punycode": true, + "single-call-balance-checker-abi": true, + "uuid": true, + "web3": true, + "web3-provider-engine": true + } + }, + "@metamask/eth-ledger-bridge-keyring": { + "globals": { + "addEventListener": true, + "console.log": true, + "document.createElement": true, + "document.head.appendChild": true, + "fetch": true, + "removeEventListener": true + }, + "packages": { + "@ethereumjs/tx": true, + "buffer": true, + "eth-sig-util": true, + "ethereumjs-util": true, + "events": true, + "hdkey": true + } + }, + "@metamask/eth-token-tracker": { + "globals": { + "console.warn": true + }, + "packages": { + "@babel/runtime": true, + "deep-equal": true, + "eth-block-tracker": true, + "ethjs": true, + "ethjs-contract": true, + "ethjs-query": true, + "human-standard-token-abi": true, + "safe-event-emitter": true + } + }, + "@metamask/etherscan-link": { + "globals": { + "URL": true + } + }, + "@metamask/jazzicon": { + "globals": { + "document.createElement": true, + "document.createElementNS": true + }, + "packages": { + "color": true, + "mersenne-twister": true + } + }, + "@metamask/logo": { + "globals": { + "addEventListener": true, + "document.body.appendChild": true, + "document.createElementNS": true, + "innerHeight": true, + "innerWidth": true, + "requestAnimationFrame": true + }, + "packages": { + "gl-mat4": true, + "gl-vec3": true + } + }, + "@metamask/obs-store": { + "globals": { + "localStorage": true + }, + "packages": { + "@metamask/safe-event-emitter": true, + "stream-browserify": true, + "through2": true + } + }, + "@metamask/safe-event-emitter": { + "globals": { + "setTimeout": true + }, + "packages": { + "events": true + } + }, + "@popperjs/core": { + "globals": { + "Element": true, + "HTMLElement": true, + "ShadowRoot": true, + "console.error": true, + "console.warn": true, + "document": true, + "navigator.userAgent": true + } + }, + "@reduxjs/toolkit": { + "globals": { + "AbortController": true, + "__REDUX_DEVTOOLS_EXTENSION_COMPOSE__": true, + "console.error": true, + "console.info": true, + "console.warn": true + }, + "packages": { + "immer": true, + "redux": true, + "redux-thunk": true, + "reselect": true + } + }, + "@segment/loosely-validate-event": { + "packages": { + "assert": true, + "buffer": true, + "component-type": true, + "join-component": true + } + }, + "@sentry/browser": { + "globals": { + "XMLHttpRequest": true, + "document.body": true, + "document.createElement": true, + "document.head": true, + "setTimeout": true + }, + "packages": { + "@sentry/core": true, + "@sentry/types": true, + "@sentry/utils": true, + "tslib": true + } + }, + "@sentry/core": { + "globals": { + "clearInterval": true, + "setInterval": true + }, + "packages": { + "@sentry/hub": true, + "@sentry/minimal": true, + "@sentry/types": true, + "@sentry/utils": true, + "tslib": true + } + }, + "@sentry/hub": { + "globals": { + "setTimeout": true + }, + "packages": { + "@sentry/utils": true, + "tslib": true + } + }, + "@sentry/integrations": { + "globals": { + "clearTimeout": true, + "console.error": true, + "console.log": true, + "setTimeout": true + }, + "packages": { + "@sentry/types": true, + "@sentry/utils": true, + "localforage": true, + "tslib": true + } + }, + "@sentry/minimal": { + "packages": { + "@sentry/hub": true, + "tslib": true + } + }, + "@sentry/utils": { + "globals": { + "CustomEvent": true, + "DOMError": true, + "DOMException": true, + "Element": true, + "ErrorEvent": true, + "Event": true, + "Headers": true, + "Request": true, + "Response": true, + "XMLHttpRequest.prototype": true, + "clearTimeout": true, + "console.error": true, + "document": true, + "setTimeout": true + }, + "packages": { + "process": true, + "tslib": true + } + }, + "@sindresorhus/is": { + "packages": { + "is-buffer": true, + "util": true + } + }, + "@zxing/library": { + "globals": { + "TextDecoder": true, + "TextEncoder": true, + "btoa": true, + "clearTimeout": true, + "define": true, + "document.createElement": true, + "document.createElementNS": true, + "document.getElementById": true, + "navigator.mediaDevices.enumerateDevices": true, + "navigator.mediaDevices.getUserMedia": true, + "setTimeout": true + } + }, + "abort-controller": { + "globals": { + "AbortController": true + } + }, + "abstract-leveldown": { + "packages": { + "is-buffer": true, + "process": true, + "xtend": true + } + }, + "accounting": { + "globals": { + "define": true + } + }, + "aes-js": { + "globals": { + "define": true + } + }, + "analytics-node": { + "globals": { + "clearTimeout": true, + "console.log": true, + "setImmediate": true, + "setTimeout": true + }, + "packages": { + "@segment/loosely-validate-event": true, + "assert": true, + "axios": true, + "axios-retry": true, + "lodash.isstring": true, + "md5": true, + "ms": true, + "process": true, + "remove-trailing-slash": true, + "uuid": true + } + }, + "asap": { + "globals": { + "clearInterval": true, + "clearTimeout": true, + "document.createTextNode": true, + "setInterval": true, + "setTimeout": true + } + }, + "asn1.js": { + "packages": { + "bn.js": true, + "buffer": true, + "inherits": true, + "minimalistic-assert": true, + "vm-browserify": true + } + }, + "assemblyscript": { + "globals": { + "WebAssembly.Instance": true, + "WebAssembly.Module": true, + "WebAssembly.instantiateStreaming": true, + "console.log": true + } + }, + "assert": { + "globals": { + "Buffer": true + }, + "packages": { + "object-assign": true, + "util": true + } + }, + "async": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "lodash": true, + "process": true, + "timers-browserify": true + } + }, + "async-iterator-to-pull-stream": { + "packages": { + "get-iterator": true, + "pull-stream-to-async-iterator": true + } + }, + "async-iterator-to-stream": { + "packages": { + "process": true, + "readable-stream": true + } + }, + "async-mutex": { + "globals": { + "setTimeout": true + }, + "packages": { + "tslib": true + } + }, + "await-semaphore": { + "packages": { + "process": true, + "timers-browserify": true + } + }, + "axios": { + "globals": { + "FormData": true, + "URLSearchParams": true, + "XMLHttpRequest": true, + "btoa": true, + "document": true, + "location.href": true, + "navigator": true + }, + "packages": { + "process": true + } + }, + "axios-retry": { + "globals": { + "setTimeout": true + }, + "packages": { + "is-retry-allowed": true + } + }, + "babel-runtime": { + "packages": { + "core-js": true, + "regenerator-runtime": true + } + }, + "backoff": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "events": true, + "precond": true, + "util": true + } + }, + "base-x": { + "packages": { + "safe-buffer": true + } + }, + "base32-encode": { + "packages": { + "to-data-view": true + } + }, + "base64url": { + "packages": { + "buffer": true + } + }, + "bignumber.js": { + "globals": { + "crypto": true, + "define": true + }, + "packages": { + "crypto-browserify": true + } + }, + "bip39": { + "packages": { + "create-hash": true, + "pbkdf2": true, + "randombytes": true, + "safe-buffer": true, + "unorm": true + } + }, + "bip66": { + "packages": { + "safe-buffer": true + } + }, + "bl": { + "packages": { + "buffer": true, + "readable-stream": true, + "util": true + } + }, + "blakejs": { + "globals": { + "console.log": true + }, + "packages": { + "buffer": true + } + }, + "blob": { + "globals": { + "Blob": true, + "MSBlobBuilder": true, + "MozBlobBuilder": true, + "WebKitBlobBuilder": true + } + }, + "bn.js": { + "packages": { + "browser-resolve": true + } + }, + "borc": { + "globals": { + "console": true + }, + "packages": { + "bignumber.js": true, + "buffer": true, + "ieee754": true, + "iso-url": true + } + }, + "brorand": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "browser-resolve": true + } + }, + "browser-passworder": { + "globals": { + "btoa": true, + "crypto.getRandomValues": true, + "crypto.subtle.decrypt": true, + "crypto.subtle.deriveKey": true, + "crypto.subtle.encrypt": true, + "crypto.subtle.importKey": true + }, + "packages": { + "browserify-unibabel": true + } + }, + "browserify-aes": { + "packages": { + "buffer": true, + "buffer-xor": true, + "cipher-base": true, + "evp_bytestokey": true, + "inherits": true, + "safe-buffer": true + } + }, + "browserify-cipher": { + "packages": { + "browserify-aes": true, + "browserify-des": true, + "evp_bytestokey": true + } + }, + "browserify-des": { + "packages": { + "buffer": true, + "cipher-base": true, + "des.js": true, + "inherits": true + } + }, + "browserify-rsa": { + "packages": { + "bn.js": true, + "buffer": true, + "randombytes": true + } + }, + "browserify-sign": { + "packages": { + "bn.js": true, + "browserify-rsa": true, + "buffer": true, + "create-hash": true, + "create-hmac": true, + "elliptic": true, + "inherits": true, + "parse-asn1": true, + "stream-browserify": true + } + }, + "browserify-unibabel": { + "globals": { + "atob": true, + "btoa": true + } + }, + "bs58": { + "packages": { + "base-x": true + } + }, + "bs58check": { + "packages": { + "bs58": true, + "create-hash": true, + "safe-buffer": true + } + }, + "btoa": { + "packages": { + "buffer": true + } + }, + "buffer": { + "globals": { + "console": true + }, + "packages": { + "base64-js": true, + "ieee754": true + } + }, + "buffer-split": { + "packages": { + "buffer-indexof": true + } + }, + "buffer-xor": { + "packages": { + "buffer": true + } + }, + "cids": { + "packages": { + "buffer": true, + "class-is": true, + "is-buffer": true, + "multibase": true, + "multicodec": true, + "multihashes": true, + "uint8arrays": true + } + }, + "cipher-base": { + "packages": { + "inherits": true, + "safe-buffer": true, + "stream-browserify": true, + "string_decoder": true + } + }, + "classnames": { + "globals": { + "classNames": "write", + "define": true + } + }, + "clone": { + "packages": { + "buffer": true + } + }, + "coinstring": { + "packages": { + "bs58": true, + "buffer": true, + "create-hash": true + } + }, + "color": { + "packages": { + "clone": true, + "color-convert": true, + "color-string": true + } + }, + "color-convert": { + "packages": { + "color-name": true + } + }, + "color-string": { + "packages": { + "color-name": true + } + }, + "cookiejar": { + "globals": { + "console.warn": true + } + }, + "copy-to-clipboard": { + "globals": { + "clipboardData.setData": true, + "console.error": true, + "console.warn": true, + "document.body.appendChild": true, + "document.body.removeChild": true, + "document.createElement": true, + "document.createRange": true, + "document.execCommand": true, + "document.getSelection": true, + "navigator.userAgent": true, + "prompt": true + }, + "packages": { + "toggle-selection": true + } + }, + "core-js": { + "globals": { + "PromiseRejectionEvent": true, + "__e": "write", + "__g": "write", + "document.createTextNode": true, + "postMessage": true, + "setTimeout": true + } + }, + "core-util-is": { + "packages": { + "is-buffer": true + } + }, + "crc-32": { + "globals": { + "DO_NOT_EXPORT_CRC": true, + "define": true + } + }, + "create-ecdh": { + "packages": { + "bn.js": true, + "buffer": true, + "elliptic": true + } + }, + "create-hash": { + "packages": { + "cipher-base": true, + "inherits": true, + "md5.js": true, + "ripemd160": true, + "sha.js": true + } + }, + "create-hmac": { + "packages": { + "cipher-base": true, + "create-hash": true, + "inherits": true, + "ripemd160": true, + "safe-buffer": true, + "sha.js": true + } + }, + "cross-fetch": { + "globals": { + "Blob": true, + "FileReader": true, + "FormData": true, + "URLSearchParams.prototype.isPrototypeOf": true, + "XMLHttpRequest": true + } + }, + "crypto-browserify": { + "packages": { + "browserify-cipher": true, + "browserify-sign": true, + "create-ecdh": true, + "create-hash": true, + "create-hmac": true, + "diffie-hellman": true, + "pbkdf2": true, + "public-encrypt": true, + "randombytes": true, + "randomfill": true + } + }, + "crypto-js": { + "globals": { + "define": true + } + }, + "css-vendor": { + "globals": { + "document.createElement": true, + "document.documentElement": true, + "getComputedStyle": true + }, + "packages": { + "@babel/runtime": true, + "is-in-browser": true + } + }, + "currency-formatter": { + "packages": { + "accounting": true, + "locale-currency": true, + "object-assign": true + } + }, + "data-queue": { + "packages": { + "events": true + } + }, + "datastore-core": { + "packages": { + "async": true, + "buffer": true, + "interface-datastore": true, + "pull-many": true, + "pull-stream": true + } + }, + "datastore-level": { + "packages": { + "buffer": true, + "encoding-down": true, + "interface-datastore": true, + "level-js": true, + "levelup": true, + "pull-stream": true + } + }, + "datastore-pubsub": { + "packages": { + "assert": true, + "buffer": true, + "debug": true, + "err-code": true, + "interface-datastore": true, + "multibase": true + } + }, + "debounce": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "debounce-stream": { + "packages": { + "debounce": true, + "duplexer": true, + "through": true + } + }, + "debug": { + "globals": { + "chrome": true, + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "ms": true, + "process": true + } + }, + "deep-equal": { + "packages": { + "is-arguments": true, + "is-date-object": true, + "is-regex": true, + "object-is": true, + "object-keys": true, + "regexp.prototype.flags": true + } + }, + "deep-extend": { + "packages": { + "buffer": true + } + }, + "deferred-leveldown": { + "packages": { + "abstract-leveldown": true, + "inherits": true + } + }, + "define-properties": { + "packages": { + "object-keys": true + } + }, + "des.js": { + "packages": { + "inherits": true, + "minimalistic-assert": true + } + }, + "did-jwt": { + "packages": { + "@babel/runtime": true, + "@stablelib/utf8": true, + "base64url": true, + "buffer": true, + "did-resolver": true, + "elliptic": true, + "js-sha256": true, + "js-sha3": true, + "tweetnacl": true, + "tweetnacl-util": true, + "uport-base64url": true + } + }, + "diffie-hellman": { + "packages": { + "bn.js": true, + "buffer": true, + "miller-rabin": true, + "randombytes": true + } + }, + "dlv": { + "globals": { + "define": true + } + }, + "dnd-core": { + "packages": { + "asap": true, + "invariant": true, + "lodash": true, + "redux": true + } + }, + "dom-helpers": { + "globals": { + "document": true, + "setTimeout": true + }, + "packages": { + "@babel/runtime": true + } + }, + "drbg.js": { + "packages": { + "buffer": true, + "create-hmac": true + } + }, + "duplexer": { + "packages": { + "stream-browserify": true + } + }, + "elliptic": { + "packages": { + "bn.js": true, + "brorand": true, + "hash.js": true, + "hmac-drbg": true, + "inherits": true, + "minimalistic-assert": true, + "minimalistic-crypto-utils": true + } + }, + "encoding-down": { + "packages": { + "abstract-leveldown": true, + "inherits": true, + "level-codec": true, + "level-errors": true + } + }, + "end-of-stream": { + "packages": { + "once": true, + "process": true + } + }, + "engine.io-client": { + "globals": { + "MozWebSocket": true, + "WebSocket": true, + "XDomainRequest": true, + "XMLHttpRequest": true, + "addEventListener": true, + "attachEvent": true, + "clearTimeout": true, + "document": true, + "location": true, + "navigator": true, + "setTimeout": true + }, + "packages": { + "browser-resolve": true, + "buffer": true, + "component-emitter": true, + "component-inherit": true, + "debug": true, + "engine.io-parser": true, + "has-cors": true, + "indexof": true, + "parseqs": true, + "parseuri": true, + "yeast": true + } + }, + "engine.io-parser": { + "globals": { + "FileReader": true, + "btoa": true, + "navigator": true + }, + "packages": { + "after": true, + "arraybuffer.slice": true, + "base64-arraybuffer": true, + "blob": true, + "has-binary2": true + } + }, + "errno": { + "packages": { + "prr": true + } + }, + "es-abstract": { + "packages": { + "function-bind": true, + "has-symbols": true + } + }, + "eth-block-tracker": { + "globals": { + "clearTimeout": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "@metamask/safe-event-emitter": true, + "eth-query": true, + "json-rpc-random-id": true, + "pify": true, + "safe-event-emitter": true + } + }, + "eth-ens-namehash": { + "globals": { + "name": "write" + }, + "packages": { + "buffer": true, + "idna-uts46": true, + "idna-uts46-hx": true, + "js-sha3": true + } + }, + "eth-hd-keyring": { + "packages": { + "bip39": true, + "eth-sig-util": true, + "eth-simple-keyring": true, + "ethereumjs-wallet": true + } + }, + "eth-json-rpc-filters": { + "globals": { + "console.error": true, + "results": "write" + }, + "packages": { + "await-semaphore": true, + "eth-json-rpc-middleware": true, + "eth-query": true, + "json-rpc-engine": true, + "lodash.flatmap": true, + "pify": true, + "safe-event-emitter": true + } + }, + "eth-json-rpc-infura": { + "globals": { + "setTimeout": true + }, + "packages": { + "eth-json-rpc-middleware": true, + "eth-rpc-errors": true, + "json-rpc-engine": true, + "node-fetch": true + } + }, + "eth-json-rpc-middleware": { + "globals": { + "console.error": true, + "fetch": true, + "setTimeout": true + }, + "packages": { + "btoa": true, + "clone": true, + "eth-rpc-errors": true, + "eth-sig-util": true, + "json-rpc-engine": true, + "json-stable-stringify": true, + "node-fetch": true, + "pify": true, + "safe-event-emitter": true, + "url": true + } + }, + "eth-keyring-controller": { + "packages": { + "bip39": true, + "browser-passworder": true, + "eth-hd-keyring": true, + "eth-sig-util": true, + "eth-simple-keyring": true, + "ethereumjs-util": true, + "events": true, + "loglevel": true, + "obs-store": true + } + }, + "eth-method-registry": { + "packages": { + "ethjs": true + } + }, + "eth-phishing-detect": { + "packages": { + "fast-levenshtein": true + } + }, + "eth-query": { + "packages": { + "json-rpc-random-id": true, + "xtend": true + } + }, + "eth-rpc-errors": { + "packages": { + "fast-safe-stringify": true + } + }, + "eth-sig-util": { + "packages": { + "buffer": true, + "ethereumjs-abi": true, + "ethereumjs-util": true, + "tweetnacl": true, + "tweetnacl-util": true + } + }, + "eth-simple-keyring": { + "packages": { + "buffer": true, + "eth-sig-util": true, + "ethereumjs-util": true, + "ethereumjs-wallet": true, + "events": true + } + }, + "eth-trezor-keyring": { + "globals": { + "setTimeout": true + }, + "packages": { + "@ethereumjs/tx": true, + "buffer": true, + "ethereumjs-util": true, + "events": true, + "hdkey": true, + "trezor-connect": true + } + }, + "ethereum-cryptography": { + "packages": { + "assert": true, + "bs58check": true, + "buffer": true, + "create-hmac": true, + "hash.js": true, + "keccak": true, + "randombytes": true, + "safe-buffer": true, + "secp256k1": true + } + }, + "ethereumjs-abi": { + "packages": { + "bn.js": true, + "buffer": true, + "ethereumjs-util": true + } + }, + "ethereumjs-tx": { + "packages": { + "buffer": true, + "ethereum-common": true, + "ethereumjs-util": true + } + }, + "ethereumjs-util": { + "packages": { + "assert": true, + "bn.js": true, + "buffer": true, + "create-hash": true, + "elliptic": true, + "ethereum-cryptography": true, + "ethjs-util": true, + "is-buffer": true, + "keccak": true, + "rlp": true, + "safe-buffer": true, + "secp256k1": true + } + }, + "ethereumjs-wallet": { + "packages": { + "aes-js": true, + "bs58check": true, + "buffer": true, + "crypto-browserify": true, + "ethereum-cryptography": true, + "ethereumjs-util": true, + "randombytes": true, + "safe-buffer": true, + "scrypt-js": true, + "scryptsy": true, + "utf8": true, + "uuid": true + } + }, + "ethers": { + "globals": { + "MessageChannel": true, + "XMLHttpRequest": true, + "atob": true, + "btoa": true, + "clearInterval": true, + "clearTimeout": true, + "console": true, + "crypto.getRandomValues": true, + "define": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "@ethersproject/abi": true, + "@ethersproject/abstract-signer": true, + "@ethersproject/address": true, + "@ethersproject/base64": true, + "@ethersproject/basex": true, + "@ethersproject/bignumber": true, + "@ethersproject/bytes": true, + "@ethersproject/constants": true, + "@ethersproject/contracts": true, + "@ethersproject/hash": true, + "@ethersproject/hdnode": true, + "@ethersproject/json-wallets": true, + "@ethersproject/keccak256": true, + "@ethersproject/logger": true, + "@ethersproject/properties": true, + "@ethersproject/providers": true, + "@ethersproject/random": true, + "@ethersproject/rlp": true, + "@ethersproject/sha2": true, + "@ethersproject/signing-key": true, + "@ethersproject/solidity": true, + "@ethersproject/strings": true, + "@ethersproject/transactions": true, + "@ethersproject/units": true, + "@ethersproject/wallet": true, + "@ethersproject/web": true, + "@ethersproject/wordlists": true + } + }, + "ethjs": { + "globals": { + "clearInterval": true, + "setInterval": true + }, + "packages": { + "bn.js": true, + "buffer": true, + "ethjs-abi": true, + "ethjs-contract": true, + "ethjs-filter": true, + "ethjs-provider-http": true, + "ethjs-query": true, + "ethjs-unit": true, + "ethjs-util": true, + "js-sha3": true, + "number-to-bn": true + } + }, + "ethjs-abi": { + "packages": { + "bn.js": true, + "buffer": true, + "js-sha3": true, + "number-to-bn": true + } + }, + "ethjs-contract": { + "packages": { + "babel-runtime": true, + "ethjs-abi": true, + "ethjs-filter": true, + "ethjs-util": true, + "js-sha3": true, + "promise-to-callback": true + } + }, + "ethjs-ens": { + "packages": { + "eth-ens-namehash": true, + "ethereum-ens-network-map": true, + "ethjs-contract": true, + "ethjs-query": true + } + }, + "ethjs-filter": { + "globals": { + "clearInterval": true, + "setInterval": true + } + }, + "ethjs-format": { + "packages": { + "ethjs-schema": true, + "ethjs-util": true, + "number-to-bn": true, + "strip-hex-prefix": true + } + }, + "ethjs-provider-http": { + "packages": { + "xhr2": true + } + }, + "ethjs-query": { + "globals": { + "console": true + }, + "packages": { + "babel-runtime": true, + "ethjs-format": true, + "ethjs-rpc": true, + "promise-to-callback": true + } + }, + "ethjs-rpc": { + "packages": { + "promise-to-callback": true + } + }, + "ethjs-unit": { + "packages": { + "bn.js": true, + "number-to-bn": true + } + }, + "ethjs-util": { + "packages": { + "buffer": true, + "is-hex-prefixed": true, + "strip-hex-prefix": true + } + }, + "events": { + "globals": { + "console": true + } + }, + "evp_bytestokey": { + "packages": { + "md5.js": true, + "safe-buffer": true + } + }, + "extension-port-stream": { + "packages": { + "buffer": true, + "stream-browserify": true + } + }, + "extensionizer": { + "globals": { + "browser": true, + "chrome": true + } + }, + "fast-json-patch": { + "globals": { + "addEventListener": true, + "clearTimeout": true, + "removeEventListener": true, + "setTimeout": true + }, + "packages": { + "fast-deep-equal": true + } + }, + "fast-levenshtein": { + "globals": { + "Intl": true, + "Levenshtein": "write", + "console.log": true, + "define": true, + "importScripts": true, + "postMessage": true + } + }, + "fsm-event": { + "packages": { + "assert": true, + "events": true, + "fsm": true + } + }, + "fuse.js": { + "globals": { + "console": true, + "define": true + } + }, + "get-browser-rtc": { + "globals": { + "RTCIceCandidate": true, + "RTCPeerConnection": true, + "RTCSessionDescription": true, + "mozRTCIceCandidate": true, + "mozRTCPeerConnection": true, + "mozRTCSessionDescription": true, + "webkitRTCIceCandidate": true, + "webkitRTCPeerConnection": true, + "webkitRTCSessionDescription": true + } + }, + "get-params": { + "globals": { + "GetParams": "write" + } + }, + "graphql-request": { + "globals": { + "fetch": true + }, + "packages": { + "cross-fetch": true + } + }, + "hamt-sharding": { + "packages": { + "is-buffer": true, + "sparse-array": true + } + }, + "has-binary2": { + "globals": { + "Blob": true, + "File": true + }, + "packages": { + "buffer": true, + "isarray": true + } + }, + "has-cors": { + "globals": { + "XMLHttpRequest": true + } + }, + "hash-base": { + "packages": { + "inherits": true, + "safe-buffer": true, + "stream-browserify": true + } + }, + "hash.js": { + "packages": { + "inherits": true, + "minimalistic-assert": true + } + }, + "hdkey": { + "packages": { + "assert": true, + "coinstring": true, + "crypto-browserify": true, + "safe-buffer": true, + "secp256k1": true + } + }, + "heap": { + "globals": { + "define": true + } + }, + "hi-base32": { + "globals": { + "define": true + }, + "packages": { + "process": true + } + }, + "history": { + "globals": { + "addEventListener": true, + "confirm": true, + "document": true, + "history": true, + "location": true, + "navigator.userAgent": true, + "removeEventListener": true + }, + "packages": { + "resolve-pathname": true, + "tiny-invariant": true, + "tiny-warning": true, + "value-equal": true + } + }, + "hmac-drbg": { + "packages": { + "hash.js": true, + "minimalistic-assert": true, + "minimalistic-crypto-utils": true + } + }, + "hoist-non-react-statics": { + "packages": { + "react-is": true + } + }, + "https-browserify": { + "packages": { + "stream-http": true, + "url": true + } + }, + "https-did-resolver": { + "globals": { + "XMLHttpRequest": true + }, + "packages": { + "browser-resolve": true, + "did-resolver": true + } + }, + "human-to-milliseconds": { + "packages": { + "promisify-es6": true + } + }, + "idb-readable-stream": { + "globals": { + "IDBKeyRange.bound": true, + "IDBKeyRange.lowerBound": true, + "IDBKeyRange.upperBound": true + }, + "packages": { + "stream-browserify": true, + "xtend": true + } + }, + "idna-uts46": { + "globals": { + "define": true + }, + "packages": { + "punycode": true + } + }, + "idna-uts46-hx": { + "globals": { + "define": true + }, + "packages": { + "punycode": true + } + }, + "immediate": { + "globals": { + "MessageChannel": true, + "MutationObserver": true, + "WebKitMutationObserver": true, + "clearTimeout": true, + "document.createElement": true, + "document.createTextNode": true, + "document.documentElement.appendChild": true, + "setImmediate": true, + "setTimeout": true + }, + "packages": { + "process": true + } + }, + "interface-connection": { + "packages": { + "pull-defer": true + } + }, + "interface-datastore": { + "packages": { + "async": true, + "buffer": true, + "class-is": true, + "err-code": true, + "os-browserify": true, + "path-browserify": true, + "pull-defer": true, + "pull-stream": true, + "uuid": true + } + }, + "ip": { + "packages": { + "buffer": true, + "os-browserify": true + } + }, + "ipfs": { + "globals": { + "AbortController": true, + "clearInterval": true, + "clearTimeout": true, + "console.log": true, + "fetch": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "async": true, + "async-iterator-all": true, + "async-iterator-to-pull-stream": true, + "async-iterator-to-stream": true, + "base32.js": true, + "bignumber.js": true, + "browser-resolve": true, + "buffer": true, + "callbackify": true, + "cids": true, + "class-is": true, + "datastore-core": true, + "datastore-pubsub": true, + "debug": true, + "dlv": true, + "err-code": true, + "events": true, + "fnv1a": true, + "fsm-event": true, + "human-to-milliseconds": true, + "interface-datastore": true, + "ipfs-bitswap": true, + "ipfs-block": true, + "ipfs-block-service": true, + "ipfs-mfs": true, + "ipfs-repo": true, + "ipfs-unixfs": true, + "ipfs-unixfs-exporter": true, + "ipfs-unixfs-importer": true, + "ipfs-utils": true, + "ipld": true, + "ipld-dag-cbor": true, + "ipld-dag-pb": true, + "ipld-raw": true, + "ipns": true, + "is-buffer": true, + "is-ipfs": true, + "is-pull-stream": true, + "is-stream": true, + "iso-url": true, + "just-flatten-it": true, + "kind-of": true, + "libp2p": true, + "libp2p-bootstrap": true, + "libp2p-crypto": true, + "libp2p-kad-dht": true, + "libp2p-keychain": true, + "libp2p-record": true, + "libp2p-secio": true, + "libp2p-webrtc-star": true, + "libp2p-websocket-star-multi": true, + "libp2p-websockets": true, + "mafmt": true, + "merge-options": true, + "multiaddr": true, + "multiaddr-to-uri": true, + "multibase": true, + "multicodec": true, + "multihashes": true, + "multihashing-async": true, + "peer-book": true, + "peer-id": true, + "peer-info": true, + "promisify-es6": true, + "protons": true, + "pull-cat": true, + "pull-defer": true, + "pull-mplex": true, + "pull-pushable": true, + "pull-sort": true, + "pull-stream": true, + "pull-stream-to-async-iterator": true, + "pull-stream-to-stream": true, + "pull-traverse": true, + "readable-stream": true, + "receptacle": true, + "stream-to-pull-stream": true, + "superstruct": true, + "timers-browserify": true, + "varint": true + } + }, + "ipfs-bitswap": { + "globals": { + "clearInterval": true, + "clearTimeout": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "assert": true, + "async": true, + "bignumber.js": true, + "cids": true, + "debug": true, + "events": true, + "ipfs-block": true, + "just-debounce-it": true, + "lodash.isequalwith": true, + "moving-average": true, + "multicodec": true, + "multihashing-async": true, + "protons": true, + "pull-length-prefixed": true, + "pull-stream": true, + "varint-decoder": true + } + }, + "ipfs-block": { + "packages": { + "cids": true, + "class-is": true, + "is-buffer": true + } + }, + "ipfs-block-service": { + "packages": { + "async": true + } + }, + "ipfs-log": { + "globals": { + "clearTimeout": true, + "console.warn": true, + "setTimeout": true + }, + "packages": { + "buffer": true, + "json-stringify-deterministic": true, + "orbit-db-io": true, + "p-each-series": true, + "p-map": true, + "p-whilst": true + } + }, + "ipfs-mfs": { + "globals": { + "Blob": true, + "FileReader": true + }, + "packages": { + "assert": true, + "async-iterator-last": true, + "browser-resolve": true, + "buffer": true, + "cids": true, + "debug": true, + "err-code": true, + "hamt-sharding": true, + "interface-datastore": true, + "ipfs-unixfs": true, + "ipfs-unixfs-exporter": true, + "ipfs-unixfs-importer": true, + "ipld-dag-pb": true, + "mortice": true, + "multicodec": true, + "multihashes": true, + "promisify-es6": true + } + }, + "ipfs-mini": { + "globals": { + "XMLHttpRequest": true + } + }, + "ipfs-pubsub-1on1": { + "globals": { + "clearInterval": true, + "setInterval": true + }, + "packages": { + "events": true, + "path-browserify": true, + "safe-buffer": true + } + }, + "ipfs-pubsub-peer-monitor": { + "globals": { + "clearInterval": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "events": true + } + }, + "ipfs-repo": { + "packages": { + "assert": true, + "async": true, + "base32.js": true, + "bignumber.js": true, + "buffer": true, + "cids": true, + "datastore-core": true, + "datastore-level": true, + "debug": true, + "dlv": true, + "interface-datastore": true, + "ipfs-block": true, + "just-safe-set": true, + "path-browserify": true, + "pull-stream": true, + "sort-keys": true, + "timers-browserify": true + } + }, + "ipfs-unixfs": { + "packages": { + "protons": true + } + }, + "ipfs-unixfs-exporter": { + "packages": { + "async-iterator-last": true, + "buffer": true, + "cids": true, + "err-code": true, + "hamt-sharding": true, + "ipfs-unixfs": true, + "ipfs-unixfs-importer": true, + "is-buffer": true + } + }, + "ipfs-unixfs-importer": { + "packages": { + "async-iterator-all": true, + "async-iterator-batch": true, + "async-iterator-first": true, + "bl": true, + "buffer": true, + "deep-extend": true, + "err-code": true, + "hamt-sharding": true, + "ipfs-unixfs": true, + "ipld-dag-pb": true, + "multicodec": true, + "multihashes": true, + "multihashing-async": true, + "rabin-wasm": true, + "superstruct": true + } + }, + "ipfs-utils": { + "globals": { + "FileReader": true + }, + "packages": { + "is-buffer": true, + "is-pull-stream": true, + "is-stream": true, + "kind-of": true, + "readable-stream": true + } + }, + "ipld": { + "packages": { + "cids": true, + "ipfs-block": true, + "ipld-dag-cbor": true, + "ipld-dag-pb": true, + "ipld-raw": true, + "is-buffer": true, + "merge-options": true, + "multicodec": true, + "promisify-es6": true, + "typical": true + } + }, + "ipld-dag-cbor": { + "packages": { + "borc": true, + "buffer": true, + "cids": true, + "is-buffer": true, + "is-circular": true, + "multicodec": true, + "multihashing-async": true + } + }, + "ipld-dag-pb": { + "packages": { + "assert": true, + "buffer": true, + "cids": true, + "class-is": true, + "is-buffer": true, + "multicodec": true, + "multihashing-async": true, + "protons": true, + "stable": true + } + }, + "ipld-raw": { + "packages": { + "cids": true, + "multicodec": true, + "multihashing-async": true + } + }, + "ipns": { + "packages": { + "base32-encode": true, + "buffer": true, + "debug": true, + "interface-datastore": true, + "libp2p-crypto": true, + "multihashes": true, + "peer-id": true, + "protons": true, + "timestamp-nano": true + } + }, + "is-dom": { + "globals": { + "Node": true + }, + "packages": { + "is-object": true, + "is-window": true + } + }, + "is-in-browser": { + "globals": { + "document": true + } + }, + "is-ip": { + "packages": { + "ip-regex": true + } + }, + "is-ipfs": { + "packages": { + "bs58": true, + "buffer": true, + "cids": true, + "mafmt": true, + "multiaddr": true, + "multibase": true, + "multihashes": true + } + }, + "is-regex": { + "packages": { + "has-symbols": true + } + }, + "iso-random-stream": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "buffer": true + } + }, + "iso-url": { + "globals": { + "URL": true, + "URLSearchParams": true, + "location": true + } + }, + "isomorphic-fetch": { + "globals": { + "fetch.bind": true + }, + "packages": { + "whatwg-fetch": true + } + }, + "js-base64": { + "globals": { + "Base64": "write", + "TextDecoder": true, + "TextEncoder": true, + "atob": true, + "btoa": true, + "define": true + }, + "packages": { + "buffer": true + } + }, + "js-sha256": { + "globals": { + "define": true + }, + "packages": { + "process": true + } + }, + "js-sha3": { + "globals": { + "define": true + }, + "packages": { + "process": true + } + }, + "jsan": { + "globals": { + "console.warn": true + } + }, + "json-rpc-engine": { + "packages": { + "@metamask/safe-event-emitter": true, + "eth-rpc-errors": true, + "safe-event-emitter": true + } + }, + "json-rpc-middleware-stream": { + "packages": { + "readable-stream": true + } + }, + "json-stable-stringify": { + "packages": { + "jsonify": true + } + }, + "jsonschema": { + "packages": { + "url": true + } + }, + "jss": { + "globals": { + "CSS": true, + "document.createElement": true, + "document.querySelector": true + }, + "packages": { + "@babel/runtime": true, + "is-in-browser": true, + "tiny-warning": true + } + }, + "jss-plugin-camel-case": { + "packages": { + "hyphenate-style-name": true + } + }, + "jss-plugin-default-unit": { + "globals": { + "CSS": true + }, + "packages": { + "jss": true + } + }, + "jss-plugin-global": { + "packages": { + "@babel/runtime": true, + "jss": true + } + }, + "jss-plugin-nested": { + "packages": { + "@babel/runtime": true, + "tiny-warning": true + } + }, + "jss-plugin-rule-value-function": { + "packages": { + "jss": true, + "tiny-warning": true + } + }, + "jss-plugin-vendor-prefixer": { + "packages": { + "css-vendor": true, + "jss": true + } + }, + "just-debounce-it": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "k-bucket": { + "packages": { + "events": true, + "randombytes": true + } + }, + "keccak": { + "packages": { + "buffer": true, + "inherits": true, + "safe-buffer": true, + "stream-browserify": true + } + }, + "latency-monitor": { + "globals": { + "clearInterval": true, + "clearTimeout": true, + "document": true, + "performance": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "debug": true, + "events": true, + "lodash": true, + "process": true + } + }, + "level-codec": { + "packages": { + "buffer": true + } + }, + "level-errors": { + "packages": { + "errno": true + } + }, + "level-iterator-stream": { + "packages": { + "inherits": true, + "readable-stream": true, + "xtend": true + } + }, + "level-js": { + "globals": { + "IDBKeyRange.bound": true, + "IDBKeyRange.lowerBound": true, + "IDBKeyRange.only": true, + "IDBKeyRange.upperBound": true, + "indexedDB": true + }, + "packages": { + "abstract-leveldown": true, + "buffer": true, + "idb-readable-stream": true, + "immediate": true, + "inherits": true, + "is-buffer": true, + "ltgt": true, + "process": true, + "stream-browserify": true, + "typedarray-to-buffer": true, + "util": true, + "xtend": true + } + }, + "levelup": { + "packages": { + "assert": true, + "deferred-leveldown": true, + "events": true, + "level-errors": true, + "level-iterator-stream": true, + "process": true, + "util": true, + "xtend": true + } + }, + "libp2p": { + "packages": { + "async": true, + "debug": true, + "err-code": true, + "events": true, + "fsm-event": true, + "is-buffer": true, + "libp2p-connection-manager": true, + "libp2p-floodsub": true, + "libp2p-ping": true, + "libp2p-switch": true, + "libp2p-websockets": true, + "multiaddr": true, + "once": true, + "peer-book": true, + "peer-id": true, + "peer-info": true, + "process": true, + "superstruct": true + } + }, + "libp2p-bootstrap": { + "globals": { + "clearInterval": true, + "setInterval": true + }, + "packages": { + "async": true, + "debug": true, + "events": true, + "mafmt": true, + "multiaddr": true, + "peer-id": true, + "peer-info": true + } + }, + "libp2p-circuit": { + "packages": { + "async": true, + "debug": true, + "events": true, + "interface-connection": true, + "mafmt": true, + "multiaddr": true, + "once": true, + "peer-id": true, + "peer-info": true, + "protons": true, + "pull-handshake": true, + "pull-length-prefixed": true, + "pull-stream": true + } + }, + "libp2p-connection-manager": { + "packages": { + "debug": true, + "events": true, + "latency-monitor": true + } + }, + "libp2p-crypto": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "asn1.js": true, + "async": true, + "browserify-aes": true, + "bs58": true, + "buffer": true, + "iso-random-stream": true, + "libp2p-crypto-secp256k1": true, + "multihashing-async": true, + "node-forge": true, + "protons": true, + "tweetnacl": true + } + }, + "libp2p-crypto-secp256k1": { + "packages": { + "async": true, + "bs58": true, + "multihashing-async": true, + "secp256k1": true + } + }, + "libp2p-floodsub": { + "packages": { + "assert": true, + "async": true, + "debug": true, + "libp2p-pubsub": true, + "pull-length-prefixed": true, + "pull-stream": true + } + }, + "libp2p-identify": { + "globals": { + "console.warn": true + }, + "packages": { + "buffer": true, + "multiaddr": true, + "peer-id": true, + "peer-info": true, + "protons": true, + "pull-length-prefixed": true, + "pull-stream": true + } + }, + "libp2p-kad-dht": { + "globals": { + "clearInterval": true, + "clearTimeout": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "abort-controller": true, + "assert": true, + "async": true, + "base32.js": true, + "buffer": true, + "cids": true, + "debug": true, + "err-code": true, + "events": true, + "hashlru": true, + "heap": true, + "interface-datastore": true, + "is-buffer": true, + "k-bucket": true, + "libp2p-crypto": true, + "libp2p-record": true, + "multihashes": true, + "multihashing-async": true, + "p-queue": true, + "p-times": true, + "peer-id": true, + "peer-info": true, + "promise-to-callback": true, + "promisify-es6": true, + "protons": true, + "pull-length-prefixed": true, + "pull-stream": true, + "pull-stream-to-async-iterator": true, + "varint": true, + "xor-distance": true + } + }, + "libp2p-keychain": { + "globals": { + "setTimeout": true + }, + "packages": { + "async": true, + "buffer": true, + "err-code": true, + "interface-datastore": true, + "libp2p-crypto": true, + "merge-options": true, + "node-forge": true, + "pull-stream": true, + "sanitize-filename": true + } + }, + "libp2p-ping": { + "packages": { + "debug": true, + "events": true, + "libp2p-crypto": true, + "pull-handshake": true, + "pull-stream": true + } + }, + "libp2p-pubsub": { + "packages": { + "async": true, + "bs58": true, + "buffer": true, + "debug": true, + "err-code": true, + "events": true, + "is-buffer": true, + "libp2p-crypto": true, + "protons": true, + "pull-length-prefixed": true, + "pull-pushable": true, + "pull-stream": true, + "time-cache": true + } + }, + "libp2p-record": { + "packages": { + "assert": true, + "async": true, + "buffer": true, + "buffer-split": true, + "err-code": true, + "is-buffer": true, + "multihashing-async": true, + "protons": true + } + }, + "libp2p-secio": { + "packages": { + "assert": true, + "async": true, + "buffer": true, + "debug": true, + "interface-connection": true, + "libp2p-crypto": true, + "multihashing-async": true, + "once": true, + "peer-id": true, + "peer-info": true, + "protons": true, + "pull-defer": true, + "pull-handshake": true, + "pull-length-prefixed": true, + "pull-stream": true + } + }, + "libp2p-switch": { + "packages": { + "assert": true, + "async": true, + "bignumber.js": true, + "class-is": true, + "debug": true, + "err-code": true, + "events": true, + "fsm-event": true, + "hashlru": true, + "interface-connection": true, + "libp2p-circuit": true, + "libp2p-identify": true, + "moving-average": true, + "multiaddr": true, + "multistream-select": true, + "once": true, + "peer-id": true, + "peer-info": true, + "pull-stream": true, + "retimer": true + } + }, + "libp2p-webrtc-star": { + "packages": { + "async": true, + "class-is": true, + "debug": true, + "events": true, + "interface-connection": true, + "mafmt": true, + "multiaddr": true, + "once": true, + "peer-id": true, + "peer-info": true, + "simple-peer": true, + "socket.io-client": true, + "stream-to-pull-stream": true, + "webrtcsupport": true + } + }, + "libp2p-websocket-star": { + "globals": { + "console.error": true + }, + "packages": { + "async": true, + "buffer": true, + "class-is": true, + "debug": true, + "events": true, + "interface-connection": true, + "libp2p-crypto": true, + "mafmt": true, + "multiaddr": true, + "once": true, + "peer-id": true, + "peer-info": true, + "pull-stream": true, + "socket.io-client": true, + "socket.io-pull-stream": true, + "uuid": true + } + }, + "libp2p-websocket-star-multi": { + "globals": { + "setTimeout": true + }, + "packages": { + "async": true, + "debug": true, + "events": true, + "libp2p-websocket-star": true, + "mafmt": true, + "multiaddr": true, + "once": true + } + }, + "libp2p-websockets": { + "packages": { + "class-is": true, + "debug": true, + "interface-connection": true, + "mafmt": true, + "multiaddr": true, + "multiaddr-to-uri": true, + "os-browserify": true, + "pull-ws": true + } + }, + "locale-currency": { + "globals": { + "countryCode": true + } + }, + "localforage": { + "globals": { + "Blob": true, + "BlobBuilder": true, + "FileReader": true, + "IDBKeyRange": true, + "MSBlobBuilder": true, + "MozBlobBuilder": true, + "OIndexedDB": true, + "WebKitBlobBuilder": true, + "atob": true, + "btoa": true, + "console.error": true, + "console.info": true, + "console.warn": true, + "define": true, + "fetch": true, + "indexedDB": true, + "localStorage": true, + "mozIndexedDB": true, + "msIndexedDB": true, + "navigator.platform": true, + "navigator.userAgent": true, + "openDatabase": true, + "setTimeout": true, + "webkitIndexedDB": true + } + }, + "lodash": { + "globals": { + "define": true + } + }, + "lodash.throttle": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "loglevel": { + "globals": { + "console": true, + "define": true, + "document.cookie": true, + "localStorage": true, + "log": "write" + } + }, + "logplease": { + "globals": { + "LOG": true, + "console.error": true, + "console.log": true + }, + "packages": { + "browser-resolve": true, + "events": true, + "process": true, + "util": true + } + }, + "lru": { + "packages": { + "events": true, + "inherits": true + } + }, + "ltgt": { + "packages": { + "is-buffer": true + } + }, + "luxon": { + "globals": { + "Intl": true + } + }, + "mafmt": { + "packages": { + "multiaddr": true + } + }, + "md5": { + "packages": { + "charenc": true, + "crypt": true, + "is-buffer": true + } + }, + "md5.js": { + "packages": { + "hash-base": true, + "inherits": true, + "safe-buffer": true + } + }, + "merge-options": { + "packages": { + "is-plain-obj": true + } + }, + "miller-rabin": { + "packages": { + "bn.js": true, + "brorand": true + } + }, + "mini-create-react-context": { + "packages": { + "@babel/runtime": true, + "gud": true, + "prop-types": true, + "react": true, + "tiny-warning": true + } + }, + "mortice": { + "globals": { + "Worker": true + }, + "packages": { + "browser-resolve": true, + "events": true, + "observable-webworkers": true, + "p-queue": true, + "process": true, + "promise-timeout": true, + "shortid": true + } + }, + "multiaddr": { + "packages": { + "bs58": true, + "buffer": true, + "class-is": true, + "hi-base32": true, + "ip": true, + "is-ip": true, + "varint": true + } + }, + "multiaddr-to-uri": { + "packages": { + "multiaddr": true + } + }, + "multibase": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "@multiformats/base-x": true, + "base-x": true, + "buffer": true, + "web-encoding": true + } + }, + "multicodec": { + "packages": { + "buffer": true, + "uint8arrays": true, + "varint": true + } + }, + "multihashes": { + "packages": { + "bs58": true, + "buffer": true, + "multibase": true, + "uint8arrays": true, + "varint": true, + "web-encoding": true + } + }, + "multihashing-async": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "blakejs": true, + "buffer": true, + "err-code": true, + "js-sha3": true, + "multihashes": true, + "murmurhash3js": true, + "murmurhash3js-revisited": true, + "nodeify": true, + "process": true + } + }, + "multistream-select": { + "packages": { + "assert": true, + "async": true, + "buffer": true, + "debug": true, + "err-code": true, + "interface-connection": true, + "once": true, + "pull-handshake": true, + "pull-length-prefixed": true, + "pull-stream": true, + "semver": true, + "varint": true + } + }, + "muport-did-resolver": { + "packages": { + "@babel/runtime": true, + "did-resolver": true, + "node-fetch": true + } + }, + "murmurhash3js": { + "globals": { + "define": true + } + }, + "murmurhash3js-revisited": { + "globals": { + "define": true + } + }, + "nanoid": { + "globals": { + "crypto": true, + "msCrypto": true, + "navigator": true + }, + "packages": { + "buffer": true, + "crypto-browserify": true + } + }, + "node-forge": { + "globals": { + "Blob": true, + "MutationObserver": true, + "QuotaExceededError": true, + "URL.createObjectURL": true, + "URL.revokeObjectURL": true, + "Worker": true, + "addEventListener": true, + "document": true, + "jQuery": true, + "localStorage": true, + "location": true, + "navigator": true, + "postMessage": true, + "removeEventListener": true, + "setTimeout": true + }, + "packages": { + "browser-resolve": true, + "process": true, + "timers-browserify": true + } + }, + "nodeify": { + "globals": { + "setTimeout": true + }, + "packages": { + "is-promise": true, + "process": true, + "promise": true, + "timers-browserify": true + } + }, + "nonce-tracker": { + "packages": { + "assert": true, + "await-semaphore": true, + "ethjs-query": true + } + }, + "number-to-bn": { + "packages": { + "bn.js": true, + "strip-hex-prefix": true + } + }, + "obj-multiplex": { + "globals": { + "console.warn": true + }, + "packages": { + "end-of-stream": true, + "once": true, + "readable-stream": true + } + }, + "obs-store": { + "packages": { + "safe-event-emitter": true, + "xtend": true + } + }, + "once": { + "packages": { + "wrappy": true + } + }, + "orbit-db": { + "globals": { + "console.log": true + }, + "packages": { + "cids": true, + "ipfs-pubsub-1on1": true, + "logplease": true, + "multihashes": true, + "orbit-db-access-controllers": true, + "orbit-db-cache": true, + "orbit-db-counterstore": true, + "orbit-db-docstore": true, + "orbit-db-eventstore": true, + "orbit-db-feedstore": true, + "orbit-db-identity-provider": true, + "orbit-db-io": true, + "orbit-db-keystore": true, + "orbit-db-kvstore": true, + "orbit-db-pubsub": true, + "path-browserify": true + } + }, + "orbit-db-access-controllers": { + "globals": { + "console.log": true + }, + "packages": { + "events": true, + "orbit-db-io": true, + "p-map-series": true, + "path-browserify": true, + "safe-buffer": true + } + }, + "orbit-db-cache": { + "packages": { + "level-js": true, + "logplease": true, + "path-browserify": true + } + }, + "orbit-db-counterstore": { + "packages": { + "crdts": true, + "orbit-db-store": true + } + }, + "orbit-db-docstore": { + "packages": { + "orbit-db-store": true, + "p-map": true, + "readable-stream": true + } + }, + "orbit-db-eventstore": { + "packages": { + "orbit-db-store": true + } + }, + "orbit-db-feedstore": { + "packages": { + "orbit-db-eventstore": true + } + }, + "orbit-db-identity-provider": { + "packages": { + "orbit-db-keystore": true + } + }, + "orbit-db-io": { + "packages": { + "buffer": true, + "cids": true, + "ipld-dag-pb": true + } + }, + "orbit-db-keystore": { + "globals": { + "console.error": true, + "console.log": true + }, + "packages": { + "elliptic": true, + "level-js": true, + "levelup": true, + "libp2p-crypto": true, + "lru": true, + "safe-buffer": true, + "secp256k1": true + } + }, + "orbit-db-kvstore": { + "packages": { + "orbit-db-store": true + } + }, + "orbit-db-pubsub": { + "packages": { + "buffer": true, + "ipfs-pubsub-peer-monitor": true, + "logplease": true, + "p-series": true + } + }, + "orbit-db-store": { + "globals": { + "clearInterval": true, + "console.error": true, + "console.warn": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "buffer": true, + "events": true, + "ipfs-log": true, + "logplease": true, + "orbit-db-io": true, + "p-each-series": true, + "p-map": true, + "readable-stream": true + } + }, + "os-browserify": { + "globals": { + "location": true, + "navigator": true + } + }, + "p-each-series": { + "packages": { + "p-reduce": true + } + }, + "p-map-series": { + "packages": { + "p-reduce": true + } + }, + "p-queue": { + "globals": { + "clearInterval": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "eventemitter3": true + } + }, + "p-series": { + "packages": { + "@sindresorhus/is": true, + "p-reduce": true + } + }, + "p-times": { + "packages": { + "p-map": true + } + }, + "parse-asn1": { + "packages": { + "asn1.js": true, + "browserify-aes": true, + "buffer": true, + "evp_bytestokey": true, + "pbkdf2": true + } + }, + "path-browserify": { + "packages": { + "process": true + } + }, + "path-to-regexp": { + "packages": { + "isarray": true + } + }, + "pbkdf2": { + "globals": { + "crypto": true, + "process": true + }, + "packages": { + "create-hash": true, + "process": true, + "ripemd160": true, + "safe-buffer": true, + "sha.js": true + } + }, + "peer-book": { + "packages": { + "bs58": true, + "is-buffer": true, + "peer-id": true, + "peer-info": true + } + }, + "peer-id": { + "packages": { + "assert": true, + "async": true, + "buffer": true, + "class-is": true, + "libp2p-crypto": true, + "multihashes": true + } + }, + "peer-info": { + "packages": { + "assert": true, + "multiaddr": true, + "peer-id": true, + "unique-by": true + } + }, + "popper.js": { + "globals": { + "MSInputMethodContext": true, + "Node.DOCUMENT_POSITION_FOLLOWING": true, + "cancelAnimationFrame": true, + "console.warn": true, + "define": true, + "devicePixelRatio": true, + "document": true, + "getComputedStyle": true, + "innerHeight": true, + "innerWidth": true, + "navigator": true, + "requestAnimationFrame": true, + "setTimeout": true + } + }, + "precond": { + "packages": { + "util": true + } + }, + "process": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "process-nextick-args": { + "packages": { + "process": true + } + }, + "promise": { + "globals": { + "setImediate": true, + "setTimeout": true + }, + "packages": { + "is-promise": true, + "process": true + } + }, + "promise-timeout": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "promise-to-callback": { + "packages": { + "is-fn": true, + "set-immediate-shim": true + } + }, + "prop-types": { + "globals": { + "console": true + }, + "packages": { + "object-assign": true, + "react-is": true + } + }, + "protons": { + "packages": { + "buffer": true, + "is-buffer": true, + "protocol-buffers-schema": true, + "safe-buffer": true, + "signed-varint": true, + "varint": true + } + }, + "public-encrypt": { + "packages": { + "bn.js": true, + "browserify-rsa": true, + "buffer": true, + "create-hash": true, + "parse-asn1": true, + "randombytes": true + } + }, + "pubnub": { + "globals": { + "ActiveXObject": true, + "XMLHttpRequest": true, + "addEventListener": true, + "btoa": true, + "clearInterval": true, + "clearTimeout": true, + "console": true, + "define": true, + "localStorage.getItem": true, + "localStorage.setItem": true, + "location": true, + "navigator": true, + "setInterval": true, + "setTimeout": true + } + }, + "pull-handshake": { + "packages": { + "pull-cat": true, + "pull-pair": true, + "pull-pushable": true, + "pull-reader": true + } + }, + "pull-length-prefixed": { + "packages": { + "pull-pushable": true, + "pull-reader": true, + "safe-buffer": true, + "varint": true + } + }, + "pull-mplex": { + "packages": { + "async": true, + "buffer": true, + "debug": true, + "events": true, + "interface-connection": true, + "looper": true, + "pull-abortable": true, + "pull-pushable": true, + "pull-stream": true, + "pull-through": true, + "varint": true + } + }, + "pull-reader": { + "globals": { + "cb": true, + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "buffer": true + } + }, + "pull-sort": { + "packages": { + "pull-defer": true, + "pull-stream": true + } + }, + "pull-stream": { + "globals": { + "console.log": true + } + }, + "pull-stream-to-async-iterator": { + "packages": { + "pull-stream": true + } + }, + "pull-stream-to-stream": { + "packages": { + "process": true, + "stream-browserify": true, + "timers-browserify": true + } + }, + "pull-through": { + "packages": { + "looper": true + } + }, + "pull-ws": { + "globals": { + "WebSocket": true, + "location": true + }, + "packages": { + "browser-resolve": true, + "events": true, + "https-browserify": true, + "process": true, + "relative-url": true, + "safe-buffer": true, + "stream-http": true, + "timers-browserify": true, + "url": true + } + }, + "pump": { + "packages": { + "browser-resolve": true, + "end-of-stream": true, + "once": true, + "process": true + } + }, + "punycode": { + "globals": { + "define": true + } + }, + "qrcode-generator": { + "globals": { + "define": true + } + }, + "rabin-wasm": { + "globals": { + "Blob": true, + "Response": true, + "WebAssembly": true + }, + "packages": { + "assemblyscript": true + } + }, + "randombytes": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "process": true, + "safe-buffer": true + } + }, + "randomfill": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "process": true, + "randombytes": true, + "safe-buffer": true + } + }, + "react": { + "globals": { + "console": true + }, + "packages": { + "object-assign": true, + "prop-types": true + } + }, + "react-dnd": { + "globals": { + "console.error": true + }, + "packages": { + "disposables": true, + "dnd-core": true, + "hoist-non-react-statics": true, + "invariant": true, + "lodash": true, + "prop-types": true, + "react": true, + "shallowequal": true + } + }, + "react-dnd-html5-backend": { + "globals": { + "Image": true, + "console.warn": true, + "devicePixelRatio": true, + "document": true, + "navigator.userAgent": true, + "safari": true, + "setTimeout": true + } + }, + "react-dom": { + "globals": { + "MSApp": true, + "__REACT_DEVTOOLS_GLOBAL_HOOK__": true, + "addEventListener": true, + "clearTimeout": true, + "clipboardData": true, + "console": true, + "dispatchEvent": true, + "document": true, + "event": "write", + "jest": true, + "location.protocol": true, + "navigator.userAgent.indexOf": true, + "performance": true, + "removeEventListener": true, + "self": true, + "setTimeout": true, + "top": true, + "trustedTypes": true + }, + "packages": { + "object-assign": true, + "prop-types": true, + "react": true, + "scheduler": true + } + }, + "react-fast-compare": { + "globals": { + "Element": true, + "console.warn": true + } + }, + "react-idle-timer": { + "globals": { + "clearTimeout": true, + "document": true, + "setTimeout": true + }, + "packages": { + "prop-types": true, + "react": true + } + }, + "react-inspector": { + "globals": { + "Node.CDATA_SECTION_NODE": true, + "Node.COMMENT_NODE": true, + "Node.DOCUMENT_FRAGMENT_NODE": true, + "Node.DOCUMENT_NODE": true, + "Node.DOCUMENT_TYPE_NODE": true, + "Node.ELEMENT_NODE": true, + "Node.PROCESSING_INSTRUCTION_NODE": true, + "Node.TEXT_NODE": true + }, + "packages": { + "babel-runtime": true, + "is-dom": true, + "prop-types": true, + "react": true + } + }, + "react-is": { + "globals": { + "console": true + } + }, + "react-popper": { + "globals": { + "document": true + }, + "packages": { + "@popperjs/core": true, + "react": true, + "react-fast-compare": true, + "warning": true + } + }, + "react-redux": { + "globals": { + "console": true, + "document": true + }, + "packages": { + "@babel/runtime": true, + "hoist-non-react-statics": true, + "prop-types": true, + "react": true, + "react-dom": true, + "react-is": true, + "redux": true + } + }, + "react-router": { + "packages": { + "history": true, + "hoist-non-react-statics": true, + "mini-create-react-context": true, + "path-to-regexp": true, + "prop-types": true, + "react": true, + "react-is": true, + "tiny-invariant": true, + "tiny-warning": true + } + }, + "react-router-dom": { + "packages": { + "history": true, + "prop-types": true, + "react": true, + "react-router": true, + "tiny-invariant": true, + "tiny-warning": true + } + }, + "react-simple-file-input": { + "globals": { + "File": true, + "FileReader": true, + "console.warn": true + }, + "packages": { + "prop-types": true, + "react": true + } + }, + "react-tippy": { + "globals": { + "Element": true, + "MSStream": true, + "MutationObserver": true, + "addEventListener": true, + "clearTimeout": true, + "console.error": true, + "console.warn": true, + "define": true, + "document": true, + "getComputedStyle": true, + "innerHeight": true, + "innerWidth": true, + "navigator.maxTouchPoints": true, + "navigator.msMaxTouchPoints": true, + "navigator.userAgent": true, + "performance": true, + "requestAnimationFrame": true, + "setTimeout": true + }, + "packages": { + "popper.js": true, + "react": true, + "react-dom": true + } + }, + "react-toggle-button": { + "globals": { + "clearTimeout": true, + "console.warn": true, + "define": true, + "performance": true, + "setTimeout": true + }, + "packages": { + "react": true + } + }, + "react-transition-group": { + "globals": { + "Element": true, + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "chain-function": true, + "dom-helpers": true, + "prop-types": true, + "react": true, + "react-dom": true, + "warning": true + } + }, + "readable-stream": { + "packages": { + "browser-resolve": true, + "buffer": true, + "core-util-is": true, + "events": true, + "inherits": true, + "isarray": true, + "process": true, + "process-nextick-args": true, + "safe-buffer": true, + "string_decoder": true, + "timers-browserify": true, + "util-deprecate": true + } + }, + "receptacle": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "ms": true + } + }, + "redux": { + "globals": { + "console": true + }, + "packages": { + "symbol-observable": true + } + }, + "redux-devtools-core": { + "globals": { + "ErrorUtils": true, + "console": true, + "devToolsOptions": true, + "onerror": "write", + "serializeState": true + }, + "packages": { + "get-params": true, + "jsan": true, + "lodash": true, + "nanoid": true, + "remotedev-serialize": true + } + }, + "redux-devtools-instrument": { + "globals": { + "chrome": true, + "console.error": true, + "process": true, + "setTimeout": true + }, + "packages": { + "lodash": true, + "process": true, + "symbol-observable": true + } + }, + "regenerator-runtime": { + "globals": { + "regeneratorRuntime": "write" + } + }, + "regexp.prototype.flags": { + "packages": { + "define-properties": true, + "es-abstract": true + } + }, + "relative-url": { + "packages": { + "url": true + } + }, + "remote-redux-devtools": { + "globals": { + "console.log": true, + "console.warn": true, + "fetch": true, + "setTimeout": true + }, + "packages": { + "jsan": true, + "redux-devtools-core": true, + "redux-devtools-instrument": true, + "rn-host-detect": true, + "socketcluster-client": true + } + }, + "retimer": { + "globals": { + "clearTimeout": true, + "setTimeout": true + } + }, + "ripemd160": { + "packages": { + "buffer": true, + "hash-base": true, + "inherits": true + } + }, + "rlp": { + "packages": { + "bn.js": true, + "buffer": true + } + }, + "rn-host-detect": { + "globals": { + "__DEV__": true, + "__fbBatchedBridgeConfig": true, + "console": true + } + }, + "rpc-cap": { + "packages": { + "@metamask/controllers": true, + "eth-rpc-errors": true, + "is-subset": true, + "json-rpc-engine": true, + "uuid": true + } + }, + "safe-buffer": { + "packages": { + "buffer": true + } + }, + "safe-event-emitter": { + "globals": { + "setTimeout": true + }, + "packages": { + "events": true, + "util": true + } + }, + "sanitize-filename": { + "packages": { + "truncate-utf8-bytes": true + } + }, + "sc-channel": { + "packages": { + "component-emitter": true + } + }, + "sc-formatter": { + "globals": { + "Buffer": true + } + }, + "scheduler": { + "globals": { + "MessageChannel": true, + "cancelAnimationFrame": true, + "clearTimeout": true, + "console": true, + "navigator": true, + "performance": true, + "requestAnimationFrame": true, + "setTimeout": true + } + }, + "scrypt-js": { + "globals": { + "define": true, + "setTimeout": true + }, + "packages": { + "timers-browserify": true + } + }, + "scryptsy": { + "packages": { + "buffer": true, + "pbkdf2": true + } + }, + "secp256k1": { + "packages": { + "bip66": true, + "bn.js": true, + "create-hash": true, + "drbg.js": true, + "elliptic": true, + "is-buffer": true, + "safe-buffer": true + } + }, + "semaphore": { + "globals": { + "define": true, + "setTimeout": true + }, + "packages": { + "process": true + } + }, + "semver": { + "globals": { + "console": true + }, + "packages": { + "process": true + } + }, + "set-immediate-shim": { + "globals": { + "setTimeout.apply": true + }, + "packages": { + "timers-browserify": true + } + }, + "sha.js": { + "packages": { + "inherits": true, + "safe-buffer": true + } + }, + "shortid": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "nanoid": true + } + }, + "signed-varint": { + "packages": { + "varint": true + } + }, + "simple-peer": { + "globals": { + "clearInterval": true, + "console.warn": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "buffer": true, + "debug": true, + "get-browser-rtc": true, + "inherits": true, + "randombytes": true, + "readable-stream": true + } + }, + "socket.io-client": { + "globals": { + "clearTimeout": true, + "location": true, + "setTimeout": true + }, + "packages": { + "backo2": true, + "component-bind": true, + "component-emitter": true, + "debug": true, + "engine.io-client": true, + "has-binary2": true, + "indexof": true, + "parseqs": true, + "parseuri": true, + "socket.io-parser": true, + "to-array": true + } + }, + "socket.io-parser": { + "globals": { + "Blob": true, + "File": true, + "FileReader": true + }, + "packages": { + "buffer": true, + "component-emitter": true, + "debug": true, + "isarray": true + } + }, + "socket.io-pull-stream": { + "globals": { + "console.error": true + }, + "packages": { + "buffer": true, + "data-queue": true, + "debug": true, + "pull-stream": true, + "uuid": true + } + }, + "socketcluster-client": { + "globals": { + "WebSocket": true, + "WorkerGlobalScope": true, + "addEventListener": true, + "clearTimeout": true, + "localStorage": true, + "location": true, + "removeEventListener": true, + "setTimeout": true + }, + "packages": { + "buffer": true, + "clone": true, + "component-emitter": true, + "linked-list": true, + "querystring-es3": true, + "sc-channel": true, + "sc-errors": true, + "sc-formatter": true, + "uuid": true + } + }, + "sort-keys": { + "packages": { + "is-plain-obj": true + } + }, + "stable": { + "globals": { + "define": true + } + }, + "store": { + "globals": { + "ActiveXObject": true, + "console": true + } + }, + "stream-browserify": { + "packages": { + "events": true, + "inherits": true, + "readable-stream": true + } + }, + "stream-http": { + "globals": { + "AbortController": true, + "Blob": true, + "MSStreamReader": true, + "ReadableStream": true, + "WritableStream": true, + "XDomainRequest": true, + "XMLHttpRequest": true, + "clearTimeout": true, + "fetch": true, + "location.protocol.search": true, + "setTimeout": true + }, + "packages": { + "buffer": true, + "builtin-status-codes": true, + "inherits": true, + "process": true, + "readable-stream": true, + "url": true, + "xtend": true + } + }, + "stream-to-pull-stream": { + "globals": { + "console.error": true + }, + "packages": { + "looper": true, + "process": true, + "pull-stream": true + } + }, + "string_decoder": { + "packages": { + "safe-buffer": true + } + }, + "strip-hex-prefix": { + "packages": { + "is-hex-prefixed": true + } + }, + "textarea-caret": { + "globals": { + "document.body.appendChild": true, + "document.body.removeChild": true, + "document.createElement": true, + "document.querySelector": true, + "getCaretCoordinates": "write", + "getComputedStyle": true, + "mozInnerScreenX": true + } + }, + "through": { + "packages": { + "process": true, + "stream-browserify": true + } + }, + "through2": { + "packages": { + "process": true, + "readable-stream": true, + "util": true, + "xtend": true + } + }, + "time-cache": { + "packages": { + "lodash.throttle": true + } + }, + "timers-browserify": { + "globals": { + "clearInterval": true, + "clearTimeout": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "process": true + } + }, + "tiny-warning": { + "globals": { + "console": true + } + }, + "toggle-selection": { + "globals": { + "document.activeElement": true, + "document.getSelection": true + } + }, + "trezor-connect": { + "globals": { + "__TREZOR_CONNECT_SRC": true, + "addEventListener": true, + "btoa": true, + "chrome": true, + "clearInterval": true, + "clearTimeout": true, + "console": true, + "document.body": true, + "document.createElement": true, + "document.createTextNode": true, + "document.getElementById": true, + "document.querySelectorAll": true, + "fetch": true, + "location": true, + "navigator": true, + "open": true, + "removeEventListener": true, + "setInterval": true, + "setTimeout": true + }, + "packages": { + "@babel/runtime": true, + "events": true, + "whatwg-fetch": true + } + }, + "truncate-utf8-bytes": { + "packages": { + "utf8-byte-length": true + } + }, + "tslib": { + "globals": { + "define": true + } + }, + "tweetnacl": { + "globals": { + "crypto": true, + "msCrypto": true, + "nacl": "write" + }, + "packages": { + "browser-resolve": true + } + }, + "tweetnacl-util": { + "globals": { + "atob": true, + "btoa": true + }, + "packages": { + "browser-resolve": true + } + }, + "typedarray-to-buffer": { + "packages": { + "buffer": true, + "is-typedarray": true + } + }, + "typical": { + "globals": { + "define": true + } + }, + "uint8arrays": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "multibase": true, + "web-encoding": true + } + }, + "unorm": { + "globals": { + "define": true + } + }, + "uport-base64url": { + "packages": { + "buffer": true + } + }, + "url": { + "packages": { + "punycode": true, + "querystring-es3": true + } + }, + "utf8": { + "globals": { + "define": true + } + }, + "util": { + "globals": { + "console.error": true, + "console.log": true, + "console.trace": true, + "process": true + }, + "packages": { + "inherits": true, + "process": true + } + }, + "util-deprecate": { + "globals": { + "console.trace": true, + "console.warn": true, + "localStorage": true + } + }, + "uuid": { + "globals": { + "crypto": true, + "msCrypto": true + } + }, + "varint-decoder": { + "packages": { + "is-buffer": true, + "varint": true + } + }, + "vm-browserify": { + "globals": { + "document.body.appendChild": true, + "document.body.removeChild": true, + "document.createElement": true + } + }, + "warning": { + "globals": { + "console": true + } + }, + "web-encoding": { + "globals": { + "TextDecoder": true, + "TextEncoder": true + }, + "packages": { + "util": true + } + }, + "web3": { + "globals": { + "Web3": "write", + "XMLHttpRequest": "write", + "clearTimeout": true, + "console.error": true, + "setTimeout": true + }, + "packages": { + "bignumber.js": true, + "buffer": true, + "crypto-js": true, + "utf8": true, + "xhr2-cookies": true + } + }, + "web3-provider-engine": { + "globals": { + "WebSocket": true, + "console": true, + "setTimeout": true + }, + "packages": { + "@ethereumjs/tx": true, + "async": true, + "backoff": true, + "browser-resolve": true, + "buffer": true, + "eth-block-tracker": true, + "eth-json-rpc-filters": true, + "eth-json-rpc-infura": true, + "eth-json-rpc-middleware": true, + "eth-sig-util": true, + "ethereumjs-util": true, + "events": true, + "json-stable-stringify": true, + "semaphore": true, + "util": true, + "xtend": true + } + }, + "web3-stream-provider": { + "globals": { + "setTimeout": true + }, + "packages": { + "readable-stream": true, + "util": true, + "uuid": true + } + }, + "webrtcsupport": { + "globals": { + "AudioContext": true, + "MediaStream": true, + "RTCIceCandidate": true, + "RTCPeerConnection": true, + "RTCSessionDescription": true, + "document": true, + "location.protocol": true, + "mozRTCIceCandidate": true, + "mozRTCPeerConnection": true, + "mozRTCSessionDescription": true, + "navigator.getUserMedia": true, + "navigator.mozGetUserMedia": true, + "navigator.msGetUserMedia": true, + "navigator.userAgent.match": true, + "navigator.webkitGetUserMedia": true, + "webkitAudioContext": true, + "webkitMediaStream": true, + "webkitRTCPeerConnection": true + } + }, + "whatwg-fetch": { + "globals": { + "Blob": true, + "FileReader": true, + "FormData": true, + "URLSearchParams.prototype.isPrototypeOf": true, + "XMLHttpRequest": true, + "define": true, + "setTimeout": true + } + }, + "xhr2": { + "globals": { + "XMLHttpRequest": true + } + }, + "xhr2-cookies": { + "globals": { + "console.warn": true + }, + "packages": { + "buffer": true, + "cookiejar": true, + "https-browserify": true, + "os-browserify": true, + "process": true, + "stream-http": true, + "url": true + } + }, + "xor-distance": { + "packages": { + "buffer": true + } + } + } +} \ No newline at end of file diff --git a/lavamoat/node/policy.json b/lavamoat/node/policy.json index c3acbd59d..b9080a2e6 100644 --- a/lavamoat/node/policy.json +++ b/lavamoat/node/policy.json @@ -840,18 +840,22 @@ "builtin": { "assert": true, "buffer.Buffer.from": true, + "fs.readFileSync": true, "path.join": true, "path.relative": true }, "globals": { "__dirname": true, - "process.cwd": true + "process.cwd": true, + "setTimeout": true }, "packages": { "JSONStream": true, "combine-source-map": true, "convert-source-map": true, "json-stable-stringify": true, + "lavamoat-core": true, + "readable-stream": true, "through2": true, "umd": true } @@ -1398,6 +1402,15 @@ "buffer.Buffer": true } }, + "clone-deep": { + "packages": { + "for-own": true, + "is-plain-object": true, + "kind-of": true, + "lazy-cache": true, + "shallow-clone": true + } + }, "clone-regexp": { "packages": { "is-regexp": true @@ -1456,6 +1469,7 @@ "concat-stream": { "globals": { "Buffer.concat": true, + "Buffer.from": true, "Buffer.isBuffer": true }, "packages": { @@ -2812,6 +2826,70 @@ "es6-weak-map": true } }, + "lavamoat-browserify": { + "builtin": { + "fs.existsSync": true, + "fs.mkdirSync": true, + "fs.readFileSync": true, + "fs.writeFileSync": true, + "path.dirname": true, + "path.extname": true, + "path.resolve": true, + "util.callbackify": true + }, + "globals": { + "console.warn": true, + "process.cwd": true + }, + "packages": { + "@lavamoat/lavapack": true, + "concat-stream": true, + "duplexify": true, + "json-stable-stringify": true, + "lavamoat-core": true, + "readable-stream": true, + "through2": true + } + }, + "lavamoat-core": { + "builtin": { + "events": true, + "fs.existsSync": true, + "fs.readFileSync": true, + "module.createRequire": true, + "module.createRequireFromPath": true, + "path.extname": true, + "path.join": true, + "path.sep": true + }, + "globals": { + "__dirname": true, + "console.warn": true, + "define": true + }, + "packages": { + "fromentries": true, + "json-stable-stringify": true, + "lavamoat-tofu": true, + "merge-deep": true, + "resolve": true + } + }, + "lavamoat-tofu": { + "globals": { + "console.log": true + }, + "packages": { + "@babel/parser": true, + "@babel/traverse": true + } + }, + "lazy-cache": { + "globals": { + "process.env.TRAVIS": true, + "process.env.UNLAZY": true + } + }, "lazystream": { "builtin": { "util.inherits": true @@ -2928,6 +3006,13 @@ "timers-ext": true } }, + "merge-deep": { + "packages": { + "arr-union": true, + "clone-deep": true, + "kind-of": true + } + }, "merge-source-map": { "packages": { "source-map": true @@ -2992,6 +3077,12 @@ "is-extendable": true } }, + "mixin-object": { + "packages": { + "for-in": true, + "is-extendable": true + } + }, "mkdirp": { "builtin": { "fs": true, @@ -3734,6 +3825,14 @@ "split-string": true } }, + "shallow-clone": { + "packages": { + "is-extendable": true, + "kind-of": true, + "lazy-cache": true, + "mixin-object": true + } + }, "shasum": { "builtin": { "buffer.Buffer.isBuffer": true, diff --git a/package.json b/package.json index a26a3a81f..162649c83 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,10 @@ "storybook:deploy": "storybook-to-ghpages --existing-output-dir storybook-build --remote storybook --branch master", "update-changelog": "auto-changelog update", "generate:migration": "./development/generate-migration.sh", - "lavamoat:auto": "lavamoat ./development/build/index.js --writeAutoPolicy", - "lavamoat:debug:build": "lavamoat ./development/build/index.js --writeAutoPolicyDebug" + "lavamoat:build:auto": "lavamoat ./development/build/index.js --writeAutoPolicy", + "lavamoat:debug:build": "lavamoat ./development/build/index.js --writeAutoPolicyDebug", + "lavamoat:background:auto": "WRITE_AUTO_POLICY=1 yarn build prod", + "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:background:auto" }, "resolutions": { "**/regenerator-runtime": "^0.13.7", @@ -217,7 +219,7 @@ "@babel/preset-react": "^7.0.0", "@babel/register": "^7.5.5", "@lavamoat/allow-scripts": "^1.0.6", - "@lavamoat/lavapack": "^1.0.4", + "@lavamoat/lavapack": "^2.0.3", "@metamask/auto-changelog": "^2.1.0", "@metamask/eslint-config": "^6.0.0", "@metamask/eslint-config-jest": "^6.0.0", @@ -288,6 +290,7 @@ "jsdom": "^11.2.0", "koa": "^2.7.0", "lavamoat": "^5.3.4", + "lavamoat-browserify": "^14.0.3", "lavamoat-viz": "^6.0.9", "lockfile-lint": "^4.0.0", "loose-envify": "^1.4.0", @@ -323,6 +326,7 @@ "terser": "^5.7.0", "through2": "^4.0.2", "ttest": "^2.1.1", + "vinyl": "^2.2.1", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", "vinyl-sourcemaps-apply": "^0.2.1", diff --git a/test/e2e/tests/contract-interactions.spec.js b/test/e2e/tests/contract-interactions.spec.js index c4e0537c5..6ef4cc4fb 100644 --- a/test/e2e/tests/contract-interactions.spec.js +++ b/test/e2e/tests/contract-interactions.spec.js @@ -32,6 +32,7 @@ describe('Deploy contract and call contract methods', function () { await driver.openNewPage('http://127.0.0.1:8080/'); await driver.clickElement({ text: 'Connect', tag: 'button' }); await driver.waitUntilXWindowHandles(3); + await driver.delay(5000); windowHandles = await driver.getAllWindowHandles(); extension = windowHandles[0]; dapp = await driver.switchToWindowWithTitle( @@ -86,6 +87,7 @@ describe('Deploy contract and call contract methods', function () { await driver.switchToWindow(dapp); await driver.clickElement('#depositButton'); await driver.waitUntilXWindowHandles(3); + await driver.delay(5000); windowHandles = await driver.getAllWindowHandles(); await driver.switchToWindowWithTitle( 'MetaMask Notification', @@ -111,11 +113,13 @@ describe('Deploy contract and call contract methods', function () { await driver.switchToWindow(dapp); await driver.clickElement('#withdrawButton'); await driver.waitUntilXWindowHandles(3); + await driver.delay(5000); windowHandles = await driver.getAllWindowHandles(); await driver.switchToWindowWithTitle( 'MetaMask Notification', windowHandles, ); + await driver.delay(regularDelayMs); await driver.clickElement({ text: 'Confirm', tag: 'button' }); await driver.waitUntilXWindowHandles(2); await driver.switchToWindow(extension); diff --git a/yarn.lock b/yarn.lock index 9133ce6ce..dd43cfdc2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2639,15 +2639,16 @@ semver "^7.3.4" yargs "^16.2.0" -"@lavamoat/lavapack@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@lavamoat/lavapack/-/lavapack-1.0.4.tgz#e72d6b29fa70da8236a127c1d95cb581cda6941e" - integrity sha512-Zhcn+eJyHIS4AAmN9IIjs8WCh12Q7NpFXXz0pI3Y54uknTdx5TPlwr3ARKf0jEXDOWNok/TuK2uPld54BSG/FQ== +"@lavamoat/lavapack@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@lavamoat/lavapack/-/lavapack-2.0.3.tgz#d535e23b4e98d21ac7aad57ef5019e64f1701117" + integrity sha512-7gpFnNaB4P15YsLf9/6Rn5EGAAg8s5CyVUZWy8bFHT+KaLzcRnjsbr1H5VehZkpU2xT0jWYHo1Rii7WmGdLQxg== dependencies: JSONStream "^1.3.5" combine-source-map "^0.8.0" convert-source-map "^1.7.0" json-stable-stringify "^1.0.1" + lavamoat-core "^11.0.0" through2 "^4.0.2" umd "^3.0.3" @@ -8272,7 +8273,7 @@ clone@2.1.1: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" integrity sha1-0hfR6WERjjrJpLi7oyhVU79kfNs= -clone@2.1.2, clone@^2.0.0, clone@^2.1.1: +clone@2.1.2, clone@^2.0.0, clone@^2.1.1, clone@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= @@ -8523,7 +8524,7 @@ concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@^1.5.2, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" -"concat-stream@github:hugomrdias/concat-stream#feat/smaller": +concat-stream@^2.0.0, "concat-stream@github:hugomrdias/concat-stream#feat/smaller": version "2.0.0" resolved "https://codeload.github.com/hugomrdias/concat-stream/tar.gz/057bc7b5d6d8df26c8cf00a3f151b6721a0a8034" dependencies: @@ -8654,7 +8655,7 @@ convert-source-map@^0.3.3: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= -convert-source-map@^1.0.0: +convert-source-map@^1.0.0, convert-source-map@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -17407,6 +17408,27 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" +lavamoat-browserify@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/lavamoat-browserify/-/lavamoat-browserify-14.0.3.tgz#1f179ec34f18a433f6c8348d5e271b6a8e58bc09" + integrity sha512-TFRW6BV1n980g6rcKq90rjYyIbGumATc/7y6//qRXXBUSxRKAvTmyzVE19kNS5xdhWPlneDddf+YOZLwI8n1Gw== + dependencies: + "@lavamoat/lavapack" "^2.0.3" + JSONStream "^1.3.5" + clone "^2.1.2" + concat-stream "^2.0.0" + convert-source-map "^1.8.0" + duplexify "^4.1.1" + json-stable-stringify "^1.0.1" + lavamoat-core "^11.0.0" + merge-deep "^3.0.2" + offset-sourcemap-lines "^1.0.1" + pify "^4.0.1" + readable-stream "^3.6.0" + safe-buffer "^5.1.2" + through2 "^3.0.0" + umd "^3.0.3" + lavamoat-core@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/lavamoat-core/-/lavamoat-core-10.0.1.tgz#155bb4a50ace2e624941f14ca87705b171f6bba9" @@ -20472,6 +20494,13 @@ observable-webworkers@^1.0.0: resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-1.0.0.tgz#dcbd484a9644d512accc351962c6e710313fbb68" integrity sha512-+cECwCR8IEh8UY5nefQVLO9Cydqpk1izO+o7BABmKjXfJZyEOzBWY3ss5jbOPM6KmEa9aQExvAtTW6tVTOsNAQ== +offset-sourcemap-lines@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/offset-sourcemap-lines/-/offset-sourcemap-lines-1.0.1.tgz#5854dff74b73fc06efcb61d7b721a8113d99be92" + integrity sha1-WFTf90tz/Abvy2HXtyGoET2ZvpI= + dependencies: + source-map "^0.5.0" + on-finished@^2.3.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -27778,6 +27807,18 @@ vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +vinyl@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vm-browserify@^1.0.0, vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -28899,9 +28940,9 @@ yauzl@2.10.0, yauzl@^2.10.0: fd-slicer "~1.1.0" yazl@^2.1.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" - integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + version "2.4.3" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" + integrity sha1-7CblzIfVYBud+EMtvdPNLlFzoHE= dependencies: buffer-crc32 "~0.2.3"