From a7d98b695fcfb2e1d25c325bb476c96328e6fe24 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Tue, 9 Aug 2022 14:16:08 -0600 Subject: [PATCH] Add TypeScript migration dashboard (#13820) As we convert parts of the codebase to TypeScript, we will want a way to track progress. This commit adds a dashboard which displays all of the files that we wish to convert to TypeScript and which files we've already converted. The list of all possible files to convert is predetermined by walking the dependency graph of each entrypoint the build system uses to compile the extension (the files that the entrypoint imports, the files that the imports import, etc). The list should not need to be regenerated, but you can do it by running: yarn ts-migration:enumerate The dashboard is implemented as a separate React app. The CircleCI configuration has been updated so that when a new commit is pushed, the React app is built and stored in the CircleCI artifacts. When a PR is merged, the built files will be pushed to a separate repo whose sole purpose is to serve the dashboard via GitHub Pages (this is the same way that the Storybook works). All of the app code and script to build the app are self-contained under `development/ts-migration-dashboard`. To build this app yourself, you can run: yarn ts-migration:dashboard:build or if you want to build automatically as you change files, run: yarn ts-migration:dashboard:watch Then open the following file in your browser (there is no server component): development/ts-migration-dashboard/build/index.html Finally, although you shouldn't have to do this, to manually deploy the dashboard once built, you can run: git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git yarn ts-migration:dashboard:deploy --- .circleci/config.yml | 42 + .depcheckrc.yml | 2 + .eslintrc.js | 1 + .gitignore | 2 + .prettierignore | 1 + development/metamaskbot-build-announce.js | 4 + .../files-to-convert.json | 1737 ++++++++++++++++ .../scripts/build-module-partitions.ts | 336 ++++ .../ts-migration-dashboard/scripts/build.ts | 227 +++ .../scripts/constants.ts | 19 + .../scripts/write-list-of-files-to-convert.ts | 59 + .../ts-migration-dashboard/src/App.tsx | 157 ++ .../ts-migration-dashboard/src/index.scss | 191 ++ .../ts-migration-dashboard/src/index.tsx | 7 + .../src/public/images/metamask-fox.svg | 1 + .../src/public/index.html | 13 + .../ts-migration-dashboard/src/tippy.scss | 655 ++++++ lavamoat/browserify/beta/policy.json | 569 +----- lavamoat/browserify/flask/policy.json | 172 +- lavamoat/browserify/main/policy.json | 569 +----- lavamoat/build-system/policy-override.json | 9 +- lavamoat/build-system/policy.json | 1749 ++++++++++++----- package.json | 34 +- patches/@types+madge+5.0.0.patch | 16 + tsconfig.json | 6 +- types/classnames.d.ts | 5 + types/react-tippy.d.ts | 71 + types/react.d.ts | 9 + yarn.lock | 585 +++++- 29 files changed, 5632 insertions(+), 1616 deletions(-) create mode 100644 development/ts-migration-dashboard/files-to-convert.json create mode 100644 development/ts-migration-dashboard/scripts/build-module-partitions.ts create mode 100644 development/ts-migration-dashboard/scripts/build.ts create mode 100644 development/ts-migration-dashboard/scripts/constants.ts create mode 100644 development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts create mode 100644 development/ts-migration-dashboard/src/App.tsx create mode 100644 development/ts-migration-dashboard/src/index.scss create mode 100644 development/ts-migration-dashboard/src/index.tsx create mode 100644 development/ts-migration-dashboard/src/public/images/metamask-fox.svg create mode 100644 development/ts-migration-dashboard/src/public/index.html create mode 100644 development/ts-migration-dashboard/src/tippy.scss create mode 100644 patches/@types+madge+5.0.0.patch create mode 100644 types/classnames.d.ts create mode 100644 types/react-tippy.d.ts create mode 100644 types/react.d.ts diff --git a/.circleci/config.yml b/.circleci/config.yml index 8bc591a91..1c9826392 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,6 +65,9 @@ workflows: - prep-build-storybook: requires: - test-storybook + - prep-build-ts-migration-dashboard: + requires: + - prep-deps - test-lint: requires: - prep-deps @@ -146,6 +149,7 @@ workflows: - prep-build-beta - prep-build-flask - prep-build-storybook + - prep-build-ts-migration-dashboard - prep-build-test-mv3 - benchmark - stats-module-load-init @@ -165,6 +169,12 @@ workflows: only: develop requires: - prep-build-storybook + - job-publish-ts-migration-dashboard: + filters: + branches: + only: develop + requires: + - prep-build-ts-migration-dashboard jobs: create_release_pull_request: @@ -369,6 +379,20 @@ jobs: paths: - storybook-build + prep-build-ts-migration-dashboard: + executor: node-browsers + steps: + - checkout + - attach_workspace: + at: . + - run: + name: Build TypeScript migration dashboard + command: yarn ts-migration:dashboard:build + - persist_to_workspace: + root: . + paths: + - development/ts-migration-dashboard/build + test-storybook: executor: node-browsers steps: @@ -686,6 +710,9 @@ jobs: - store_artifacts: path: storybook-build destination: storybook + - store_artifacts: + path: development/ts-migration-dashboard/build + destination: ts-migration-dashboard - run: name: build:announce command: ./development/metamaskbot-build-announce.js @@ -722,6 +749,21 @@ jobs: git remote add storybook git@github.com:MetaMask/metamask-storybook.git yarn storybook:deploy + job-publish-ts-migration-dashboard: + executor: node-browsers + steps: + - add_ssh_keys: + fingerprints: + - "3d:49:29:f4:b2:e8:ea:af:d1:32:eb:2a:fc:15:85:d8" + - checkout + - attach_workspace: + at: . + - run: + name: ts-migration-dashboard:deploy + command: | + git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git + yarn ts-migration:dashboard:deploy + test-unit: executor: node-browsers steps: diff --git a/.depcheckrc.yml b/.depcheckrc.yml index 2652ffb2b..131fa90ad 100644 --- a/.depcheckrc.yml +++ b/.depcheckrc.yml @@ -12,6 +12,8 @@ ignores: # dev deps # + # all @types/* packages are imported implicitly by TypeScript + - '@types/*' # safety fallback for npm lifecycle scripts, not used normally - '@lavamoat/preinstall-always-fail' # used in testing + ci diff --git a/.eslintrc.js b/.eslintrc.js index b1b38d7d8..1ec524fbe 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,6 +9,7 @@ module.exports = { 'builds/**/*', 'development/chromereload.js', 'development/charts/**', + 'development/ts-migration-dashboard/build/**', 'dist/**/*', 'node_modules/**/*', ], diff --git a/.gitignore b/.gitignore index 693537314..cca1fefab 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,8 @@ jest-coverage/ dist builds/ builds.zip +development/ts-migration-dashboard/build +development/ts-migration-dashboard/intermediate test-artifacts test-builds diff --git a/.prettierignore b/.prettierignore index a98c312ad..75bdc6e52 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,3 +11,4 @@ app/vendor/** test/e2e/send-eth-with-private-key-test/** *.scss development/chromereload.js +development/ts-migration-dashboard/filesToConvert.json diff --git a/development/metamaskbot-build-announce.js b/development/metamaskbot-build-announce.js index 7b834de0a..dd6fa1fb3 100755 --- a/development/metamaskbot-build-announce.js +++ b/development/metamaskbot-build-announce.js @@ -93,6 +93,9 @@ async function start() { const storybookUrl = `${BUILD_LINK_BASE}/storybook/index.html`; const storybookLink = `Storybook`; + const tsMigrationDashboardUrl = `${BUILD_LINK_BASE}/ts-migration-dashboard/index.html`; + const tsMigrationDashboardLink = `Dashboard`; + // links to bundle browser builds const depVizUrl = `${BUILD_LINK_BASE}/build-artifacts/build-viz/index.html`; const depVizLink = `Build System`; @@ -119,6 +122,7 @@ async function start() { `mv3: ${bundleSizeStatsLink}`, `code coverage: ${coverageLink}`, `storybook: ${storybookLink}`, + `typescript migration: ${tsMigrationDashboardLink}`, `all artifacts`, `
bundle viz: diff --git a/development/ts-migration-dashboard/files-to-convert.json b/development/ts-migration-dashboard/files-to-convert.json new file mode 100644 index 000000000..e8cc2681f --- /dev/null +++ b/development/ts-migration-dashboard/files-to-convert.json @@ -0,0 +1,1737 @@ +[ + ".eslintrc.js", + "app/scripts/account-import-strategies/account-import-strategies.test.js", + "app/scripts/account-import-strategies/index.js", + "app/scripts/background.js", + "app/scripts/constants/contracts.js", + "app/scripts/constants/on-ramp.js", + "app/scripts/contentscript.js", + "app/scripts/controllers/alert.js", + "app/scripts/controllers/app-state.js", + "app/scripts/controllers/cached-balances.js", + "app/scripts/controllers/cached-balances.test.js", + "app/scripts/controllers/detect-tokens.js", + "app/scripts/controllers/detect-tokens.test.js", + "app/scripts/controllers/ens/ens.js", + "app/scripts/controllers/ens/index.js", + "app/scripts/controllers/ens/index.test.js", + "app/scripts/controllers/incoming-transactions.js", + "app/scripts/controllers/incoming-transactions.test.js", + "app/scripts/controllers/metametrics.js", + "app/scripts/controllers/metametrics.test.js", + "app/scripts/controllers/network/createInfuraClient.js", + "app/scripts/controllers/network/createJsonRpcClient.js", + "app/scripts/controllers/network/createMetamaskMiddleware.js", + "app/scripts/controllers/network/index.js", + "app/scripts/controllers/network/middleware/pending.js", + "app/scripts/controllers/network/network-controller.test.js", + "app/scripts/controllers/network/network.js", + "app/scripts/controllers/network/pending-middleware.test.js", + "app/scripts/controllers/network/util.js", + "app/scripts/controllers/network/util.test.js", + "app/scripts/controllers/onboarding.js", + "app/scripts/controllers/permissions/background-api.js", + "app/scripts/controllers/permissions/background-api.test.js", + "app/scripts/controllers/permissions/caveat-mutators.js", + "app/scripts/controllers/permissions/caveat-mutators.test.js", + "app/scripts/controllers/permissions/enums.js", + "app/scripts/controllers/permissions/flask/snap-permissions.js", + "app/scripts/controllers/permissions/flask/snap-permissions.test.js", + "app/scripts/controllers/permissions/index.js", + "app/scripts/controllers/permissions/permission-log.js", + "app/scripts/controllers/permissions/permission-log.test.js", + "app/scripts/controllers/permissions/selectors.js", + "app/scripts/controllers/permissions/selectors.test.js", + "app/scripts/controllers/permissions/specifications.js", + "app/scripts/controllers/permissions/specifications.test.js", + "app/scripts/controllers/preferences.js", + "app/scripts/controllers/preferences.test.js", + "app/scripts/controllers/swaps.js", + "app/scripts/controllers/swaps.test.js", + "app/scripts/controllers/threebox.js", + "app/scripts/controllers/transactions/index.js", + "app/scripts/controllers/transactions/index.test.js", + "app/scripts/controllers/transactions/lib/tx-state-history-helpers.js", + "app/scripts/controllers/transactions/lib/tx-state-history-helpers.test.js", + "app/scripts/controllers/transactions/lib/util.js", + "app/scripts/controllers/transactions/lib/util.test.js", + "app/scripts/controllers/transactions/pending-tx-tracker.js", + "app/scripts/controllers/transactions/pending-tx-tracker.test.js", + "app/scripts/controllers/transactions/tx-gas-utils.js", + "app/scripts/controllers/transactions/tx-gas-utils.test.js", + "app/scripts/controllers/transactions/tx-state-manager.js", + "app/scripts/controllers/transactions/tx-state-manager.test.js", + "app/scripts/detect-multiple-instances.js", + "app/scripts/detect-multiple-instances.test.js", + "app/scripts/disable-console.js", + "app/scripts/first-time-state.js", + "app/scripts/inpage.js", + "app/scripts/lib/ComposableObservableStore.js", + "app/scripts/lib/ComposableObservableStore.test.js", + "app/scripts/lib/account-tracker.js", + "app/scripts/lib/buy-url.js", + "app/scripts/lib/buy-url.test.js", + "app/scripts/lib/cleanErrorStack.js", + "app/scripts/lib/cleanErrorStack.test.js", + "app/scripts/lib/createLoggerMiddleware.js", + "app/scripts/lib/createMetaRPCHandler.js", + "app/scripts/lib/createMetaRPCHandler.test.js", + "app/scripts/lib/createOnboardingMiddleware.js", + "app/scripts/lib/createOriginMiddleware.js", + "app/scripts/lib/createRPCMethodTrackingMiddleware.js", + "app/scripts/lib/createRPCMethodTrackingMiddleware.test.js", + "app/scripts/lib/createStreamSink.js", + "app/scripts/lib/createTabIdMiddleware.js", + "app/scripts/lib/decrypt-message-manager.js", + "app/scripts/lib/encryption-public-key-manager.js", + "app/scripts/lib/ens-ipfs/contracts/registry.js", + "app/scripts/lib/ens-ipfs/contracts/resolver.js", + "app/scripts/lib/ens-ipfs/resolver.js", + "app/scripts/lib/ens-ipfs/setup.js", + "app/scripts/lib/extractEthjsErrorMessage.js", + "app/scripts/lib/get-first-preferred-lang-code.js", + "app/scripts/lib/getObjStructure.js", + "app/scripts/lib/local-store.js", + "app/scripts/lib/message-manager.js", + "app/scripts/lib/message-manager.test.js", + "app/scripts/lib/metaRPCClientFactory.js", + "app/scripts/lib/metaRPCClientFactory.test.js", + "app/scripts/lib/migrator/index.js", + "app/scripts/lib/migrator/index.test.js", + "app/scripts/lib/network-store.js", + "app/scripts/lib/notification-manager.js", + "app/scripts/lib/personal-message-manager.js", + "app/scripts/lib/personal-message-manager.test.js", + "app/scripts/lib/rpc-method-middleware/createMethodMiddleware.js", + "app/scripts/lib/rpc-method-middleware/handlers/add-ethereum-chain.js", + "app/scripts/lib/rpc-method-middleware/handlers/eth-accounts.js", + "app/scripts/lib/rpc-method-middleware/handlers/get-provider-state.js", + "app/scripts/lib/rpc-method-middleware/handlers/index.js", + "app/scripts/lib/rpc-method-middleware/handlers/log-web3-shim-usage.js", + "app/scripts/lib/rpc-method-middleware/handlers/request-accounts.js", + "app/scripts/lib/rpc-method-middleware/handlers/send-metadata.js", + "app/scripts/lib/rpc-method-middleware/handlers/switch-ethereum-chain.js", + "app/scripts/lib/rpc-method-middleware/handlers/watch-asset.js", + "app/scripts/lib/rpc-method-middleware/index.js", + "app/scripts/lib/seed-phrase-verifier.js", + "app/scripts/lib/seed-phrase-verifier.test.js", + "app/scripts/lib/segment.js", + "app/scripts/lib/setupSentry.js", + "app/scripts/lib/stream-utils.js", + "app/scripts/lib/typed-message-manager.js", + "app/scripts/lib/typed-message-manager.test.js", + "app/scripts/lib/util.js", + "app/scripts/lib/util.test.js", + "app/scripts/lockdown-more.js", + "app/scripts/lockdown-run.js", + "app/scripts/metamask-controller.js", + "app/scripts/metamask-controller.test.js", + "app/scripts/migrations/002.js", + "app/scripts/migrations/003.js", + "app/scripts/migrations/004.js", + "app/scripts/migrations/005.js", + "app/scripts/migrations/006.js", + "app/scripts/migrations/007.js", + "app/scripts/migrations/008.js", + "app/scripts/migrations/009.js", + "app/scripts/migrations/010.js", + "app/scripts/migrations/011.js", + "app/scripts/migrations/012.js", + "app/scripts/migrations/013.js", + "app/scripts/migrations/014.js", + "app/scripts/migrations/015.js", + "app/scripts/migrations/016.js", + "app/scripts/migrations/017.js", + "app/scripts/migrations/018.js", + "app/scripts/migrations/019.js", + "app/scripts/migrations/020.js", + "app/scripts/migrations/021.js", + "app/scripts/migrations/021.test.js", + "app/scripts/migrations/022.js", + "app/scripts/migrations/022.test.js", + "app/scripts/migrations/023.js", + "app/scripts/migrations/023.test.js", + "app/scripts/migrations/024.js", + "app/scripts/migrations/024.test.js", + "app/scripts/migrations/025.js", + "app/scripts/migrations/025.test.js", + "app/scripts/migrations/026.js", + "app/scripts/migrations/026.test.js", + "app/scripts/migrations/027.js", + "app/scripts/migrations/027.test.js", + "app/scripts/migrations/028.js", + "app/scripts/migrations/028.test.js", + "app/scripts/migrations/029.js", + "app/scripts/migrations/029.test.js", + "app/scripts/migrations/030.js", + "app/scripts/migrations/030.test.js", + "app/scripts/migrations/031.js", + "app/scripts/migrations/031.test.js", + "app/scripts/migrations/032.js", + "app/scripts/migrations/033.js", + "app/scripts/migrations/033.test.js", + "app/scripts/migrations/034.js", + "app/scripts/migrations/034.test.js", + "app/scripts/migrations/035.js", + "app/scripts/migrations/035.test.js", + "app/scripts/migrations/036.js", + "app/scripts/migrations/036.test.js", + "app/scripts/migrations/037.js", + "app/scripts/migrations/037.test.js", + "app/scripts/migrations/038.js", + "app/scripts/migrations/038.test.js", + "app/scripts/migrations/039.js", + "app/scripts/migrations/039.test.js", + "app/scripts/migrations/040.js", + "app/scripts/migrations/040.test.js", + "app/scripts/migrations/041.js", + "app/scripts/migrations/041.test.js", + "app/scripts/migrations/042.js", + "app/scripts/migrations/042.test.js", + "app/scripts/migrations/043.js", + "app/scripts/migrations/043.test.js", + "app/scripts/migrations/044.js", + "app/scripts/migrations/044.test.js", + "app/scripts/migrations/045.js", + "app/scripts/migrations/045.test.js", + "app/scripts/migrations/046.js", + "app/scripts/migrations/046.test.js", + "app/scripts/migrations/047.js", + "app/scripts/migrations/047.test.js", + "app/scripts/migrations/048.js", + "app/scripts/migrations/048.test.js", + "app/scripts/migrations/049.js", + "app/scripts/migrations/049.test.js", + "app/scripts/migrations/050.js", + "app/scripts/migrations/050.test.js", + "app/scripts/migrations/051.js", + "app/scripts/migrations/051.test.js", + "app/scripts/migrations/052.js", + "app/scripts/migrations/052.test.js", + "app/scripts/migrations/053.js", + "app/scripts/migrations/053.test.js", + "app/scripts/migrations/054.js", + "app/scripts/migrations/054.test.js", + "app/scripts/migrations/055.js", + "app/scripts/migrations/055.test.js", + "app/scripts/migrations/056.js", + "app/scripts/migrations/056.test.js", + "app/scripts/migrations/057.js", + "app/scripts/migrations/057.test.js", + "app/scripts/migrations/058.js", + "app/scripts/migrations/058.test.js", + "app/scripts/migrations/059.js", + "app/scripts/migrations/059.test.js", + "app/scripts/migrations/060.js", + "app/scripts/migrations/060.test.js", + "app/scripts/migrations/061.js", + "app/scripts/migrations/061.test.js", + "app/scripts/migrations/062.js", + "app/scripts/migrations/062.test.js", + "app/scripts/migrations/063.js", + "app/scripts/migrations/063.test.js", + "app/scripts/migrations/064.js", + "app/scripts/migrations/064.test.js", + "app/scripts/migrations/065.js", + "app/scripts/migrations/065.test.js", + "app/scripts/migrations/066.js", + "app/scripts/migrations/066.test.js", + "app/scripts/migrations/067.js", + "app/scripts/migrations/067.test.js", + "app/scripts/migrations/068.js", + "app/scripts/migrations/068.test.js", + "app/scripts/migrations/069.js", + "app/scripts/migrations/069.test.js", + "app/scripts/migrations/070.js", + "app/scripts/migrations/070.test.js", + "app/scripts/migrations/071.js", + "app/scripts/migrations/071.test.js", + "app/scripts/migrations/072.js", + "app/scripts/migrations/072.test.js", + "app/scripts/migrations/073.js", + "app/scripts/migrations/073.test.js", + "app/scripts/migrations/fail-tx.js", + "app/scripts/migrations/index.js", + "app/scripts/migrations/migrations.test.js", + "app/scripts/migrations/template.js", + "app/scripts/migrations/template.test.js", + "app/scripts/platforms/extension.js", + "app/scripts/platforms/extension.test.js", + "app/scripts/sentry-install.js", + "app/scripts/ui.js", + "development/build/constants.js", + "development/build/display.js", + "development/build/etc.js", + "development/build/index.js", + "development/build/manifest.js", + "development/build/sass-compiler.js", + "development/build/scripts.js", + "development/build/static.js", + "development/build/styles.js", + "development/build/task.js", + "development/build/transforms/remove-fenced-code.js", + "development/build/transforms/remove-fenced-code.test.js", + "development/build/transforms/utils.js", + "development/build/transforms/utils.test.js", + "development/build/utils.js", + "development/lib/build-type.js", + "development/lib/get-version.js", + "development/stream-flat-map.js", + "shared/constants/alerts.js", + "shared/constants/app.js", + "shared/constants/gas.js", + "shared/constants/hardware-wallets.js", + "shared/constants/labels.js", + "shared/constants/metametrics.js", + "shared/constants/network.js", + "shared/constants/permissions.js", + "shared/constants/permissions.test.js", + "shared/constants/phishing.js", + "shared/constants/smartTransactions.js", + "shared/constants/swaps.js", + "shared/constants/time.js", + "shared/constants/transaction.js", + "shared/modules/buffer-utils.js", + "shared/modules/buffer-utils.test.js", + "shared/modules/contract-utils.js", + "shared/modules/contract-utils.test.js", + "shared/modules/conversion.utils.js", + "shared/modules/conversion.utils.test.js", + "shared/modules/fetch-with-timeout.js", + "shared/modules/fetch-with-timeout.test.js", + "shared/modules/gas.utils.js", + "shared/modules/gas.utils.test.js", + "shared/modules/hexstring-utils.js", + "shared/modules/hexstring-utils.test.js", + "shared/modules/mv3.utils.js", + "shared/modules/network.utils.js", + "shared/modules/object.utils.js", + "shared/modules/random-id.js", + "shared/modules/rpc.utils.js", + "shared/modules/siwe.js", + "shared/modules/string-utils.js", + "shared/modules/swaps.utils.js", + "shared/modules/transaction.utils.js", + "shared/modules/transaction.utils.test.js", + "shared/notifications/index.js", + "test/helpers/protect-intrinsics-helpers.js", + "test/jest/background.js", + "test/jest/constants.js", + "test/jest/index.js", + "test/jest/mock-store.js", + "test/jest/mocks.js", + "test/jest/rendering.js", + "test/lib/createTxMeta.js", + "test/lib/mock-encryptor.js", + "test/lib/render-helpers.js", + "test/lib/tick.js", + "test/lib/wait-until-called.js", + "test/mocks/permissions.js", + "test/stub/provider.js", + "test/stub/tx-meta-stub.js", + "test/unit-global/balance-formatter.test.js", + "test/unit-global/protect-intrinsics.test.js", + "ui/components/app/account-list-item/account-list-item-component.test.js", + "ui/components/app/account-list-item/account-list-item.js", + "ui/components/app/account-list-item/account-list-item.stories.js", + "ui/components/app/account-list-item/index.js", + "ui/components/app/account-menu/account-menu.component.js", + "ui/components/app/account-menu/account-menu.container.js", + "ui/components/app/account-menu/account-menu.test.js", + "ui/components/app/account-menu/index.js", + "ui/components/app/account-menu/keyring-label.js", + "ui/components/app/add-network/add-network.js", + "ui/components/app/add-network/add-network.stories.js", + "ui/components/app/add-network/add-network.test.js", + "ui/components/app/advanced-gas-controls/advanced-gas-controls.component.js", + "ui/components/app/advanced-gas-controls/advanced-gas-controls.stories.js", + "ui/components/app/advanced-gas-controls/advanced-gas-controls.test.js", + "ui/components/app/advanced-gas-controls/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-defaults/advanced-gas-fee-defaults.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-defaults/advanced-gas-fee-defaults.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-defaults/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/advanced-gas-fee-gas-limit.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-gas-limit/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-input-subtext/advanced-gas-fee-input-subtext.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-input-subtext/advanced-gas-fee-input-subtext.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-input-subtext/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/advanced-gas-fee-inputs.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/base-fee-input.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/base-fee-input/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/index.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-inputs/priority-fee-input/priority-fee-input.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-popover.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-popover.test.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-save/advanced-gas-fee-save.js", + "ui/components/app/advanced-gas-fee-popover/advanced-gas-fee-save/index.js", + "ui/components/app/advanced-gas-fee-popover/context/advancedGasFeePopover.js", + "ui/components/app/advanced-gas-fee-popover/context/index.js", + "ui/components/app/advanced-gas-fee-popover/index.js", + "ui/components/app/alerts/alerts.js", + "ui/components/app/alerts/index.js", + "ui/components/app/alerts/invalid-custom-network-alert/index.js", + "ui/components/app/alerts/invalid-custom-network-alert/invalid-custom-network-alert.js", + "ui/components/app/alerts/unconnected-account-alert/index.js", + "ui/components/app/alerts/unconnected-account-alert/unconnected-account-alert.js", + "ui/components/app/alerts/unconnected-account-alert/unconnected-account-alert.test.js", + "ui/components/app/app-header/app-header.component.js", + "ui/components/app/app-header/app-header.container.js", + "ui/components/app/app-header/app-header.stories.js", + "ui/components/app/app-header/app-header.test.js", + "ui/components/app/app-header/index.js", + "ui/components/app/app-loading-spinner/app-loading-spinner.js", + "ui/components/app/app-loading-spinner/app-loading-spinner.test.js", + "ui/components/app/app-loading-spinner/index.js", + "ui/components/app/asset-list-item/asset-list-item.js", + "ui/components/app/asset-list-item/index.js", + "ui/components/app/asset-list/asset-list.js", + "ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.js", + "ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.stories.js", + "ui/components/app/asset-list/detetcted-tokens-link/detected-tokens-link.test.js", + "ui/components/app/asset-list/index.js", + "ui/components/app/cancel-button/cancel-button.js", + "ui/components/app/cancel-button/index.js", + "ui/components/app/cancel-speedup-popover/cancel-speedup-popover.js", + "ui/components/app/cancel-speedup-popover/cancel-speedup-popover.test.js", + "ui/components/app/cancel-speedup-popover/index.js", + "ui/components/app/collectible-default-image/collectible-default-image.js", + "ui/components/app/collectible-default-image/collectible-default-image.stories.js", + "ui/components/app/collectible-default-image/index.js", + "ui/components/app/collectible-details/collectible-details.js", + "ui/components/app/collectible-details/collectible-details.stories.js", + "ui/components/app/collectible-options/collectible-options.js", + "ui/components/app/collectibles-detection-notice/collectibles-detection-notice.js", + "ui/components/app/collectibles-detection-notice/index.js", + "ui/components/app/collectibles-items/collectibles-items.js", + "ui/components/app/collectibles-items/index.js", + "ui/components/app/collectibles-tab/collectibles-tab.js", + "ui/components/app/collectibles-tab/collectibles-tab.test.js", + "ui/components/app/collectibles-tab/index.js", + "ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.component.js", + "ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.component.test.js", + "ui/components/app/confirm-page-container/confirm-detail-row/confirm-detail-row.stories.js", + "ui/components/app/confirm-page-container/confirm-detail-row/index.js", + "ui/components/app/confirm-page-container/confirm-page-container-container.test.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-content.component.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-content.component.test.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-summary/confirm-page-container-summary.component.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-summary/index.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-warning/confirm-page-container-warning.component.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-warning/confirm-page-container-warning.stories.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/confirm-page-container-warning/index.js", + "ui/components/app/confirm-page-container/confirm-page-container-content/index.js", + "ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.component.js", + "ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.component.test.js", + "ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.stories.js", + "ui/components/app/confirm-page-container/confirm-page-container-header/index.js", + "ui/components/app/confirm-page-container/confirm-page-container-navigation/confirm-page-container-navigation.component.js", + "ui/components/app/confirm-page-container/confirm-page-container-navigation/index.js", + "ui/components/app/confirm-page-container/confirm-page-container.component.js", + "ui/components/app/confirm-page-container/confirm-page-container.container.js", + "ui/components/app/confirm-page-container/enableEIP1559V2-notice/enableEIP1559V2-notice.js", + "ui/components/app/confirm-page-container/enableEIP1559V2-notice/index.js", + "ui/components/app/confirm-page-container/index.js", + "ui/components/app/connected-accounts-list/connected-accounts-list-item/connected-accounts-list-item.component.js", + "ui/components/app/connected-accounts-list/connected-accounts-list-item/index.js", + "ui/components/app/connected-accounts-list/connected-accounts-list-options/connected-accounts-list-options.component.js", + "ui/components/app/connected-accounts-list/connected-accounts-list-options/index.js", + "ui/components/app/connected-accounts-list/connected-accounts-list.component.js", + "ui/components/app/connected-accounts-list/connected-accounts-list.stories.js", + "ui/components/app/connected-accounts-list/index.js", + "ui/components/app/connected-accounts-permissions/connected-accounts-permissions.js", + "ui/components/app/connected-accounts-permissions/index.js", + "ui/components/app/connected-sites-list/connected-sites-list.component.js", + "ui/components/app/connected-sites-list/index.js", + "ui/components/app/connected-status-indicator/connected-status-indicator.js", + "ui/components/app/connected-status-indicator/index.js", + "ui/components/app/contact-list/contact-list.component.js", + "ui/components/app/contact-list/contact-list.test.js", + "ui/components/app/contact-list/index.js", + "ui/components/app/contact-list/recipient-group/recipient-group.component.js", + "ui/components/app/create-new-vault/create-new-vault.js", + "ui/components/app/create-new-vault/create-new-vault.stories.js", + "ui/components/app/create-new-vault/index.js", + "ui/components/app/currency-input/currency-input.js", + "ui/components/app/currency-input/currency-input.stories.js", + "ui/components/app/currency-input/currency-input.test.js", + "ui/components/app/currency-input/index.js", + "ui/components/app/detected-token/detected-token-address/detected-token-address.js", + "ui/components/app/detected-token/detected-token-address/detected-token-address.stories.js", + "ui/components/app/detected-token/detected-token-address/detected-token-address.test.js", + "ui/components/app/detected-token/detected-token-aggregators/detected-token-aggregators.js", + "ui/components/app/detected-token/detected-token-aggregators/detected-token-aggregators.stories.js", + "ui/components/app/detected-token/detected-token-aggregators/detected-token-aggregators.test.js", + "ui/components/app/detected-token/detected-token-details/detected-token-details.js", + "ui/components/app/detected-token/detected-token-details/detected-token-details.stories.js", + "ui/components/app/detected-token/detected-token-details/detected-token-details.test.js", + "ui/components/app/detected-token/detected-token-ignored-popover/detected-token-ignored-popover.js", + "ui/components/app/detected-token/detected-token-ignored-popover/detected-token-ignored-popover.stories.js", + "ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.js", + "ui/components/app/detected-token/detected-token-selection-popover/detected-token-selection-popover.stories.js", + "ui/components/app/detected-token/detected-token-values/detected-token-values.js", + "ui/components/app/detected-token/detected-token-values/detected-token-values.stories.js", + "ui/components/app/detected-token/detected-token-values/detected-token-values.test.js", + "ui/components/app/detected-token/detected-token.js", + "ui/components/app/detected-token/detected-token.test.js", + "ui/components/app/dropdowns/dropdown.js", + "ui/components/app/dropdowns/dropdown.test.js", + "ui/components/app/dropdowns/network-dropdown.js", + "ui/components/app/dropdowns/network-dropdown.test.js", + "ui/components/app/edit-gas-display-education/edit-gas-display-education.component.js", + "ui/components/app/edit-gas-display-education/edit-gas-display-education.stories.js", + "ui/components/app/edit-gas-display-education/index.js", + "ui/components/app/edit-gas-display/edit-gas-display.component.js", + "ui/components/app/edit-gas-display/edit-gas-display.stories.js", + "ui/components/app/edit-gas-display/edit-gas-display.test.js", + "ui/components/app/edit-gas-display/index.js", + "ui/components/app/edit-gas-fee-button/edit-gas-fee-button.js", + "ui/components/app/edit-gas-fee-button/edit-gas-fee-button.test.js", + "ui/components/app/edit-gas-fee-button/index.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-fee-popover.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-fee-popover.test.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-item/edit-gas-item.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-item/edit-gas-item.test.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-item/index.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-item/useCustomTimeEstimate.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-item/useGasItemFeeDetails.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-tooltip/edit-gas-tooltip.js", + "ui/components/app/edit-gas-fee-popover/edit-gas-tooltip/edit-gas-tooltip.test.js", + "ui/components/app/edit-gas-fee-popover/index.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/index.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/network-statistics.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/network-statistics.test.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/status-slider/index.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/status-slider/status-slider.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/status-slider/status-slider.test.js", + "ui/components/app/edit-gas-fee-popover/network-statistics/tooltips.js", + "ui/components/app/edit-gas-popover/edit-gas-popover.component.js", + "ui/components/app/edit-gas-popover/edit-gas-popover.stories.js", + "ui/components/app/edit-gas-popover/index.js", + "ui/components/app/flask/experimental-area/experimental-area.js", + "ui/components/app/flask/experimental-area/experimental-area.stories.js", + "ui/components/app/flask/experimental-area/index.js", + "ui/components/app/flask/snap-install-warning/index.js", + "ui/components/app/flask/snap-install-warning/snap-install-warning.js", + "ui/components/app/flask/snap-remove-warning/index.js", + "ui/components/app/flask/snap-remove-warning/snap-remove-warning.js", + "ui/components/app/flask/snap-settings-card/index.js", + "ui/components/app/flask/snap-settings-card/snap-settings-card.js", + "ui/components/app/flask/snap-settings-card/snap-settings-card.stories.js", + "ui/components/app/flask/snap-settings-card/snap-settings-card.test.js", + "ui/components/app/flask/snaps-authorship-pill/index.js", + "ui/components/app/flask/snaps-authorship-pill/snaps-authorship-pill.js", + "ui/components/app/flask/snaps-authorship-pill/snaps-authorship-pill.stories.js", + "ui/components/app/flask/update-snap-permission-list/index.js", + "ui/components/app/flask/update-snap-permission-list/update-snap-permission-list.js", + "ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.component.js", + "ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.container.js", + "ui/components/app/gas-customization/advanced-gas-inputs/advanced-gas-inputs.test.js", + "ui/components/app/gas-customization/advanced-gas-inputs/index.js", + "ui/components/app/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content-component.test.js", + "ui/components/app/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js", + "ui/components/app/gas-customization/gas-modal-page-container/advanced-tab-content/index.js", + "ui/components/app/gas-customization/gas-modal-page-container/basic-tab-content/basic-tab-content-component.test.js", + "ui/components/app/gas-customization/gas-modal-page-container/basic-tab-content/basic-tab-content.component.js", + "ui/components/app/gas-customization/gas-modal-page-container/basic-tab-content/index.js", + "ui/components/app/gas-customization/gas-modal-page-container/gas-modal-page-container-component.test.js", + "ui/components/app/gas-customization/gas-modal-page-container/gas-modal-page-container-container.test.js", + "ui/components/app/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js", + "ui/components/app/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js", + "ui/components/app/gas-customization/gas-modal-page-container/index.js", + "ui/components/app/gas-customization/gas-price-button-group/gas-price-button-group-component.test.js", + "ui/components/app/gas-customization/gas-price-button-group/gas-price-button-group.component.js", + "ui/components/app/gas-customization/gas-price-button-group/gas-price-button-group.stories.js", + "ui/components/app/gas-customization/gas-price-button-group/index.js", + "ui/components/app/gas-customization/gas-slider/gas-slider.component.js", + "ui/components/app/gas-customization/gas-slider/gas-slider.stories.js", + "ui/components/app/gas-customization/gas-slider/index.js", + "ui/components/app/gas-details-item/gas-details-item-title/gas-details-item-title.js", + "ui/components/app/gas-details-item/gas-details-item-title/gas-details-item-title.test.js", + "ui/components/app/gas-details-item/gas-details-item-title/index.js", + "ui/components/app/gas-details-item/gas-details-item.js", + "ui/components/app/gas-details-item/gas-details-item.test.js", + "ui/components/app/gas-details-item/index.js", + "ui/components/app/gas-timing/gas-timing.component.js", + "ui/components/app/gas-timing/gas-timing.component.test.js", + "ui/components/app/gas-timing/index.js", + "ui/components/app/hold-to-reveal-button/hold-to-reveal-button.js", + "ui/components/app/hold-to-reveal-button/hold-to-reveal-button.stories.js", + "ui/components/app/hold-to-reveal-button/hold-to-reveal-button.test.js", + "ui/components/app/home-notification/home-notification.component.js", + "ui/components/app/home-notification/home-notification.stories.js", + "ui/components/app/home-notification/index.js", + "ui/components/app/import-token-link/import-token-link.component.js", + "ui/components/app/import-token-link/index.js", + "ui/components/app/info-box/index.js", + "ui/components/app/info-box/info-box.component.js", + "ui/components/app/info-box/info-box.stories.js", + "ui/components/app/info-box/info-box.test.js", + "ui/components/app/ledger-instruction-field/index.js", + "ui/components/app/ledger-instruction-field/ledger-instruction-field.js", + "ui/components/app/loading-network-screen/index.js", + "ui/components/app/loading-network-screen/loading-network-screen.component.js", + "ui/components/app/loading-network-screen/loading-network-screen.container.js", + "ui/components/app/menu-bar/account-options-menu.js", + "ui/components/app/menu-bar/accoutn-options-menu.stories.js", + "ui/components/app/menu-bar/index.js", + "ui/components/app/menu-bar/menu-bar.js", + "ui/components/app/menu-bar/menu-bar.test.js", + "ui/components/app/menu-droppo.js", + "ui/components/app/metamask-template-renderer/index.js", + "ui/components/app/metamask-template-renderer/metamask-template-renderer.js", + "ui/components/app/metamask-template-renderer/metamask-template-renderer.stories.js", + "ui/components/app/metamask-template-renderer/safe-component-list.js", + "ui/components/app/metamask-translation/index.js", + "ui/components/app/metamask-translation/metamask-translation.js", + "ui/components/app/metamask-translation/metamask-translation.stories.js", + "ui/components/app/modal/index.js", + "ui/components/app/modal/modal-content/index.js", + "ui/components/app/modal/modal-content/modal-content.component.js", + "ui/components/app/modal/modal-content/modal-content.component.test.js", + "ui/components/app/modal/modal.component.js", + "ui/components/app/modal/modal.component.test.js", + "ui/components/app/modals/account-details-modal/account-details-modal.component.js", + "ui/components/app/modals/account-details-modal/account-details-modal.container.js", + "ui/components/app/modals/account-details-modal/account-details-modal.test.js", + "ui/components/app/modals/account-details-modal/index.js", + "ui/components/app/modals/account-modal-container/account-modal-container.component.js", + "ui/components/app/modals/account-modal-container/account-modal-container.container.js", + "ui/components/app/modals/account-modal-container/index.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction-gas-fee/cancel-transaction-gas-fee.component.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction-gas-fee/cancel-transaction-gas-fee.component.test.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction-gas-fee/index.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction.component.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction.component.test.js", + "ui/components/app/modals/cancel-transaction/cancel-transaction.container.js", + "ui/components/app/modals/cancel-transaction/index.js", + "ui/components/app/modals/confirm-delete-network/confirm-delete-network.component.js", + "ui/components/app/modals/confirm-delete-network/confirm-delete-network.container.js", + "ui/components/app/modals/confirm-delete-network/confirm-delete-network.test.js", + "ui/components/app/modals/confirm-delete-network/index.js", + "ui/components/app/modals/confirm-remove-account/confirm-remove-account.component.js", + "ui/components/app/modals/confirm-remove-account/confirm-remove-account.container.js", + "ui/components/app/modals/confirm-remove-account/confirm-remove-account.stories.js", + "ui/components/app/modals/confirm-remove-account/confirm-remove-account.test.js", + "ui/components/app/modals/confirm-remove-account/index.js", + "ui/components/app/modals/confirm-reset-account/confirm-reset-account.component.js", + "ui/components/app/modals/confirm-reset-account/confirm-reset-account.container.js", + "ui/components/app/modals/confirm-reset-account/confirm-reset-account.test.js", + "ui/components/app/modals/confirm-reset-account/index.js", + "ui/components/app/modals/convert-token-to-nft-modal/convert-token-to-nft-modal.js", + "ui/components/app/modals/customize-nonce/customize-nonce.component.js", + "ui/components/app/modals/customize-nonce/index.js", + "ui/components/app/modals/deposit-ether-modal/deposit-ether-modal.component.js", + "ui/components/app/modals/deposit-ether-modal/deposit-ether-modal.container.js", + "ui/components/app/modals/deposit-ether-modal/index.js", + "ui/components/app/modals/edit-approval-permission/edit-approval-permission.component.js", + "ui/components/app/modals/edit-approval-permission/edit-approval-permission.container.js", + "ui/components/app/modals/edit-approval-permission/index.js", + "ui/components/app/modals/export-private-key-modal/export-private-key-modal.component.js", + "ui/components/app/modals/export-private-key-modal/export-private-key-modal.container.js", + "ui/components/app/modals/export-private-key-modal/export-private-key-modal.stories.js", + "ui/components/app/modals/export-private-key-modal/index.js", + "ui/components/app/modals/fade-modal.js", + "ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation-modal.js", + "ui/components/app/modals/hide-token-confirmation-modal/hide-token-confirmation.stories.js", + "ui/components/app/modals/hide-token-confirmation-modal/index.js", + "ui/components/app/modals/index.js", + "ui/components/app/modals/metametrics-opt-in-modal/index.js", + "ui/components/app/modals/metametrics-opt-in-modal/metametrics-opt-in-modal.component.js", + "ui/components/app/modals/metametrics-opt-in-modal/metametrics-opt-in-modal.container.js", + "ui/components/app/modals/metametrics-opt-in-modal/metametrics-opt-in-modal.test.js", + "ui/components/app/modals/modal.js", + "ui/components/app/modals/new-account-modal/index.js", + "ui/components/app/modals/new-account-modal/new-account-modal.component.js", + "ui/components/app/modals/new-account-modal/new-account-modal.container.js", + "ui/components/app/modals/new-account-modal/new-account-modal.stories.js", + "ui/components/app/modals/nickname-popovers/index.js", + "ui/components/app/modals/nickname-popovers/nickname-popovers.component.js", + "ui/components/app/modals/qr-scanner/index.js", + "ui/components/app/modals/qr-scanner/qr-scanner.component.js", + "ui/components/app/modals/qr-scanner/qr-scanner.container.js", + "ui/components/app/modals/reject-transactions/index.js", + "ui/components/app/modals/reject-transactions/reject-transactions.component.js", + "ui/components/app/modals/reject-transactions/reject-transactions.container.js", + "ui/components/app/modals/reject-transactions/reject-transactions.test.js", + "ui/components/app/modals/transaction-confirmed/index.js", + "ui/components/app/modals/transaction-confirmed/transaction-confirmed.component.js", + "ui/components/app/modals/transaction-confirmed/transaction-confirmed.container.js", + "ui/components/app/modals/transaction-confirmed/transaction-confirmed.stories.js", + "ui/components/app/modals/transaction-confirmed/transaction-confirmed.test.js", + "ui/components/app/multilayer-fee-message/index.js", + "ui/components/app/multilayer-fee-message/multi-layer-fee-message.js", + "ui/components/app/multiple-notifications/index.js", + "ui/components/app/multiple-notifications/multiple-notifications.component.js", + "ui/components/app/network-display/index.js", + "ui/components/app/network-display/network-display.js", + "ui/components/app/network-display/network-display.stories.js", + "ui/components/app/permission-page-container/index.js", + "ui/components/app/permission-page-container/permission-page-container-content/index.js", + "ui/components/app/permission-page-container/permission-page-container-content/permission-page-container-content.component.js", + "ui/components/app/permission-page-container/permission-page-container.component.js", + "ui/components/app/permission-page-container/permission-page-container.container.js", + "ui/components/app/permissions-connect-footer/index.js", + "ui/components/app/permissions-connect-footer/permissions-connect-footer.component.js", + "ui/components/app/permissions-connect-header/index.js", + "ui/components/app/permissions-connect-header/permissions-connect-header.component.js", + "ui/components/app/permissions-connect-permission-list/index.js", + "ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js", + "ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.stories.js", + "ui/components/app/qr-hardware-popover/base-reader.js", + "ui/components/app/qr-hardware-popover/enhanced-reader.js", + "ui/components/app/qr-hardware-popover/index.js", + "ui/components/app/qr-hardware-popover/qr-hardware-popover.js", + "ui/components/app/qr-hardware-popover/qr-hardware-sign-request/index.js", + "ui/components/app/qr-hardware-popover/qr-hardware-sign-request/player.js", + "ui/components/app/qr-hardware-popover/qr-hardware-sign-request/qr-hardware-sign-request.component.js", + "ui/components/app/qr-hardware-popover/qr-hardware-sign-request/reader.js", + "ui/components/app/qr-hardware-popover/qr-hardware-wallet-importer/index.js", + "ui/components/app/qr-hardware-popover/qr-hardware-wallet-importer/qr-hardware-wallet-importer.component.js", + "ui/components/app/recovery-phrase-reminder/index.js", + "ui/components/app/recovery-phrase-reminder/recovery-phrase-reminder.js", + "ui/components/app/selected-account/index.js", + "ui/components/app/selected-account/selected-account-component.test.js", + "ui/components/app/selected-account/selected-account.component.js", + "ui/components/app/selected-account/selected-account.container.js", + "ui/components/app/signature-request-original/index.js", + "ui/components/app/signature-request-original/signature-request-original.component.js", + "ui/components/app/signature-request-original/signature-request-original.container.js", + "ui/components/app/signature-request-original/signature-request-original.stories.js", + "ui/components/app/signature-request-siwe/index.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-header/index.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-header/signature-request-siwe-header.stories.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-message/index.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-message/signature-request-siwe-message.js", + "ui/components/app/signature-request-siwe/signature-request-siwe-message/signature-request-siwe-message.stories.js", + "ui/components/app/signature-request-siwe/signature-request-siwe.js", + "ui/components/app/signature-request-siwe/signature-request-siwe.stories.js", + "ui/components/app/signature-request/index.js", + "ui/components/app/signature-request/signature-request-footer/index.js", + "ui/components/app/signature-request/signature-request-footer/signature-request-footer.component.js", + "ui/components/app/signature-request/signature-request-header/index.js", + "ui/components/app/signature-request/signature-request-header/signature-request-header.component.js", + "ui/components/app/signature-request/signature-request-header/signature-request-header.stories.js", + "ui/components/app/signature-request/signature-request-message/index.js", + "ui/components/app/signature-request/signature-request-message/signature-request-message.component.js", + "ui/components/app/signature-request/signature-request.component.js", + "ui/components/app/signature-request/signature-request.component.test.js", + "ui/components/app/signature-request/signature-request.container.js", + "ui/components/app/signature-request/signature-request.container.test.js", + "ui/components/app/signature-request/signature-request.stories.js", + "ui/components/app/srp-input/index.js", + "ui/components/app/srp-input/parse-secret-recovery-phrase.js", + "ui/components/app/srp-input/parse-secret-recovery-phrase.test.js", + "ui/components/app/srp-input/srp-input.js", + "ui/components/app/srp-input/srp-input.stories.js", + "ui/components/app/srp-input/srp-input.test.js", + "ui/components/app/step-progress-bar/index.js", + "ui/components/app/step-progress-bar/step-progress-bar.js", + "ui/components/app/tab-bar/index.js", + "ui/components/app/tab-bar/tab-bar.js", + "ui/components/app/tab-bar/tab-bar.stories.js", + "ui/components/app/token-cell/index.js", + "ui/components/app/token-cell/token-cell.js", + "ui/components/app/token-cell/token-cell.test.js", + "ui/components/app/token-list-display/index.js", + "ui/components/app/token-list-display/token-list-display.js", + "ui/components/app/token-list/index.js", + "ui/components/app/token-list/token-list.js", + "ui/components/app/transaction-activity-log/index.js", + "ui/components/app/transaction-activity-log/transaction-activity-log-icon/index.js", + "ui/components/app/transaction-activity-log/transaction-activity-log-icon/transaction-activity-log-icon.component.js", + "ui/components/app/transaction-activity-log/transaction-activity-log-icon/transaction-activity-log-icon.stories.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.component.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.component.test.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.constants.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.container.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.container.test.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.util.js", + "ui/components/app/transaction-activity-log/transaction-activity-log.util.test.js", + "ui/components/app/transaction-breakdown/index.js", + "ui/components/app/transaction-breakdown/transaction-breakdown-row/index.js", + "ui/components/app/transaction-breakdown/transaction-breakdown-row/transaction-breakdown-row.component.js", + "ui/components/app/transaction-breakdown/transaction-breakdown-row/transaction-breakdown-row.component.test.js", + "ui/components/app/transaction-breakdown/transaction-breakdown.component.js", + "ui/components/app/transaction-breakdown/transaction-breakdown.container.js", + "ui/components/app/transaction-breakdown/transaction-breakdown.test.js", + "ui/components/app/transaction-decoding/components/decoding/address/address.component.js", + "ui/components/app/transaction-decoding/components/decoding/address/index.js", + "ui/components/app/transaction-decoding/components/ui/accreditation/accreditation.component.js", + "ui/components/app/transaction-decoding/components/ui/accreditation/index.js", + "ui/components/app/transaction-decoding/components/ui/copy-raw-data/copy-raw-data.component.js", + "ui/components/app/transaction-decoding/components/ui/copy-raw-data/index.js", + "ui/components/app/transaction-decoding/constants.js", + "ui/components/app/transaction-decoding/index.js", + "ui/components/app/transaction-decoding/transaction-decoding.component.js", + "ui/components/app/transaction-decoding/transaction-decoding.util.js", + "ui/components/app/transaction-detail-item/index.js", + "ui/components/app/transaction-detail-item/transaction-detail-item.component.js", + "ui/components/app/transaction-detail-item/transaction-detail-item.stories.js", + "ui/components/app/transaction-detail/index.js", + "ui/components/app/transaction-detail/transaction-detail.component.js", + "ui/components/app/transaction-detail/transaction-detail.component.test.js", + "ui/components/app/transaction-detail/transaction-detail.stories.js", + "ui/components/app/transaction-icon/index.js", + "ui/components/app/transaction-icon/transaction-icon.js", + "ui/components/app/transaction-list-item-details/index.js", + "ui/components/app/transaction-list-item-details/transaction-list-item-details.component.js", + "ui/components/app/transaction-list-item-details/transaction-list-item-details.component.test.js", + "ui/components/app/transaction-list-item-details/transaction-list-item-details.container.js", + "ui/components/app/transaction-list-item/index.js", + "ui/components/app/transaction-list-item/smart-transaction-list-item.component.js", + "ui/components/app/transaction-list-item/transaction-list-item.component.js", + "ui/components/app/transaction-list-item/transaction-list-item.component.test.js", + "ui/components/app/transaction-list-item/transaction-list-item.stories.js", + "ui/components/app/transaction-list/index.js", + "ui/components/app/transaction-list/transaction-list.component.js", + "ui/components/app/transaction-list/transaction-list.stories.js", + "ui/components/app/transaction-status/transaction-status.component.js", + "ui/components/app/transaction-status/transaction-status.component.test.js", + "ui/components/app/transaction-total-banner/index.js", + "ui/components/app/transaction-total-banner/transaction-total-banner.component.js", + "ui/components/app/transaction-total-banner/transaction-total-banner.stories.js", + "ui/components/app/transaction-total-banner/transaction-total-banner.stories.test.js", + "ui/components/app/user-preferenced-currency-display/index.js", + "ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.component.js", + "ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.component.test.js", + "ui/components/app/user-preferenced-currency-display/user-preferenced-currency-display.stories.js", + "ui/components/app/user-preferenced-currency-input/index.js", + "ui/components/app/user-preferenced-currency-input/user-preferenced-currency-input.component.js", + "ui/components/app/user-preferenced-currency-input/user-preferenced-currency-input.component.test.js", + "ui/components/app/user-preferenced-currency-input/user-preferenced-currency-input.container.js", + "ui/components/app/user-preferenced-currency-input/user-preferenced-currency-input.container.test.js", + "ui/components/app/user-preferenced-token-input/index.js", + "ui/components/app/user-preferenced-token-input/user-preferenced-token-input.component.js", + "ui/components/app/user-preferenced-token-input/user-preferenced-token-input.component.test.js", + "ui/components/app/user-preferenced-token-input/user-preferenced-token-input.container.js", + "ui/components/app/user-preferenced-token-input/user-preferenced-token-input.container.test.js", + "ui/components/app/wallet-overview/eth-overview.js", + "ui/components/app/wallet-overview/index.js", + "ui/components/app/wallet-overview/token-overview.js", + "ui/components/app/wallet-overview/token-overview.test.js", + "ui/components/app/wallet-overview/wallet-overview.js", + "ui/components/app/whats-new-popup/index.js", + "ui/components/app/whats-new-popup/whats-new-popup.js", + "ui/components/component-library/base-avatar/base-avatar.js", + "ui/components/component-library/base-avatar/base-avatar.stories.js", + "ui/components/component-library/base-avatar/base-avatar.test.js", + "ui/components/ui/account-list/account-list.js", + "ui/components/ui/account-list/account-list.stories.js", + "ui/components/ui/account-list/index.js", + "ui/components/ui/account-mismatch-warning/acccount-mismatch-warning.component.test.js", + "ui/components/ui/account-mismatch-warning/account-mismatch-warning.component.js", + "ui/components/ui/actionable-message/actionable-message.js", + "ui/components/ui/actionable-message/actionable-message.stories.js", + "ui/components/ui/actionable-message/actionable-message.test.js", + "ui/components/ui/actionable-message/index.js", + "ui/components/ui/alert/alert.stories.js", + "ui/components/ui/alert/index.js", + "ui/components/ui/alert/index.test.js", + "ui/components/ui/box/box.js", + "ui/components/ui/box/box.stories.js", + "ui/components/ui/box/box.test.js", + "ui/components/ui/box/index.js", + "ui/components/ui/breadcrumbs/breadcrumbs.component.js", + "ui/components/ui/breadcrumbs/breadcrumbs.component.test.js", + "ui/components/ui/breadcrumbs/breadcrumbs.stories.js", + "ui/components/ui/button-group/button-group-component.test.js", + "ui/components/ui/button-group/button-group.component.js", + "ui/components/ui/button-group/button-group.stories.js", + "ui/components/ui/button-group/index.js", + "ui/components/ui/button/button.component.js", + "ui/components/ui/button/button.stories.js", + "ui/components/ui/button/button.stories.test.js", + "ui/components/ui/button/index.js", + "ui/components/ui/callout/callout.js", + "ui/components/ui/callout/callout.stories.js", + "ui/components/ui/callout/index.js", + "ui/components/ui/card/card.js", + "ui/components/ui/card/card.stories.js", + "ui/components/ui/card/card.test.js", + "ui/components/ui/card/index.js", + "ui/components/ui/check-box/check-box.component.js", + "ui/components/ui/check-box/check-box.stories.js", + "ui/components/ui/check-box/index.js", + "ui/components/ui/chip/chip-with-input.js", + "ui/components/ui/chip/chip.js", + "ui/components/ui/chip/chip.stories.js", + "ui/components/ui/chip/index.js", + "ui/components/ui/color-indicator/color-indicator.js", + "ui/components/ui/color-indicator/color-indicator.stories.js", + "ui/components/ui/color-indicator/index.js", + "ui/components/ui/confusable/confusable.component.js", + "ui/components/ui/confusable/confusable.component.test.js", + "ui/components/ui/confusable/confusable.stories.js", + "ui/components/ui/confusable/index.js", + "ui/components/ui/currency-display/currency-display.component.js", + "ui/components/ui/currency-display/currency-display.component.test.js", + "ui/components/ui/currency-display/index.js", + "ui/components/ui/definition-list/definition-list.js", + "ui/components/ui/definition-list/definition-list.stories.js", + "ui/components/ui/definition-list/index.js", + "ui/components/ui/dialog/dialog.stories.js", + "ui/components/ui/dialog/index.js", + "ui/components/ui/disclosure/disclosure.js", + "ui/components/ui/disclosure/disclosure.stories.js", + "ui/components/ui/disclosure/index.js", + "ui/components/ui/dropdown/dropdown.js", + "ui/components/ui/dropdown/dropdown.stories.js", + "ui/components/ui/dropdown/index.js", + "ui/components/ui/editable-label/editable-label.js", + "ui/components/ui/editable-label/editable-label.stories.js", + "ui/components/ui/editable-label/index.js", + "ui/components/ui/error-message/error-message.component.js", + "ui/components/ui/error-message/error-message.component.test.js", + "ui/components/ui/error-message/error-message.stories.js", + "ui/components/ui/error-message/index.js", + "ui/components/ui/export-text-container/export-text-container.component.js", + "ui/components/ui/export-text-container/export-text.stories.js", + "ui/components/ui/export-text-container/index.js", + "ui/components/ui/form-field/form-field.js", + "ui/components/ui/form-field/form-field.stories.js", + "ui/components/ui/form-field/index.js", + "ui/components/ui/hex-to-decimal/hex-to-decimal.component.js", + "ui/components/ui/hex-to-decimal/hex-to-decimal.component.test.js", + "ui/components/ui/hex-to-decimal/hex-to-decimal.stories.js", + "ui/components/ui/hex-to-decimal/index.js", + "ui/components/ui/icon-border/icon-border.js", + "ui/components/ui/icon-border/index.js", + "ui/components/ui/icon-button/icon-button.js", + "ui/components/ui/icon-button/index.js", + "ui/components/ui/icon-with-fallback/icon-with-fallback.component.js", + "ui/components/ui/icon-with-fallback/icon-with-fallback.stories.js", + "ui/components/ui/icon-with-fallback/icon-with-fallback.test.js", + "ui/components/ui/icon-with-fallback/index.js", + "ui/components/ui/icon/approve-icon.component.js", + "ui/components/ui/icon/copy-icon.component.js", + "ui/components/ui/icon/icon-caret-down.js", + "ui/components/ui/icon/icon-caret-left.js", + "ui/components/ui/icon/icon-caret-right.js", + "ui/components/ui/icon/icon-caret-up.js", + "ui/components/ui/icon/icon-check.js", + "ui/components/ui/icon/icon-cog.js", + "ui/components/ui/icon/icon-connect.js", + "ui/components/ui/icon/icon-eye-slash.js", + "ui/components/ui/icon/icon-eye.js", + "ui/components/ui/icon/icon-import.js", + "ui/components/ui/icon/icon-plus.js", + "ui/components/ui/icon/icon-speech-bubbles.js", + "ui/components/ui/icon/icon-token-search.js", + "ui/components/ui/icon/icon.stories.js", + "ui/components/ui/icon/info-icon-inverted.component.js", + "ui/components/ui/icon/info-icon.component.js", + "ui/components/ui/icon/interaction-icon.component.js", + "ui/components/ui/icon/overview-buy-icon.component.js", + "ui/components/ui/icon/overview-send-icon.component.js", + "ui/components/ui/icon/preloader/index.js", + "ui/components/ui/icon/preloader/preloader-icon.component.js", + "ui/components/ui/icon/receive-icon.component.js", + "ui/components/ui/icon/search-icon.js", + "ui/components/ui/icon/send-icon.component.js", + "ui/components/ui/icon/sign-icon.component.js", + "ui/components/ui/icon/sun-check-icon.component.js", + "ui/components/ui/icon/swap-icon-for-list.component.js", + "ui/components/ui/icon/swap-icon.component.js", + "ui/components/ui/identicon/blockieIdenticon/blockieIdenticon.component.js", + "ui/components/ui/identicon/blockieIdenticon/index.js", + "ui/components/ui/identicon/identicon.component.js", + "ui/components/ui/identicon/identicon.component.test.js", + "ui/components/ui/identicon/identicon.container.js", + "ui/components/ui/identicon/identicon.stories.js", + "ui/components/ui/identicon/index.js", + "ui/components/ui/info-tooltip/index.js", + "ui/components/ui/info-tooltip/info-tooltip-icon.js", + "ui/components/ui/info-tooltip/info-tooltip.js", + "ui/components/ui/info-tooltip/info-tooltip.stories.js", + "ui/components/ui/jazzicon/index.js", + "ui/components/ui/jazzicon/jazzicon.component.js", + "ui/components/ui/list-item/index.js", + "ui/components/ui/list-item/list-item.component.js", + "ui/components/ui/list-item/list-item.component.test.js", + "ui/components/ui/list-item/list-item.stories.js", + "ui/components/ui/loading-heartbeat/index.js", + "ui/components/ui/loading-indicator/index.js", + "ui/components/ui/loading-indicator/loading-indicator.js", + "ui/components/ui/loading-screen/index.js", + "ui/components/ui/loading-screen/loading-screen.component.js", + "ui/components/ui/lock-icon/index.js", + "ui/components/ui/lock-icon/lock-icon.component.js", + "ui/components/ui/logo/logo-coinbasepay.js", + "ui/components/ui/logo/logo-deposit-eth.js", + "ui/components/ui/logo/logo-lattice.js", + "ui/components/ui/logo/logo-ledger.js", + "ui/components/ui/logo/logo-moonpay.js", + "ui/components/ui/logo/logo-moonpay.test.js", + "ui/components/ui/logo/logo-qr-based.js", + "ui/components/ui/logo/logo-transak.js", + "ui/components/ui/logo/logo-trezor.js", + "ui/components/ui/logo/logo-wyre.js", + "ui/components/ui/logo/logo.stories.js", + "ui/components/ui/mascot/index.js", + "ui/components/ui/mascot/mascot.component.js", + "ui/components/ui/mascot/mascot.stories.js", + "ui/components/ui/menu/index.js", + "ui/components/ui/menu/menu-item.js", + "ui/components/ui/menu/menu.js", + "ui/components/ui/menu/menu.stories.js", + "ui/components/ui/metafox-logo/horizontal-logo.js", + "ui/components/ui/metafox-logo/index.js", + "ui/components/ui/metafox-logo/metafox-logo.component.js", + "ui/components/ui/metafox-logo/metafox-logo.component.test.js", + "ui/components/ui/nickname-popover/index.js", + "ui/components/ui/nickname-popover/nickname-popover.component.js", + "ui/components/ui/nickname-popover/nickname-popover.stories.js", + "ui/components/ui/numeric-input/index.js", + "ui/components/ui/numeric-input/numeric-input.component.js", + "ui/components/ui/numeric-input/numeric-input.stories.js", + "ui/components/ui/page-container/index.js", + "ui/components/ui/page-container/page-container-content.component.js", + "ui/components/ui/page-container/page-container-footer/index.js", + "ui/components/ui/page-container/page-container-footer/page-container-footer.component.js", + "ui/components/ui/page-container/page-container-footer/page-container-footer.component.test.js", + "ui/components/ui/page-container/page-container-header/index.js", + "ui/components/ui/page-container/page-container-header/page-container-header.component.js", + "ui/components/ui/page-container/page-container-header/page-container-header.component.test.js", + "ui/components/ui/page-container/page-container.component.js", + "ui/components/ui/page-container/page-container.stories.js", + "ui/components/ui/popover/index.js", + "ui/components/ui/popover/popover.component.js", + "ui/components/ui/popover/popover.stories.js", + "ui/components/ui/pulse-loader/index.js", + "ui/components/ui/pulse-loader/pulse-loader.js", + "ui/components/ui/pulse-loader/pulse-loader.stories.js", + "ui/components/ui/qr-code/index.js", + "ui/components/ui/qr-code/qr-code.js", + "ui/components/ui/qr-code/qr-code.stories.js", + "ui/components/ui/radio-group/index.js", + "ui/components/ui/radio-group/radio-group.component.js", + "ui/components/ui/radio-group/radio-group.stories.js", + "ui/components/ui/sender-to-recipient/index.js", + "ui/components/ui/sender-to-recipient/sender-to-recipient.component.js", + "ui/components/ui/sender-to-recipient/sender-to-recipient.constants.js", + "ui/components/ui/sender-to-recipient/sender-to-recipient.stories.js", + "ui/components/ui/show-hide-toggle/index.js", + "ui/components/ui/show-hide-toggle/show-hide-toggle.js", + "ui/components/ui/show-hide-toggle/show-hide-toggle.stories.js", + "ui/components/ui/show-hide-toggle/show-hide-toggle.test.js", + "ui/components/ui/site-icon/index.js", + "ui/components/ui/site-icon/site-icon.js", + "ui/components/ui/site-icon/site-icon.stories.js", + "ui/components/ui/site-icon/site-icon.test.js", + "ui/components/ui/site-origin/index.js", + "ui/components/ui/site-origin/site-origin.js", + "ui/components/ui/site-origin/site-origin.stories.js", + "ui/components/ui/slider/index.js", + "ui/components/ui/slider/slider.component.js", + "ui/components/ui/slider/slider.component.test.js", + "ui/components/ui/slider/slider.stories.js", + "ui/components/ui/snackbar/index.js", + "ui/components/ui/snackbar/snackbar.component.js", + "ui/components/ui/spinner/index.js", + "ui/components/ui/spinner/spinner.component.js", + "ui/components/ui/spinner/spinner.stories.js", + "ui/components/ui/tabs/index.js", + "ui/components/ui/tabs/tab/index.js", + "ui/components/ui/tabs/tab/tab.component.js", + "ui/components/ui/tabs/tabs.component.js", + "ui/components/ui/tabs/tabs.stories.js", + "ui/components/ui/text-field/index.js", + "ui/components/ui/text-field/text-field.component.js", + "ui/components/ui/text-field/text-field.stories.js", + "ui/components/ui/textarea/index.js", + "ui/components/ui/textarea/textarea.js", + "ui/components/ui/textarea/textarea.stories.js", + "ui/components/ui/textarea/textarea.test.js", + "ui/components/ui/toggle-button/index.js", + "ui/components/ui/toggle-button/toggle-button.component.js", + "ui/components/ui/toggle-button/toggle-button.stories.js", + "ui/components/ui/token-balance/index.js", + "ui/components/ui/token-balance/token-balance.js", + "ui/components/ui/token-input/index.js", + "ui/components/ui/token-input/token-input.component.js", + "ui/components/ui/token-input/token-input.component.test.js", + "ui/components/ui/token-input/token-input.container.js", + "ui/components/ui/tooltip/index.js", + "ui/components/ui/tooltip/tooltip.js", + "ui/components/ui/tooltip/tooltip.stories.js", + "ui/components/ui/truncated-definition-list/index.js", + "ui/components/ui/truncated-definition-list/truncated-definition-list.js", + "ui/components/ui/truncated-definition-list/truncated-definition-list.stories.js", + "ui/components/ui/typography/index.js", + "ui/components/ui/typography/typography.js", + "ui/components/ui/typography/typography.stories.js", + "ui/components/ui/typography/typography.test.js", + "ui/components/ui/unit-input/index.js", + "ui/components/ui/unit-input/unit-input.component.js", + "ui/components/ui/unit-input/unit-input.component.test.js", + "ui/components/ui/update-nickname-popover/index.js", + "ui/components/ui/update-nickname-popover/update-nickname-popover.js", + "ui/components/ui/update-nickname-popover/update-nickname-popover.stories.js", + "ui/components/ui/url-icon/index.js", + "ui/components/ui/url-icon/url-icon.js", + "ui/components/ui/url-icon/url-icon.stories.js", + "ui/contexts/gasFee.js", + "ui/contexts/i18n.js", + "ui/contexts/metametrics.js", + "ui/contexts/transaction-modal.js", + "ui/ducks/alerts/enums.js", + "ui/ducks/alerts/index.js", + "ui/ducks/alerts/invalid-custom-network.js", + "ui/ducks/alerts/unconnected-account.js", + "ui/ducks/app/app.js", + "ui/ducks/app/app.test.js", + "ui/ducks/confirm-transaction/confirm-transaction.duck.js", + "ui/ducks/confirm-transaction/confirm-transaction.duck.test.js", + "ui/ducks/ens.js", + "ui/ducks/gas/gas-action-constants.js", + "ui/ducks/gas/gas-duck.test.js", + "ui/ducks/gas/gas.duck.js", + "ui/ducks/history/history.js", + "ui/ducks/index.js", + "ui/ducks/locale/locale.js", + "ui/ducks/metamask/metamask.js", + "ui/ducks/metamask/metamask.test.js", + "ui/ducks/send/helpers.js", + "ui/ducks/send/helpers.test.js", + "ui/ducks/send/index.js", + "ui/ducks/send/send.js", + "ui/ducks/send/send.test.js", + "ui/ducks/swaps/swaps.js", + "ui/ducks/swaps/swaps.test.js", + "ui/helpers/constants/common.js", + "ui/helpers/constants/connected-sites.js", + "ui/helpers/constants/critical-error.js", + "ui/helpers/constants/design-system.js", + "ui/helpers/constants/error-keys.js", + "ui/helpers/constants/gas.js", + "ui/helpers/constants/notifications.js", + "ui/helpers/constants/onboarding.js", + "ui/helpers/constants/routes.js", + "ui/helpers/constants/settings.js", + "ui/helpers/constants/transactions.js", + "ui/helpers/constants/zendesk-url.js", + "ui/helpers/higher-order-components/authenticated/authenticated.component.js", + "ui/helpers/higher-order-components/authenticated/authenticated.container.js", + "ui/helpers/higher-order-components/authenticated/index.js", + "ui/helpers/higher-order-components/feature-toggled-route.js", + "ui/helpers/higher-order-components/initialized/index.js", + "ui/helpers/higher-order-components/initialized/initialized.component.js", + "ui/helpers/higher-order-components/initialized/initialized.container.js", + "ui/helpers/higher-order-components/with-modal-props/index.js", + "ui/helpers/higher-order-components/with-modal-props/with-modal-props.js", + "ui/helpers/higher-order-components/with-modal-props/with-modal-props.test.js", + "ui/helpers/utils/build-types.js", + "ui/helpers/utils/common.util.js", + "ui/helpers/utils/common.util.test.js", + "ui/helpers/utils/confirm-tx.util.js", + "ui/helpers/utils/confirm-tx.util.test.js", + "ui/helpers/utils/conversions.util.js", + "ui/helpers/utils/conversions.util.test.js", + "ui/helpers/utils/error-utils.js", + "ui/helpers/utils/error-utils.test.js", + "ui/helpers/utils/fetch-with-cache.js", + "ui/helpers/utils/fetch-with-cache.test.js", + "ui/helpers/utils/formatters.js", + "ui/helpers/utils/gas.js", + "ui/helpers/utils/gas.test.js", + "ui/helpers/utils/hardware.js", + "ui/helpers/utils/i18n-helper.js", + "ui/helpers/utils/i18n-helper.test.js", + "ui/helpers/utils/icon-factory.js", + "ui/helpers/utils/is-mobile-view.js", + "ui/helpers/utils/metric.test.js", + "ui/helpers/utils/metrics.js", + "ui/helpers/utils/optimism/buildUnserializedTransaction.js", + "ui/helpers/utils/optimism/buildUnserializedTransaction.test.js", + "ui/helpers/utils/optimism/fetchEstimatedL1Fee.js", + "ui/helpers/utils/permission.js", + "ui/helpers/utils/settings-search.js", + "ui/helpers/utils/settings-search.test.js", + "ui/helpers/utils/storage-helpers.js", + "ui/helpers/utils/switch-direction.js", + "ui/helpers/utils/token-util.js", + "ui/helpers/utils/transactions.util.js", + "ui/helpers/utils/transactions.util.test.js", + "ui/helpers/utils/tx-helper.js", + "ui/helpers/utils/tx-helper.test.js", + "ui/helpers/utils/util.js", + "ui/helpers/utils/util.test.js", + "ui/helpers/utils/webcam-utils.js", + "ui/hooks/gasFeeInput/test-utils.js", + "ui/hooks/gasFeeInput/useGasEstimates.js", + "ui/hooks/gasFeeInput/useGasEstimates.test.js", + "ui/hooks/gasFeeInput/useGasFeeErrors.js", + "ui/hooks/gasFeeInput/useGasFeeErrors.test.js", + "ui/hooks/gasFeeInput/useGasFeeInputs.js", + "ui/hooks/gasFeeInput/useGasFeeInputs.test.js", + "ui/hooks/gasFeeInput/useGasPriceInput.js", + "ui/hooks/gasFeeInput/useGasPriceInput.test.js", + "ui/hooks/gasFeeInput/useMaxFeePerGasInput.js", + "ui/hooks/gasFeeInput/useMaxFeePerGasInput.test.js", + "ui/hooks/gasFeeInput/useMaxPriorityFeePerGasInput.js", + "ui/hooks/gasFeeInput/useMaxPriorityFeePerGasInput.test.js", + "ui/hooks/gasFeeInput/useTransactionFunction.test.js", + "ui/hooks/gasFeeInput/useTransactionFunctions.js", + "ui/hooks/gasFeeInput/utils.js", + "ui/hooks/useAddressDetails.js", + "ui/hooks/useAddressDetails.test.js", + "ui/hooks/useApproveTransaction.js", + "ui/hooks/useAssetDetails.js", + "ui/hooks/useAssetDetails.test.js", + "ui/hooks/useCollectiblesCollections.js", + "ui/hooks/useCopyToClipboard.js", + "ui/hooks/useCurrencyDisplay.js", + "ui/hooks/useCurrencyDisplay.test.js", + "ui/hooks/useCurrentAsset.js", + "ui/hooks/useEqualityCheck.js", + "ui/hooks/useEthFiatAmount.js", + "ui/hooks/useEventFragment.js", + "ui/hooks/useEventFragment.test.js", + "ui/hooks/useGasFeeErrors.js", + "ui/hooks/useGasFeeErrors.test.js", + "ui/hooks/useGasFeeEstimates.js", + "ui/hooks/useGasFeeEstimates.test.js", + "ui/hooks/useI18nContext.js", + "ui/hooks/useIncrementedGasFees.js", + "ui/hooks/useOriginMetadata.js", + "ui/hooks/usePrevious.js", + "ui/hooks/useSafeGasEstimatePolling.js", + "ui/hooks/useSegmentContext.js", + "ui/hooks/useShouldAnimateGasEstimations.js", + "ui/hooks/useShouldShowSpeedUp.js", + "ui/hooks/useSwappedTokenValue.js", + "ui/hooks/useTimeout.js", + "ui/hooks/useTokenData.js", + "ui/hooks/useTokenData.test.js", + "ui/hooks/useTokenDisplayValue.js", + "ui/hooks/useTokenDisplayValue.test.js", + "ui/hooks/useTokenFiatAmount.js", + "ui/hooks/useTokenTracker.js", + "ui/hooks/useTokensToSearch.js", + "ui/hooks/useTransactionDisplayData.js", + "ui/hooks/useTransactionDisplayData.test.js", + "ui/hooks/useTransactionEventFragment.js", + "ui/hooks/useUserPreferencedCurrency.js", + "ui/hooks/useUserPreferencedCurrency.test.js", + "ui/index.js", + "ui/index.test.js", + "ui/pages/add-collectible/add-collectible.js", + "ui/pages/add-collectible/add-collectible.test.js", + "ui/pages/add-collectible/index.js", + "ui/pages/asset/asset.js", + "ui/pages/asset/components/asset-breadcrumb.js", + "ui/pages/asset/components/asset-navigation.js", + "ui/pages/asset/components/asset-options.js", + "ui/pages/asset/components/native-asset.js", + "ui/pages/asset/components/token-asset.js", + "ui/pages/asset/index.js", + "ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.js", + "ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.stories.js", + "ui/pages/confirm-add-suggested-token/confirm-add-suggested-token.test.js", + "ui/pages/confirm-add-suggested-token/index.js", + "ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.component.js", + "ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.component.test.js", + "ui/pages/confirm-approve/confirm-approve-content/confirm-approve-content.stories.js", + "ui/pages/confirm-approve/confirm-approve-content/index.js", + "ui/pages/confirm-approve/confirm-approve.js", + "ui/pages/confirm-approve/confirm-approve.stories.js", + "ui/pages/confirm-approve/confirm-approve.util.js", + "ui/pages/confirm-approve/index.js", + "ui/pages/confirm-decrypt-message/confirm-decrypt-message.component.js", + "ui/pages/confirm-decrypt-message/confirm-decrypt-message.container.js", + "ui/pages/confirm-decrypt-message/index.js", + "ui/pages/confirm-deploy-contract/confirm-deploy-contract.component.js", + "ui/pages/confirm-deploy-contract/confirm-deploy-contract.container.js", + "ui/pages/confirm-deploy-contract/confirm-deploy-contract.stories.js", + "ui/pages/confirm-deploy-contract/index.js", + "ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.component.js", + "ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.container.js", + "ui/pages/confirm-encryption-public-key/confirm-encryption-public-key.stories.js", + "ui/pages/confirm-encryption-public-key/index.js", + "ui/pages/confirm-import-token/confirm-import-token.js", + "ui/pages/confirm-import-token/confirm-import-token.stories.js", + "ui/pages/confirm-import-token/confirm-import-token.test.js", + "ui/pages/confirm-import-token/index.js", + "ui/pages/confirm-send-ether/confirm-send-ether.component.js", + "ui/pages/confirm-send-ether/confirm-send-ether.container.js", + "ui/pages/confirm-send-ether/confirm-send-ether.stories.js", + "ui/pages/confirm-send-ether/index.js", + "ui/pages/confirm-send-token/confirm-send-token.component.js", + "ui/pages/confirm-send-token/confirm-send-token.js", + "ui/pages/confirm-send-token/confirm-send-token.stories.js", + "ui/pages/confirm-send-token/index.js", + "ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.js", + "ui/pages/confirm-token-transaction-base/confirm-token-transaction-base.stories.js", + "ui/pages/confirm-token-transaction-base/index.js", + "ui/pages/confirm-transaction-base/confirm-transaction-base.component.js", + "ui/pages/confirm-transaction-base/confirm-transaction-base.container.js", + "ui/pages/confirm-transaction-base/confirm-transaction-base.stories.js", + "ui/pages/confirm-transaction-base/index.js", + "ui/pages/confirm-transaction-base/transaction-alerts/index.js", + "ui/pages/confirm-transaction-base/transaction-alerts/transaction-alerts.js", + "ui/pages/confirm-transaction-base/transaction-alerts/transaction-alerts.test.js", + "ui/pages/confirm-transaction-switch/confirm-transaction-switch.component.js", + "ui/pages/confirm-transaction-switch/confirm-transaction-switch.container.js", + "ui/pages/confirm-transaction-switch/index.js", + "ui/pages/confirm-transaction/conf-tx.js", + "ui/pages/confirm-transaction/confirm-token-transaction-switch.js", + "ui/pages/confirm-transaction/confirm-transaction.component.js", + "ui/pages/confirm-transaction/confirm-transaction.container.js", + "ui/pages/confirm-transaction/index.js", + "ui/pages/confirmation/components/confirmation-footer/confirmation-footer.js", + "ui/pages/confirmation/components/confirmation-footer/index.js", + "ui/pages/confirmation/components/confirmation-network-switch/confirmation-network-switch.js", + "ui/pages/confirmation/components/confirmation-network-switch/confirmation-network-switch.stories.js", + "ui/pages/confirmation/components/confirmation-network-switch/index.js", + "ui/pages/confirmation/confirmation.js", + "ui/pages/confirmation/index.js", + "ui/pages/confirmation/templates/add-ethereum-chain.js", + "ui/pages/confirmation/templates/flask/snap-confirm/snap-confirm.js", + "ui/pages/confirmation/templates/index.js", + "ui/pages/confirmation/templates/switch-ethereum-chain.js", + "ui/pages/connected-accounts/connected-accounts.component.js", + "ui/pages/connected-accounts/connected-accounts.container.js", + "ui/pages/connected-accounts/connected-accounts.stories.js", + "ui/pages/connected-accounts/index.js", + "ui/pages/connected-sites/connected-sites.component.js", + "ui/pages/connected-sites/connected-sites.container.js", + "ui/pages/connected-sites/connected-sites.stories.js", + "ui/pages/connected-sites/index.js", + "ui/pages/create-account/connect-hardware/account-list.js", + "ui/pages/create-account/connect-hardware/account-list.stories.js", + "ui/pages/create-account/connect-hardware/index.js", + "ui/pages/create-account/connect-hardware/select-hardware.js", + "ui/pages/create-account/connect-hardware/select-hardware.stories.js", + "ui/pages/create-account/create-account.component.js", + "ui/pages/create-account/import-account/index.js", + "ui/pages/create-account/import-account/json.js", + "ui/pages/create-account/import-account/private-key.js", + "ui/pages/create-account/index.js", + "ui/pages/create-account/new-account.component.js", + "ui/pages/create-account/new-account.container.js", + "ui/pages/create-account/new-account.stories.js", + "ui/pages/error/error.component.js", + "ui/pages/error/index.js", + "ui/pages/first-time-flow/create-password/create-password.component.js", + "ui/pages/first-time-flow/create-password/create-password.container.js", + "ui/pages/first-time-flow/create-password/create-password.stories.js", + "ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js", + "ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.container.js", + "ui/pages/first-time-flow/create-password/import-with-seed-phrase/index.js", + "ui/pages/first-time-flow/create-password/index.js", + "ui/pages/first-time-flow/create-password/new-account/index.js", + "ui/pages/first-time-flow/create-password/new-account/new-account.component.js", + "ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js", + "ui/pages/first-time-flow/end-of-flow/end-of-flow.container.js", + "ui/pages/first-time-flow/end-of-flow/end-of-flow.stories.js", + "ui/pages/first-time-flow/end-of-flow/end-of-flow.test.js", + "ui/pages/first-time-flow/end-of-flow/index.js", + "ui/pages/first-time-flow/first-time-flow-switch/first-time-flow-switch.component.js", + "ui/pages/first-time-flow/first-time-flow-switch/first-time-flow-switch.container.js", + "ui/pages/first-time-flow/first-time-flow-switch/first-time-flow-switch.test.js", + "ui/pages/first-time-flow/first-time-flow-switch/index.js", + "ui/pages/first-time-flow/first-time-flow.component.js", + "ui/pages/first-time-flow/first-time-flow.container.js", + "ui/pages/first-time-flow/index.js", + "ui/pages/first-time-flow/metametrics-opt-in/index.js", + "ui/pages/first-time-flow/metametrics-opt-in/metametrics-opt-in.component.js", + "ui/pages/first-time-flow/metametrics-opt-in/metametrics-opt-in.container.js", + "ui/pages/first-time-flow/metametrics-opt-in/metametrics-opt-in.stories.js", + "ui/pages/first-time-flow/metametrics-opt-in/metametrics-opt-in.test.js", + "ui/pages/first-time-flow/onboarding-initiator-util.js", + "ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase-component.test.js", + "ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.component.js", + "ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.container.js", + "ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/draggable-seed.component.js", + "ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/index.js", + "ui/pages/first-time-flow/seed-phrase/index.js", + "ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/index.js", + "ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.component.js", + "ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.container.js", + "ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.stories.js", + "ui/pages/first-time-flow/seed-phrase/reveal-seed-phrase/reveal-seed-phrase.test.js", + "ui/pages/first-time-flow/seed-phrase/seed-phrase-intro/index.js", + "ui/pages/first-time-flow/seed-phrase/seed-phrase-intro/seed-phrase-intro.component.js", + "ui/pages/first-time-flow/seed-phrase/seed-phrase.component.js", + "ui/pages/first-time-flow/select-action/index.js", + "ui/pages/first-time-flow/select-action/select-action.component.js", + "ui/pages/first-time-flow/select-action/select-action.container.js", + "ui/pages/first-time-flow/select-action/select-action.stories.js", + "ui/pages/first-time-flow/select-action/select-action.test.js", + "ui/pages/first-time-flow/welcome/beta-welcome-footer.component.js", + "ui/pages/first-time-flow/welcome/index.js", + "ui/pages/first-time-flow/welcome/welcome-footer.component.js", + "ui/pages/first-time-flow/welcome/welcome.component.js", + "ui/pages/first-time-flow/welcome/welcome.container.js", + "ui/pages/first-time-flow/welcome/welcome.stories.js", + "ui/pages/first-time-flow/welcome/welcome.test.js", + "ui/pages/home/beta/beta-home-footer.component.js", + "ui/pages/home/flask/flask-home-footer.component.js", + "ui/pages/home/home.component.js", + "ui/pages/home/home.container.js", + "ui/pages/home/index.js", + "ui/pages/import-token/import-token.component.js", + "ui/pages/import-token/import-token.container.js", + "ui/pages/import-token/import-token.stories.js", + "ui/pages/import-token/import-token.test.js", + "ui/pages/import-token/index.js", + "ui/pages/import-token/token-list/index.js", + "ui/pages/import-token/token-list/token-list-placeholder/index.js", + "ui/pages/import-token/token-list/token-list-placeholder/token-list-placeholder.component.js", + "ui/pages/import-token/token-list/token-list-placeholder/token-list-placeholder.stories.js", + "ui/pages/import-token/token-list/token-list.component.js", + "ui/pages/import-token/token-list/token-list.container.js", + "ui/pages/import-token/token-search/index.js", + "ui/pages/import-token/token-search/token-search.component.js", + "ui/pages/import-token/token-search/token-search.stories.js", + "ui/pages/index.js", + "ui/pages/keychains/restore-vault.js", + "ui/pages/keychains/restore-vault.test.js", + "ui/pages/keychains/reveal-seed.js", + "ui/pages/keychains/reveal-seed.stories.js", + "ui/pages/keychains/reveal-seed.test.js", + "ui/pages/lock/index.js", + "ui/pages/lock/lock.component.js", + "ui/pages/lock/lock.container.js", + "ui/pages/lock/lock.test.js", + "ui/pages/mobile-sync/index.js", + "ui/pages/mobile-sync/mobile-sync.component.js", + "ui/pages/mobile-sync/mobile-sync.container.js", + "ui/pages/mobile-sync/mobile-sync.stories.js", + "ui/pages/notifications/index.js", + "ui/pages/notifications/notification.test.js", + "ui/pages/notifications/notifications.js", + "ui/pages/onboarding-flow/create-password/create-password.js", + "ui/pages/onboarding-flow/creation-successful/creation-successful.js", + "ui/pages/onboarding-flow/creation-successful/creation-successful.stories.js", + "ui/pages/onboarding-flow/creation-successful/creation-successful.test.js", + "ui/pages/onboarding-flow/import-srp/import-srp.js", + "ui/pages/onboarding-flow/metametrics/metametrics.js", + "ui/pages/onboarding-flow/metametrics/metametrics.stories.js", + "ui/pages/onboarding-flow/onboarding-app-header/onboarding-app-header.js", + "ui/pages/onboarding-flow/onboarding-flow-switch/onboarding-flow-switch.js", + "ui/pages/onboarding-flow/onboarding-flow.js", + "ui/pages/onboarding-flow/pin-extension/pin-billboard.js", + "ui/pages/onboarding-flow/pin-extension/pin-extension.js", + "ui/pages/onboarding-flow/pin-extension/pin-extension.stories.js", + "ui/pages/onboarding-flow/privacy-settings/privacy-settings.js", + "ui/pages/onboarding-flow/privacy-settings/privacy-settings.stories.js", + "ui/pages/onboarding-flow/privacy-settings/privacy-settings.test.js", + "ui/pages/onboarding-flow/privacy-settings/setting.js", + "ui/pages/onboarding-flow/recovery-phrase/confirm-recovery-phrase.js", + "ui/pages/onboarding-flow/recovery-phrase/recovery-phrase-chips.js", + "ui/pages/onboarding-flow/recovery-phrase/review-recovery-phrase.js", + "ui/pages/onboarding-flow/secure-your-wallet/secure-your-wallet.js", + "ui/pages/onboarding-flow/secure-your-wallet/secure-your-wallet.stories.js", + "ui/pages/onboarding-flow/secure-your-wallet/secure-your-wallet.test.js", + "ui/pages/onboarding-flow/secure-your-wallet/skip-srp-backup-popover.js", + "ui/pages/onboarding-flow/welcome/welcome.js", + "ui/pages/onboarding-flow/welcome/welcome.stories.js", + "ui/pages/permissions-connect/choose-account/choose-account.js", + "ui/pages/permissions-connect/choose-account/index.js", + "ui/pages/permissions-connect/flask/snap-install/index.js", + "ui/pages/permissions-connect/flask/snap-install/snap-install.js", + "ui/pages/permissions-connect/flask/snap-update/index.js", + "ui/pages/permissions-connect/flask/snap-update/snap-update.js", + "ui/pages/permissions-connect/index.js", + "ui/pages/permissions-connect/permissions-connect.component.js", + "ui/pages/permissions-connect/permissions-connect.container.js", + "ui/pages/permissions-connect/permissions-connect.stories.js", + "ui/pages/permissions-connect/redirect/index.js", + "ui/pages/permissions-connect/redirect/permissions-redirect.component.js", + "ui/pages/permissions-connect/redirect/permissions-redirect.stories.js", + "ui/pages/routes/index.js", + "ui/pages/routes/routes.component.js", + "ui/pages/routes/routes.container.js", + "ui/pages/send/index.js", + "ui/pages/send/send-content/add-recipient/add-recipient.component.js", + "ui/pages/send/send-content/add-recipient/add-recipient.component.test.js", + "ui/pages/send/send-content/add-recipient/add-recipient.container.js", + "ui/pages/send/send-content/add-recipient/add-recipient.container.test.js", + "ui/pages/send/send-content/add-recipient/add-recipient.stories.js", + "ui/pages/send/send-content/add-recipient/ens-input.component.js", + "ui/pages/send/send-content/add-recipient/ens-input.container.js", + "ui/pages/send/send-content/add-recipient/ens-input.js", + "ui/pages/send/send-content/add-recipient/index.js", + "ui/pages/send/send-content/index.js", + "ui/pages/send/send-content/send-amount-row/amount-max-button/amount-max-button.js", + "ui/pages/send/send-content/send-amount-row/amount-max-button/amount-max-button.test.js", + "ui/pages/send/send-content/send-amount-row/amount-max-button/index.js", + "ui/pages/send/send-content/send-amount-row/index.js", + "ui/pages/send/send-content/send-amount-row/send-amount-row.component.js", + "ui/pages/send/send-content/send-amount-row/send-amount-row.component.test.js", + "ui/pages/send/send-content/send-amount-row/send-amount-row.container.js", + "ui/pages/send/send-content/send-amount-row/send-amount-row.container.test.js", + "ui/pages/send/send-content/send-asset-row/index.js", + "ui/pages/send/send-content/send-asset-row/send-asset-row.component.js", + "ui/pages/send/send-content/send-asset-row/send-asset-row.container.js", + "ui/pages/send/send-content/send-asset-row/send-asset-row.stories.js", + "ui/pages/send/send-content/send-content.component.js", + "ui/pages/send/send-content/send-content.component.test.js", + "ui/pages/send/send-content/send-content.container.js", + "ui/pages/send/send-content/send-content.stories.js", + "ui/pages/send/send-content/send-gas-row/index.js", + "ui/pages/send/send-content/send-gas-row/send-gas-row.component.js", + "ui/pages/send/send-content/send-gas-row/send-gas-row.component.test.js", + "ui/pages/send/send-content/send-gas-row/send-gas-row.container.js", + "ui/pages/send/send-content/send-gas-row/send-gas-row.container.test.js", + "ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js", + "ui/pages/send/send-content/send-hex-data-row/index.js", + "ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.component.js", + "ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.container.js", + "ui/pages/send/send-content/send-hex-data-row/send-hex-data-row.stories.js", + "ui/pages/send/send-content/send-row-wrapper/index.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-error-message/index.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.component.test.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.container.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-error-message/send-row-error-message.container.test.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-wrapper.component.js", + "ui/pages/send/send-content/send-row-wrapper/send-row-wrapper.component.test.js", + "ui/pages/send/send-footer/index.js", + "ui/pages/send/send-footer/send-footer.component.js", + "ui/pages/send/send-footer/send-footer.component.test.js", + "ui/pages/send/send-footer/send-footer.container.js", + "ui/pages/send/send-footer/send-footer.container.test.js", + "ui/pages/send/send-footer/send-footer.stories.js", + "ui/pages/send/send-header/index.js", + "ui/pages/send/send-header/send-header.component.js", + "ui/pages/send/send-header/send-header.component.test.js", + "ui/pages/send/send-header/send-header.stories.js", + "ui/pages/send/send.constants.js", + "ui/pages/send/send.js", + "ui/pages/send/send.test.js", + "ui/pages/send/send.utils.js", + "ui/pages/send/send.utils.test.js", + "ui/pages/settings/advanced-tab/advanced-tab.component.js", + "ui/pages/settings/advanced-tab/advanced-tab.component.test.js", + "ui/pages/settings/advanced-tab/advanced-tab.container.js", + "ui/pages/settings/advanced-tab/advanced-tab.stories.js", + "ui/pages/settings/advanced-tab/index.js", + "ui/pages/settings/alerts-tab/alerts-tab.js", + "ui/pages/settings/alerts-tab/alerts-tab.test.js", + "ui/pages/settings/alerts-tab/index.js", + "ui/pages/settings/contact-list-tab/add-contact/add-contact.component.js", + "ui/pages/settings/contact-list-tab/add-contact/add-contact.container.js", + "ui/pages/settings/contact-list-tab/add-contact/index.js", + "ui/pages/settings/contact-list-tab/contact-list-tab.component.js", + "ui/pages/settings/contact-list-tab/contact-list-tab.container.js", + "ui/pages/settings/contact-list-tab/contact-list-tab.stories.js", + "ui/pages/settings/contact-list-tab/edit-contact/edit-contact.component.js", + "ui/pages/settings/contact-list-tab/edit-contact/edit-contact.container.js", + "ui/pages/settings/contact-list-tab/edit-contact/index.js", + "ui/pages/settings/contact-list-tab/index.js", + "ui/pages/settings/contact-list-tab/view-contact/index.js", + "ui/pages/settings/contact-list-tab/view-contact/view-contact.component.js", + "ui/pages/settings/contact-list-tab/view-contact/view-contact.container.js", + "ui/pages/settings/experimental-tab/experimental-tab.component.js", + "ui/pages/settings/experimental-tab/experimental-tab.component.test.js", + "ui/pages/settings/experimental-tab/experimental-tab.constant.js", + "ui/pages/settings/experimental-tab/experimental-tab.container.js", + "ui/pages/settings/experimental-tab/index.js", + "ui/pages/settings/flask/snaps-list-tab/index.js", + "ui/pages/settings/flask/snaps-list-tab/snap-list-tab.js", + "ui/pages/settings/flask/snaps-list-tab/snap-list-tab.stories.js", + "ui/pages/settings/flask/view-snap/index.js", + "ui/pages/settings/flask/view-snap/view-snap.js", + "ui/pages/settings/index.js", + "ui/pages/settings/info-tab/index.js", + "ui/pages/settings/info-tab/info-tab.component.js", + "ui/pages/settings/info-tab/info-tab.stories.js", + "ui/pages/settings/networks-tab/custom-content-search/custom-content-search.js", + "ui/pages/settings/networks-tab/custom-content-search/custom-content-search.stories.js", + "ui/pages/settings/networks-tab/custom-content-search/custom-content-search.test.js", + "ui/pages/settings/networks-tab/custom-content-search/index.js", + "ui/pages/settings/networks-tab/index.js", + "ui/pages/settings/networks-tab/networks-form/index.js", + "ui/pages/settings/networks-tab/networks-form/networks-form.js", + "ui/pages/settings/networks-tab/networks-form/networks-form.test.js", + "ui/pages/settings/networks-tab/networks-list-item/index.js", + "ui/pages/settings/networks-tab/networks-list-item/networks-list-item.js", + "ui/pages/settings/networks-tab/networks-list-item/networks-list-item.stories.js", + "ui/pages/settings/networks-tab/networks-list-item/networks-list-item.test.js", + "ui/pages/settings/networks-tab/networks-list/index.js", + "ui/pages/settings/networks-tab/networks-list/network-list.stories.js", + "ui/pages/settings/networks-tab/networks-list/networks-list.js", + "ui/pages/settings/networks-tab/networks-list/networks-list.test.js", + "ui/pages/settings/networks-tab/networks-tab-content/index.js", + "ui/pages/settings/networks-tab/networks-tab-content/networks-tab-content.js", + "ui/pages/settings/networks-tab/networks-tab-content/networks-tab-content.test.js", + "ui/pages/settings/networks-tab/networks-tab-subheader/index.js", + "ui/pages/settings/networks-tab/networks-tab-subheader/networks-tab-subheader.js", + "ui/pages/settings/networks-tab/networks-tab-subheader/networks-tab-subheader.test.js", + "ui/pages/settings/networks-tab/networks-tab.constants.js", + "ui/pages/settings/networks-tab/networks-tab.js", + "ui/pages/settings/networks-tab/networks-tab.test.js", + "ui/pages/settings/security-tab/index.js", + "ui/pages/settings/security-tab/security-tab.component.js", + "ui/pages/settings/security-tab/security-tab.container.js", + "ui/pages/settings/security-tab/security-tab.container.test.js", + "ui/pages/settings/settings-search-list/index.js", + "ui/pages/settings/settings-search-list/settings-search-list.js", + "ui/pages/settings/settings-search/index.js", + "ui/pages/settings/settings-search/settings-search.js", + "ui/pages/settings/settings-search/settings-search.stories.js", + "ui/pages/settings/settings-tab/index.js", + "ui/pages/settings/settings-tab/settings-tab.component.js", + "ui/pages/settings/settings-tab/settings-tab.component.test.js", + "ui/pages/settings/settings-tab/settings-tab.container.js", + "ui/pages/settings/settings.component.js", + "ui/pages/settings/settings.component.test.js", + "ui/pages/settings/settings.container.js", + "ui/pages/settings/settings.stories.js", + "ui/pages/swaps/awaiting-signatures/awaiting-signatures.js", + "ui/pages/swaps/awaiting-signatures/awaiting-signatures.stories.js", + "ui/pages/swaps/awaiting-signatures/awaiting-signatures.test.js", + "ui/pages/swaps/awaiting-signatures/index.js", + "ui/pages/swaps/awaiting-signatures/swap-step-icon.js", + "ui/pages/swaps/awaiting-signatures/swap-step-icon.test.js", + "ui/pages/swaps/awaiting-swap/awaiting-swap.js", + "ui/pages/swaps/awaiting-swap/awaiting-swap.test.js", + "ui/pages/swaps/awaiting-swap/index.js", + "ui/pages/swaps/awaiting-swap/quotes-timeout-icon.js", + "ui/pages/swaps/awaiting-swap/quotes-timeout-icon.test.js", + "ui/pages/swaps/awaiting-swap/swap-failure-icon.js", + "ui/pages/swaps/awaiting-swap/swap-failure-icon.test.js", + "ui/pages/swaps/awaiting-swap/swap-success-icon.js", + "ui/pages/swaps/awaiting-swap/swap-success-icon.test.js", + "ui/pages/swaps/build-quote/build-quote.js", + "ui/pages/swaps/build-quote/build-quote.stories.js", + "ui/pages/swaps/build-quote/build-quote.test.js", + "ui/pages/swaps/build-quote/index.js", + "ui/pages/swaps/countdown-timer/countdown-timer.js", + "ui/pages/swaps/countdown-timer/countdown-timer.stories.js", + "ui/pages/swaps/countdown-timer/countdown-timer.test.js", + "ui/pages/swaps/countdown-timer/index.js", + "ui/pages/swaps/countdown-timer/timer-icon.js", + "ui/pages/swaps/countdown-timer/timer-icon.test.js", + "ui/pages/swaps/create-new-swap/create-new-swap.js", + "ui/pages/swaps/create-new-swap/create-new-swap.test.js", + "ui/pages/swaps/create-new-swap/index.js", + "ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.js", + "ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.stories.js", + "ui/pages/swaps/dropdown-input-pair/dropdown-input-pair.test.js", + "ui/pages/swaps/dropdown-input-pair/index.js", + "ui/pages/swaps/dropdown-search-list/dropdown-search-list.js", + "ui/pages/swaps/dropdown-search-list/dropdown-search-list.stories.js", + "ui/pages/swaps/dropdown-search-list/dropdown-search-list.test.js", + "ui/pages/swaps/dropdown-search-list/index.js", + "ui/pages/swaps/exchange-rate-display/exchange-rate-display.js", + "ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js", + "ui/pages/swaps/exchange-rate-display/exchange-rate-display.test.js", + "ui/pages/swaps/exchange-rate-display/index.js", + "ui/pages/swaps/fee-card/fee-card.js", + "ui/pages/swaps/fee-card/fee-card.stories.js", + "ui/pages/swaps/fee-card/fee-card.test.js", + "ui/pages/swaps/fee-card/index.js", + "ui/pages/swaps/fee-card/pig-icon.js", + "ui/pages/swaps/fee-card/pig-icon.test.js", + "ui/pages/swaps/import-token/import-token.js", + "ui/pages/swaps/import-token/import-token.stories.js", + "ui/pages/swaps/import-token/import-token.test.js", + "ui/pages/swaps/import-token/index.js", + "ui/pages/swaps/index.js", + "ui/pages/swaps/index.test.js", + "ui/pages/swaps/loading-swaps-quotes/background-animation.js", + "ui/pages/swaps/loading-swaps-quotes/background-animation.test.js", + "ui/pages/swaps/loading-swaps-quotes/index.js", + "ui/pages/swaps/loading-swaps-quotes/loading-swap-quotes.stories.js", + "ui/pages/swaps/loading-swaps-quotes/loading-swaps-quotes-stories-metadata.js", + "ui/pages/swaps/loading-swaps-quotes/loading-swaps-quotes-stories-metadata.test.js", + "ui/pages/swaps/loading-swaps-quotes/loading-swaps-quotes.js", + "ui/pages/swaps/loading-swaps-quotes/loading-swaps-quotes.test.js", + "ui/pages/swaps/main-quote-summary/index.js", + "ui/pages/swaps/main-quote-summary/main-quote-summary.js", + "ui/pages/swaps/main-quote-summary/main-quote-summary.stories.js", + "ui/pages/swaps/main-quote-summary/main-quote-summary.test.js", + "ui/pages/swaps/main-quote-summary/quote-backdrop.js", + "ui/pages/swaps/main-quote-summary/quote-backdrop.test.js", + "ui/pages/swaps/searchable-item-list/index.js", + "ui/pages/swaps/searchable-item-list/item-list/index.js", + "ui/pages/swaps/searchable-item-list/item-list/item-list.component.js", + "ui/pages/swaps/searchable-item-list/list-item-search/index.js", + "ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.component.js", + "ui/pages/swaps/searchable-item-list/list-item-search/list-item-search.stories.js", + "ui/pages/swaps/searchable-item-list/searchable-item-list.js", + "ui/pages/swaps/searchable-item-list/searchable-item-list.test.js", + "ui/pages/swaps/select-quote-popover/index.js", + "ui/pages/swaps/select-quote-popover/mock-quote-data.js", + "ui/pages/swaps/select-quote-popover/mock-quote-data.test.js", + "ui/pages/swaps/select-quote-popover/quote-details/index.js", + "ui/pages/swaps/select-quote-popover/quote-details/quote-details.js", + "ui/pages/swaps/select-quote-popover/select-quote-popover-constants.js", + "ui/pages/swaps/select-quote-popover/select-quote-popover.js", + "ui/pages/swaps/select-quote-popover/select-quote-popover.stories.js", + "ui/pages/swaps/select-quote-popover/select-quote-popover.test.js", + "ui/pages/swaps/select-quote-popover/sort-list/index.js", + "ui/pages/swaps/select-quote-popover/sort-list/sort-list.js", + "ui/pages/swaps/select-quote-popover/sort-list/sort-list.test.js", + "ui/pages/swaps/slippage-buttons/index.js", + "ui/pages/swaps/slippage-buttons/slippage-buttons.js", + "ui/pages/swaps/slippage-buttons/slippage-buttons.stories.js", + "ui/pages/swaps/slippage-buttons/slippage-buttons.test.js", + "ui/pages/swaps/smart-transaction-status/arrow-icon.js", + "ui/pages/swaps/smart-transaction-status/arrow-icon.test.js", + "ui/pages/swaps/smart-transaction-status/canceled-icon.js", + "ui/pages/swaps/smart-transaction-status/canceled-icon.test.js", + "ui/pages/swaps/smart-transaction-status/index.js", + "ui/pages/swaps/smart-transaction-status/reverted-icon.js", + "ui/pages/swaps/smart-transaction-status/reverted-icon.test.js", + "ui/pages/swaps/smart-transaction-status/smart-transaction-status.js", + "ui/pages/swaps/smart-transaction-status/smart-transaction-status.stories.js", + "ui/pages/swaps/smart-transaction-status/smart-transaction-status.test.js", + "ui/pages/swaps/smart-transaction-status/success-icon.js", + "ui/pages/swaps/smart-transaction-status/success-icon.test.js", + "ui/pages/swaps/smart-transaction-status/timer-icon.js", + "ui/pages/swaps/smart-transaction-status/timer-icon.test.js", + "ui/pages/swaps/smart-transaction-status/unknown-icon.js", + "ui/pages/swaps/smart-transaction-status/unknown-icon.test.js", + "ui/pages/swaps/swaps-footer/index.js", + "ui/pages/swaps/swaps-footer/swaps-footer.js", + "ui/pages/swaps/swaps-footer/swaps-footer.test.js", + "ui/pages/swaps/swaps-util-test-constants.js", + "ui/pages/swaps/swaps.util.js", + "ui/pages/swaps/swaps.util.test.js", + "ui/pages/swaps/view-on-block-explorer/index.js", + "ui/pages/swaps/view-on-block-explorer/view-on-block-explorer.js", + "ui/pages/swaps/view-on-block-explorer/view-on-block-explorer.test.js", + "ui/pages/swaps/view-quote/index.js", + "ui/pages/swaps/view-quote/view-quote-price-difference.js", + "ui/pages/swaps/view-quote/view-quote-price-difference.test.js", + "ui/pages/swaps/view-quote/view-quote.js", + "ui/pages/swaps/view-quote/view-quote.test.js", + "ui/pages/token-details/index.js", + "ui/pages/token-details/token-details-page.js", + "ui/pages/token-details/token-details-page.test.js", + "ui/pages/unlock-page/index.js", + "ui/pages/unlock-page/unlock-page.component.js", + "ui/pages/unlock-page/unlock-page.component.test.js", + "ui/pages/unlock-page/unlock-page.container.js", + "ui/pages/unlock-page/unlock-page.container.test.js", + "ui/pages/unlock-page/unlock-page.stories.js", + "ui/selectors/confirm-transaction.js", + "ui/selectors/confirm-transaction.test.js", + "ui/selectors/custom-gas.js", + "ui/selectors/custom-gas.test.js", + "ui/selectors/first-time-flow.js", + "ui/selectors/index.js", + "ui/selectors/metametrics.js", + "ui/selectors/metametrics.test.js", + "ui/selectors/nonce-sorted-transactions-selector.test.js", + "ui/selectors/permissions.js", + "ui/selectors/permissions.test.js", + "ui/selectors/selectors.js", + "ui/selectors/selectors.test.js", + "ui/selectors/transactions.js", + "ui/selectors/transactions.test.js", + "ui/store/actionConstants.js", + "ui/store/actionConstants.test.js", + "ui/store/actions.js", + "ui/store/actions.test.js", + "ui/store/store.js" +] diff --git a/development/ts-migration-dashboard/scripts/build-module-partitions.ts b/development/ts-migration-dashboard/scripts/build-module-partitions.ts new file mode 100644 index 000000000..4d4bcc5d8 --- /dev/null +++ b/development/ts-migration-dashboard/scripts/build-module-partitions.ts @@ -0,0 +1,336 @@ +import fs from 'fs'; +import path from 'path'; +import fg from 'fast-glob'; +import madge from 'madge'; +import { + BASE_DIRECTORY, + ENTRYPOINT_PATTERNS, + FILES_TO_CONVERT_PATH, +} from './constants'; + +/** + * Represents a module that has been imported somewhere in the codebase. + * + * @property id - The name of a file or NPM module. + * @property dependents - The modules which are imported by this module. + * @property level - How many modules it takes to import this module (from the + * root of the dependency tree). + * @property isExternal - Whether the module refers to a NPM module. + * @property hasBeenConverted - Whether the module was one of the files we + * wanted to convert to TypeScript and has been converted. + */ +type Module = { + id: string; + dependents: Module[]; + level: number; + isExternal: boolean; + hasBeenConverted: boolean; +}; + +/** + * Represents a set of modules that sit at a certain level within the final + * dependency tree. + * + * @property level - How many modules it takes to import this module (from the + * root of the dependency tree). + * @property children - The modules that share this same level. + * @property children[].name - The name of the item being imported. + * @property children[].hasBeenConverted - Whether or not the module (assuming + * that it is a file in our codebase) has been converted to TypeScript. + */ +export type ModulePartition = { + level: number; + children: { + name: string; + hasBeenConverted: boolean; + }[]; +}; + +/** + * Uses the `madge` package to traverse the dependency graphs assembled from a + * set of entrypoints (a combination of the entrypoints that the build script + * uses to build the extension as well as a manually picked list), builds a + * combined dependency tree, then arranges the nodes of that tree by level, + * which is the number of files it takes to reach a file within the whole tree. + * + * @returns An array of objects which can be used to render the dashboard, where + * each object represents a group of files at a certain level in the dependency + * tree. + */ +export default async function buildModulePartitions(): Promise< + ModulePartition[] +> { + const allowedFilePaths = readFilesToConvert(); + + const possibleEntryFilePaths = ( + await Promise.all( + ENTRYPOINT_PATTERNS.map((entrypointPattern) => { + return fg( + path.resolve(BASE_DIRECTORY, `${entrypointPattern}.{js,ts,tsx}`), + ); + }), + ) + ).flat(); + + const entryFilePaths = filterFilePaths( + possibleEntryFilePaths.map((possibleEntrypoint) => + path.relative(BASE_DIRECTORY, possibleEntrypoint), + ), + allowedFilePaths, + ); + + const result = await madge(entryFilePaths, { + baseDir: BASE_DIRECTORY, + tsConfig: path.join(BASE_DIRECTORY, 'tsconfig.json'), + }); + const dependenciesByFilePath = result.obj(); + const modulesById = buildModulesWithLevels( + dependenciesByFilePath, + entryFilePaths, + allowedFilePaths, + ); + return partitionModulesByLevel(modulesById); +} + +/** + * Returns the contents of a JSON file that stores the names of the files that + * we plan on converting to TypeScript. All of the dependency information + * will be filtered through this list. + */ +function readFilesToConvert(): string[] { + try { + return JSON.parse(fs.readFileSync(FILES_TO_CONVERT_PATH, 'utf-8')); + } catch (error: unknown) { + throw new Error( + 'Could not read or parse list of files to convert. ' + + 'Have you tried running the following command?\n\n' + + ' yarn ts-migration:enumerate\n\n' + + `Original error: ${error}`, + ); + } +} + +/** + * Filters the given set of file paths according to the given allow list. As the + * entry file paths could refer to TypeScript files, and the allow list is + * guaranteed to be JavaScript files, the entry file paths are normalized to end + * in `.js` before being filtered. + * + * @param filePaths - A set of file paths. + * @param allowedFilePaths - A set of allowed file paths. + * @returns The filtered file paths. + */ +function filterFilePaths(filePaths: string[], allowedFilePaths: string[]) { + return filePaths.filter((filePath) => + allowedFilePaths.includes(filePath.replace(/\.tsx?$/u, '.js')), + ); +} + +/** + * This function takes a flat data structure that represents the dependency + * graph of a system. It traverses the graph, converting it to a tree (i.e., + * resolving circular dependencies), but where any node of the tree is + * accessible immediately. The "level" of a dependency — how many other + * dependencies it takes to reach that dependency — is also recorded. + * + * @param dependenciesByModuleId - An object that maps a file path in the + * dependency graph to the dependencies that it imports. This information is + * provided by the `madge` package. + * @param entryModuleIds - File paths which will initiate the traversal through + * the dependency graph. These file paths will always be level 0. + * @param allowedFilePaths - The list of original JavaScript files to + * convert to TypeScript; governs which files will end up in the final + * dependency graph. + * @returns A data structure that maps the id of a module in the dependency + * graph to an object that represents that module. + */ +function buildModulesWithLevels( + dependenciesByModuleId: Record, + entryModuleIds: string[], + allowedFilePaths: string[], +): Record { + // Our overall goal is that we want to partition the graph into different + // sections. We want to find the leaves of the graph — that is, files that + // depend on no other files — then the dependents of the leaves — those files + // that depend on the leaves — then the dependents of the dependents, etc. We + // can derive this information by traversing the graph, and for each module we + // encounter, recording the number of modules it takes to reach that module. + // We call this number the **level**. + // + // We will discuss a couple of optimizations we've made to ensure that graph + // traversal is performant. + // + // Naively, in order to calculate the level of each module, we need to follow + // that module's dependencies, then the dependencies of the dependencies, + // etc., until we hit leaves. Essentially, we need to follow each connection + // in the graph. However, this creates a performance problem, because in a + // large system a file could get imported multiple ways (this is the nature of + // a graph: each node can have multiple incoming connections and multiple + // outgoing connections). For instance: + // + // - `foo.js` could import `bar.js` which could import `baz.js` + // - `foo.js` could also import `baz.js` directly + // - `foo.js` could also import `bar.js` which imports `qux.js` which imports `baz.js` + // + // In this case, even if there are few modules in a system, a subset of those + // modules may be visited multiple times in the course of traversing + // connections between all of them. This is costly and unnecessary. + // + // To address this, as we are traversing the graph, we record modules we've + // visited along with the level when we visited it. If we encounter a module + // again through some other path, and the level this time is less than the + // level we've already recorded, then we know we don't need to revisit that + // module or — crucially — any of its dependencies. Therefore we can skip + // whole sections of the graph. + // + // In addition, in a large enough system, some files could import files that end + // up importing themselves later on: + // + // - `foo.js` could import `bar.js`, which imports `baz.js`, which imports `foo.js`, which... + // + // These are called circular dependencies, and we detect them by tracking the + // files that depend on a file (dependents) in addition to the files on which + // that file depends (dependencies). In the example above, `baz.js` has a + // dependency `foo.js`, and its chain of dependents is `bar.js` -> `foo.js` + // (working backward from `baz.js`). The chain of dependents of `baz.js` + // includes `foo.js`, so we say `foo.js` is a circular dependency of `baz.js`, + // and we don't need to follow it. + + const modulesToFill: Module[] = entryModuleIds.map((moduleId) => { + return { + id: moduleId, + dependents: [], + level: 0, + isExternal: false, + hasBeenConverted: /\.tsx?$/u.test(moduleId), + }; + }); + const modulesById: Record = {}; + + while (modulesToFill.length > 0) { + const currentModule = modulesToFill.shift() as Module; + const childModulesToFill: Module[] = []; + (dependenciesByModuleId[currentModule.id] ?? []).forEach( + (givenChildModuleId) => { + const npmPackageMatch = givenChildModuleId.match( + /^node_modules\/(?:(@[^/]+)\/)?([^/]+)\/.+$/u, + ); + + let childModuleId; + if (npmPackageMatch) { + childModuleId = + npmPackageMatch[1] === undefined + ? `${npmPackageMatch[2]}` + : `${npmPackageMatch[1]}/${npmPackageMatch[2]}`; + } else { + childModuleId = givenChildModuleId; + } + + // Skip circular dependencies + if ( + findDirectAndIndirectDependentIdsOf(currentModule).has(childModuleId) + ) { + return; + } + + // Skip files that weren't on the original list of JavaScript files to + // convert, as we don't want them to show up on the status dashboard + if ( + !npmPackageMatch && + !allowedFilePaths.includes(childModuleId.replace(/\.tsx?$/u, '.js')) + ) { + return; + } + + const existingChildModule = modulesById[childModuleId]; + + if (existingChildModule === undefined) { + const childModule: Module = { + id: childModuleId, + dependents: [currentModule], + level: currentModule.level + 1, + isExternal: Boolean(npmPackageMatch), + hasBeenConverted: /\.tsx?$/u.test(childModuleId), + }; + childModulesToFill.push(childModule); + } else { + if (currentModule.level + 1 > existingChildModule.level) { + existingChildModule.level = currentModule.level + 1; + // Update descendant modules' levels + childModulesToFill.push(existingChildModule); + } else { + // There is no point in descending into dependencies of this module + // if the new level of the module would be <= the existing level, + // because all of the dependencies from this point on are guaranteed + // to have a higher level and are therefore already at the right + // level. + } + + if (!existingChildModule.dependents.includes(currentModule)) { + existingChildModule.dependents.push(currentModule); + } + } + }, + ); + if (childModulesToFill.length > 0) { + modulesToFill.push(...childModulesToFill); + } + if (!(currentModule.id in modulesById)) { + modulesById[currentModule.id] = currentModule; + } + } + + return modulesById; +} + +/** + * Given a file in the dependency graph, returns all of the names of the files + * which import that file directly or through some other file. + * + * @param module - A module in the graph. + * @returns The ids of the modules which are incoming connections to + * the module. + */ +function findDirectAndIndirectDependentIdsOf(module: Module): Set { + const modulesToProcess = [module]; + const allDependentIds = new Set(); + while (modulesToProcess.length > 0) { + const currentModule = modulesToProcess.shift() as Module; + currentModule.dependents.forEach((dependent) => { + if (!allDependentIds.has(dependent.id)) { + allDependentIds.add(dependent.id); + modulesToProcess.push(dependent); + } + }); + } + return allDependentIds; +} + +/** + * Partitions modules in the dependency graph by level (see {@link buildModulesWithLevels} + * for an explanation). This will be used to render those modules on the + * dashboard in groups. + * + * @param modulesById - An object that maps the id of a module to an object that + * represents that module. + * @returns An array where each item represents a level and is the module ids + * that match that level, sorted by largest level (leaves) to smallest level + * (roots). + */ +function partitionModulesByLevel( + modulesById: Record, +): ModulePartition[] { + const levels = Object.values(modulesById).map((module) => module.level); + const maxLevel = Math.max(...levels); + const modulePartitions: ModulePartition[] = []; + for (let i = 0; i <= maxLevel; i++) { + modulePartitions[i] = { level: i + 1, children: [] }; + } + Object.values(modulesById).forEach((module) => { + modulePartitions[module.level].children.push({ + name: module.id, + hasBeenConverted: module.hasBeenConverted, + }); + }); + return modulePartitions.reverse(); +} diff --git a/development/ts-migration-dashboard/scripts/build.ts b/development/ts-migration-dashboard/scripts/build.ts new file mode 100644 index 000000000..ebf0bec70 --- /dev/null +++ b/development/ts-migration-dashboard/scripts/build.ts @@ -0,0 +1,227 @@ +import path from 'path'; +import fs from 'fs-extra'; +import yargs from 'yargs/yargs'; +import { hideBin } from 'yargs/helpers'; +import chokidar from 'chokidar'; +import browserify from 'browserify'; +import pify from 'pify'; +import endOfStream from 'end-of-stream'; +import pump from 'pump'; +import gulp from 'gulp'; +import gulpDartSass from 'gulp-dart-sass'; +import sourcemaps from 'gulp-sourcemaps'; +import autoprefixer from 'gulp-autoprefixer'; +import fg from 'fast-glob'; +import buildModulePartitions from './build-module-partitions'; + +const promisifiedPump = pify(pump); +const projectDirectoryPath = path.resolve(__dirname, '../'); +const sourceDirectoryPath = path.join(projectDirectoryPath, 'src'); +const intermediateDirectoryPath = path.join( + projectDirectoryPath, + 'intermediate', +); +const buildDirectoryPath = path.join(projectDirectoryPath, 'build'); + +main().catch((error) => { + console.error(error); + process.exit(1); +}); + +/** + * Compiles a set of files that we want to convert to TypeScript, divided by + * level in the dependency tree. + * + * @param dest - The directory in which to hold the file. + */ +async function generateIntermediateFiles(dest: string) { + const partitions = await buildModulePartitions(); + const partitionsFile = path.resolve(dest, 'partitions.json'); + await pify(fs.writeFile)( + partitionsFile, + JSON.stringify(partitions, null, ' '), + ); + + console.log( + `- Wrote intermediate partitions file: ${path.relative( + projectDirectoryPath, + partitionsFile, + )}`, + ); +} + +/** + * Compiles the JavaScript code for the dashboard. + * + * @param src - The path to the JavaScript entrypoint. + * @param dest - The path to the compiled and bundled JavaScript file. + */ +async function compileScripts(src: string, dest: string) { + const extensions = ['.js', '.ts', '.tsx']; + const browserifyOptions: Record = { + extensions, + // Use entryFilepath for moduleIds, easier to determine origin file + fullPaths: true, + // For sourcemaps + debug: true, + }; + const bundler = browserify(browserifyOptions); + bundler.add(src); + // Run TypeScript files through Babel + bundler.transform('babelify', { extensions }); + // Inline `fs.readFileSync` files + bundler.transform('brfs'); + + const bundleStream = bundler.bundle(); + bundleStream.pipe(fs.createWriteStream(dest)); + bundleStream.on('error', (error: Error) => { + throw error; + }); + await pify(endOfStream(bundleStream)); + + console.log( + `- Compiled scripts: ${path.relative( + projectDirectoryPath, + src, + )} -> ${path.relative(projectDirectoryPath, dest)}`, + ); +} + +/** + * Compiles the CSS code for the dashboard. + * + * @param src - The path to the CSS file. + * @param dest - The path to the compiled CSS file. + */ +async function compileStylesheets(src: string, dest: string): Promise { + await promisifiedPump( + gulp.src(src), + sourcemaps.init(), + gulpDartSass().on('error', (error: unknown) => { + throw error; + }), + autoprefixer(), + sourcemaps.write(), + gulp.dest(dest), + ); + console.log( + `- Compiled stylesheets: ${path.relative( + projectDirectoryPath, + src, + )} -> ${path.relative(projectDirectoryPath, dest)}`, + ); +} + +/** + * Copies static files (images and the index HTML file) to the build directory. + * + * @param src - The path to the directory that holds the static files. + * @param dest - The path where they should be copied. + */ +async function copyStaticFiles(src: string, dest: string): Promise { + const entries = await fg([path.join(src, '*')], { + onlyFiles: false, + }); + await Promise.all( + entries.map(async (srcEntry) => { + const destEntry = path.join(dest, path.basename(srcEntry)); + await fs.copy(srcEntry, destEntry); + console.log( + `- Copied static files: ${path.relative( + projectDirectoryPath, + srcEntry, + )} -> ${path.relative(projectDirectoryPath, destEntry)}`, + ); + }), + ); +} + +/** + * Generates a compiled and bundled version of the dashboard ready for + * distribution. + * + * @param options - The options. + * @param options.isInitial - Whether this is the first time this function has + * been called (if we are watching for file changes, we may call this function + * multiple times). + * @param options.isOnly - Whether this will be the only time this function will + * be called (if we are not watching for file changes, then this will never be + * called again). + */ +async function rebuild({ + isInitial = false, + isOnly = false, +} = {}): Promise { + if (isInitial && !isOnly) { + console.log('Running initial build, please wait (may take a bit)...'); + } + + if (!isInitial) { + console.log('Detected change, rebuilding...'); + } + + await fs.emptyDir(buildDirectoryPath); + + try { + if (isInitial) { + await fs.emptyDir(intermediateDirectoryPath); + await generateIntermediateFiles(intermediateDirectoryPath); + } + + await compileScripts( + path.join(sourceDirectoryPath, 'index.tsx'), + path.join(buildDirectoryPath, 'index.js'), + ); + await compileStylesheets( + path.join(sourceDirectoryPath, 'index.scss'), + path.join(buildDirectoryPath), + ); + await copyStaticFiles( + path.join(sourceDirectoryPath, 'public'), + path.join(buildDirectoryPath), + ); + } catch (error: unknown) { + console.error(error); + } +} + +/** + * The entrypoint to this script. Parses command-line arguments, then, depending + * on whether `--watch` was given, either starts a file watcher, after which the + * dashboard will be built on file changes, or builds the dashboard immediately. + */ +async function main() { + const opts = yargs(hideBin(process.argv)) + .usage('Usage: $0 [options]') + .option('watch', { + alias: 'w', + type: 'boolean', + description: 'Automatically build when there are changes', + }) + .help('h') + .alias('h', 'help') + .parseSync(); + + console.log(`Working directory: ${projectDirectoryPath}`); + + if (opts.watch) { + const rebuildIgnoringErrors = () => { + rebuild().catch((error: Error) => { + console.error(error); + }); + }; + chokidar + .watch(path.join(sourceDirectoryPath, '**/*.{html,ts,tsx,scss}'), { + ignoreInitial: true, + }) + .on('add', rebuildIgnoringErrors) + .on('change', rebuildIgnoringErrors) + .on('unlink', rebuildIgnoringErrors) + .on('error', (error: unknown) => { + console.error(error); + }); + await rebuild({ isInitial: true, isOnly: false }); + } else { + await rebuild({ isInitial: true, isOnly: true }); + } +} diff --git a/development/ts-migration-dashboard/scripts/constants.ts b/development/ts-migration-dashboard/scripts/constants.ts new file mode 100644 index 000000000..a283fd8e0 --- /dev/null +++ b/development/ts-migration-dashboard/scripts/constants.ts @@ -0,0 +1,19 @@ +import path from 'path'; + +export const BASE_DIRECTORY = path.resolve(__dirname, '../../..'); +export const ENTRYPOINT_PATTERNS = [ + 'app/scripts/background', + 'app/scripts/contentscript', + 'app/scripts/disable-console', + 'app/scripts/inpage', + 'app/scripts/phishing-detect', + 'app/scripts/sentry-install', + 'app/scripts/ui', + 'development/build/index', + '**/*.stories', + '**/*.test', +]; +export const FILES_TO_CONVERT_PATH = path.join( + __dirname, + '../files-to-convert.json', +); diff --git a/development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts b/development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts new file mode 100644 index 000000000..cd375ca9d --- /dev/null +++ b/development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts @@ -0,0 +1,59 @@ +import path from 'path'; +import fs from 'fs'; +import fg from 'fast-glob'; +import madge from 'madge'; +import { + BASE_DIRECTORY, + ENTRYPOINT_PATTERNS, + FILES_TO_CONVERT_PATH, +} from './constants'; + +main().catch((error) => { + console.error(error); + process.exit(1); +}); + +/** + * The entrypoint to this script. + * + * Uses the `madge` package to traverse the dependency graph of a set of + * entrypoints (a combination of the ones that the build script uses to build + * the extension as well as a manually picked list), outputting a JSON array + * containing all JavaScript files that need to be converted to TypeScript. + */ +async function main(): Promise { + const entrypoints = ( + await Promise.all( + ENTRYPOINT_PATTERNS.map((entrypointPattern) => { + return fg( + path.resolve(BASE_DIRECTORY, `${entrypointPattern}.{js,ts,tsx}`), + ); + }), + ) + ).flat(); + console.log( + `Traversing dependency trees for ${entrypoints.length} entrypoints, please wait...`, + ); + const result = await madge(entrypoints, { + baseDir: BASE_DIRECTORY, + }); + const dependenciesByFilePath = result.obj(); + const sortedFilePaths = Object.keys(dependenciesByFilePath) + .sort() + .filter((filePath) => { + return ( + /\.(?:js|tsx?)$/u.test(filePath) && + !/^(?:\.storybook|node_modules)\//u.test(filePath) + ); + }); + + fs.writeFileSync( + FILES_TO_CONVERT_PATH, + JSON.stringify(sortedFilePaths, null, ' '), + ); + console.log( + `${path.relative(process.cwd(), FILES_TO_CONVERT_PATH)} written with ${ + sortedFilePaths.length + } modules.`, + ); +} diff --git a/development/ts-migration-dashboard/src/App.tsx b/development/ts-migration-dashboard/src/App.tsx new file mode 100644 index 000000000..d799815b4 --- /dev/null +++ b/development/ts-migration-dashboard/src/App.tsx @@ -0,0 +1,157 @@ +import React from 'react'; +import classnames from 'classnames'; +import { Tooltip as ReactTippy } from 'react-tippy'; +import { ModulePartition } from '../scripts/build-module-partitions'; + +// The `brfs` transform for browserify calls `fs.readLineSync` and +// `path.resolve` at build time and inlines file contents into the source code. +// To accomplish this we have to bring in `fs` and `path` using `require` and +// not `import`. This is weird in a TypeScript file, and typescript-eslint +// (rightly) complains about this, but it's actually okay because the above +// `import` lines will actually get turned into `require`s anyway before passing +// through the rest of browserify. However, `brfs` should handle this. There is +// an active bug for this, but there isn't a known workaround yet: +// +/* eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires */ +const fs = require('fs'); +/* eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires */ +const path = require('path'); + +type Summary = { + numConvertedFiles: number; + numFiles: number; +}; + +function calculatePercentageComplete(summary: Summary) { + return ((summary.numConvertedFiles / summary.numFiles) * 100).toFixed(1); +} + +export default function App() { + const partitions = JSON.parse( + fs.readFileSync( + path.resolve(__dirname, '../intermediate/partitions.json'), + { + encoding: 'utf-8', + }, + ), + ) as ModulePartition[]; + + const allFiles = partitions.flatMap((partition) => { + return partition.children; + }); + const overallTotal = { + numConvertedFiles: allFiles.filter((file) => file.hasBeenConverted).length, + numFiles: allFiles.length, + }; + + return ( + <> +

+ + Extension TypeScript Migration Status +

+

+ OVERALL: {overallTotal.numConvertedFiles}/{overallTotal.numFiles} ( + {calculatePercentageComplete(overallTotal)}%) +

+
+ What is this? +
+

+ This is a dashboard that tracks the status of converting the + extension codebase from JavaScript to TypeScript. It is updated + whenever a new commit is pushed to the codebase, so it always + represents the current work. +

+ +

+ Each box +

+   +
+ on this page represents a file that either we want to convert or + we've already converted to TypeScript (hover over a box to see the + filename). Boxes that are +
+   +
+ greyed out are test or Storybook files. +

+ +

+ These boxes are further partitioned by level. The level of + a file is how many files you have to import before you reach that + file in the whole codebase. For instance, if we have a file{' '} + foo.js, and that file imports bar.js and{' '} + baz.js, and baz.js imports{' '} + qux.js, then: +

+ +
    +
  • + foo.js would be at level 1 +
  • +
  • + bar.js and baz.js would be at{' '} + level 2 +
  • +
  • + qux.js would be at level 3 +
  • +
+ +

+ This level assignment can be used to determine a priority for + converting the remaining JavaScript files. Files which have fewer + dependencies should in theory be easier to convert, so files with a + higher level should be converted first. In other words,{' '} + + you should be able to start from the top and go down + + . +

+
+
+
+ {partitions.map((partition) => { + return ( +
+
level {partition.level}
+
+ {partition.children.map(({ name, hasBeenConverted }) => { + const isTest = /\.test\.(?:js|tsx?)/u.test(name); + const isStorybookFile = /\.stories\.(?:js|tsx?)/u.test(name); + return ( + +
+ + ); + })} +
+
+ ); + })} +
+ + ); +} diff --git a/development/ts-migration-dashboard/src/index.scss b/development/ts-migration-dashboard/src/index.scss new file mode 100644 index 000000000..863fb52c2 --- /dev/null +++ b/development/ts-migration-dashboard/src/index.scss @@ -0,0 +1,191 @@ +@import '../../../ui/css/reset'; +@import './tippy'; + +/* Native elements */ + +* { + box-sizing: border-box; +} + +html { + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Helvetica, + Arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji"; + font-size: 16px; +} + +body { + padding: 2rem; +} + +p:not(:last-child) { + margin-bottom: 1rem; +} + +code { + font-size: 0.85em; + font-family: + ui-monospace, + SFMono-Regular, + SF Mono, + Menlo, + Consolas, + Liberation Mono, + monospace; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +ul { + list-style: disc; + margin-bottom: 1rem; + margin-left: 1rem; +} + +/* Custom elements */ + +:root { + --blue-gray-350: hsl(209deg 13.7% 62.4%); + --blue-gray-100: hsl(209.8deg 16.5% 89%); + --green: hsl(113deg 100% 38%); +} + +.page-header { + font-size: 2rem; + font-weight: bold; + display: flex; + align-items: center; + + &__icon { + height: 1em; + margin-right: 0.5em; + } +} + +.overall-summary { + font-size: 1.5rem; + line-height: 1.5rem; + padding: 1rem; + margin: 2rem 0; + background: linear-gradient(90deg, var(--green) 0% var(--progress), var(--blue-gray-350) var(--progress) 100%) no-repeat; + border: 2px solid rgb(0 0 0 / 50%); + color: white; + font-weight: bold; +} + +.help { + margin-bottom: 2rem; + color: black; + line-height: 1.5rem; + background-color: #ffffc8; + border: 1px solid rgb(0 0 0 / 25%); + max-width: 40rem; + + [open] { + padding: 1rem; + } + + &__question { + font-weight: bold; + cursor: pointer; + font-size: 1.1rem; + padding: 1rem; + } + + &__answer { + padding: 0 1rem 1rem; + } +} + +.section-header { + font-size: 1.25rem; + line-height: 1.25rem; + padding: 0.75rem; + color: white; + background: linear-gradient(90deg, var(--green) 0% var(--progress), var(--blue-gray-350) var(--progress) 100%) no-repeat; + border-bottom: 1px solid rgb(0 0 0 / 50%); + + &--primary { + font-weight: bold; + } +} + +.section { + margin-bottom: 2rem; + border: 1px solid rgb(0 0 0 / 50%); +} + +.level { + display: flex; + gap: 0.5rem; + margin-bottom: 1rem; + + &__name { + writing-mode: vertical-rl; + font-size: 0.75rem; + padding: 0.75rem 0; + } + + &__children { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + padding: 1rem; + border: 1px dotted gray; + border-radius: 0.5rem; + height: fit-content; + } +} + +.file { + width: 1.5rem; + height: 1.5rem; + border: 1px solid rgba(0 0 0 / 25%); + border-radius: 0.25rem; + + &--inline { + display: inline-block; + margin: 0 0.5rem; + vertical-align: middle; + } + + &__tooltipped { + width: 1.5rem; + height: 1.5rem; + } + + &--has-been-converted { + background-color: var(--green); + } + + &--to-be-converted { + background-color: var(--blue-gray-100); + } + + &--test, + &--storybook { + opacity: 0.3; + } +} + +/* Package overrides */ + +.tippy-tooltip { + padding: 0.4rem 0.6rem; +} + +.tippy-tooltip-content { + font-size: 0.8rem; +} diff --git a/development/ts-migration-dashboard/src/index.tsx b/development/ts-migration-dashboard/src/index.tsx new file mode 100644 index 000000000..5c458b5ae --- /dev/null +++ b/development/ts-migration-dashboard/src/index.tsx @@ -0,0 +1,7 @@ +import * as React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +const appElement = document.querySelector('#app'); + +ReactDOM.render(, appElement); diff --git a/development/ts-migration-dashboard/src/public/images/metamask-fox.svg b/development/ts-migration-dashboard/src/public/images/metamask-fox.svg new file mode 100644 index 000000000..a6cffef03 --- /dev/null +++ b/development/ts-migration-dashboard/src/public/images/metamask-fox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/development/ts-migration-dashboard/src/public/index.html b/development/ts-migration-dashboard/src/public/index.html new file mode 100644 index 000000000..9e72685b3 --- /dev/null +++ b/development/ts-migration-dashboard/src/public/index.html @@ -0,0 +1,13 @@ + + + + + + Extension TypeScript Migration Status + + + +
+ + + diff --git a/development/ts-migration-dashboard/src/tippy.scss b/development/ts-migration-dashboard/src/tippy.scss new file mode 100644 index 000000000..0ce28c5ea --- /dev/null +++ b/development/ts-migration-dashboard/src/tippy.scss @@ -0,0 +1,655 @@ +.tippy-touch { + cursor: pointer !important; +} + +.tippy-notransition { + transition: none !important; +} + +.tippy-popper { + max-width: 400px; + -webkit-perspective: 800px; + perspective: 800px; + z-index: 9999; + outline: 0; + transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); + pointer-events: none; +} + +.tippy-popper.html-template { + max-width: 96%; + max-width: calc(100% - 20px); +} + +.tippy-popper[x-placement^='top'] [x-arrow] { + border-top: 7px solid #333; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + bottom: -7px; + margin: 0 9px; +} + +.tippy-popper[x-placement^='top'] [x-arrow].arrow-small { + border-top: 5px solid #333; + border-right: 5px solid transparent; + border-left: 5px solid transparent; + bottom: -5px; +} + +.tippy-popper[x-placement^='top'] [x-arrow].arrow-big { + border-top: 10px solid #333; + border-right: 10px solid transparent; + border-left: 10px solid transparent; + bottom: -10px; +} + +.tippy-popper[x-placement^='top'] [x-circle] { + -webkit-transform-origin: 0 33%; + transform-origin: 0 33%; +} + +.tippy-popper[x-placement^='top'] [x-circle].enter { + -webkit-transform: scale(1) translate(-50%, -55%); + transform: scale(1) translate(-50%, -55%); + opacity: 1; +} + +.tippy-popper[x-placement^='top'] [x-circle].leave { + -webkit-transform: scale(0.15) translate(-50%, -50%); + transform: scale(0.15) translate(-50%, -50%); + opacity: 0; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.light-theme [x-circle] { + background-color: #fff; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.light-theme [x-arrow] { + border-top: 7px solid #fff; + border-right: 7px solid transparent; + border-left: 7px solid transparent; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.light-theme [x-arrow].arrow-small { + border-top: 5px solid #fff; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.light-theme [x-arrow].arrow-big { + border-top: 10px solid #fff; + border-right: 10px solid transparent; + border-left: 10px solid transparent; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.transparent-theme [x-circle] { + background-color: rgba(0, 0, 0, 0.7); +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.transparent-theme [x-arrow] { + border-top: 7px solid rgba(0, 0, 0, 0.7); + border-right: 7px solid transparent; + border-left: 7px solid transparent; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.transparent-theme [x-arrow].arrow-small { + border-top: 5px solid rgba(0, 0, 0, 0.7); + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tippy-popper[x-placement^='top'] .tippy-tooltip.transparent-theme [x-arrow].arrow-big { + border-top: 10px solid rgba(0, 0, 0, 0.7); + border-right: 10px solid transparent; + border-left: 10px solid transparent; +} + +.tippy-popper[x-placement^='top'] [data-animation='perspective'] { + -webkit-transform-origin: bottom; + transform-origin: bottom; +} + +.tippy-popper[x-placement^='top'] [data-animation='perspective'].enter { + opacity: 1; + -webkit-transform: translateY(-10px) rotateX(0); + transform: translateY(-10px) rotateX(0); +} + +.tippy-popper[x-placement^='top'] [data-animation='perspective'].leave { + opacity: 0; + -webkit-transform: translateY(0) rotateX(90deg); + transform: translateY(0) rotateX(90deg); +} + +.tippy-popper[x-placement^='top'] [data-animation='fade'].enter { + opacity: 1; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); +} + +.tippy-popper[x-placement^='top'] [data-animation='fade'].leave { + opacity: 0; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); +} + +.tippy-popper[x-placement^='top'] [data-animation='shift'].enter { + opacity: 1; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); +} + +.tippy-popper[x-placement^='top'] [data-animation='shift'].leave { + opacity: 0; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.tippy-popper[x-placement^='top'] [data-animation='scale'].enter { + opacity: 1; + -webkit-transform: translateY(-10px) scale(1); + transform: translateY(-10px) scale(1); +} + +.tippy-popper[x-placement^='top'] [data-animation='scale'].leave { + opacity: 0; + -webkit-transform: translateY(0) scale(0); + transform: translateY(0) scale(0); +} + +.tippy-popper[x-placement^='bottom'] [x-arrow] { + border-bottom: 7px solid #333; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + top: -7px; + margin: 0 9px; +} + +.tippy-popper[x-placement^='bottom'] [x-arrow].arrow-small { + border-bottom: 5px solid #333; + border-right: 5px solid transparent; + border-left: 5px solid transparent; + top: -5px; +} + +.tippy-popper[x-placement^='bottom'] [x-arrow].arrow-big { + border-bottom: 10px solid #333; + border-right: 10px solid transparent; + border-left: 10px solid transparent; + top: -10px; +} + +.tippy-popper[x-placement^='bottom'] [x-circle] { + -webkit-transform-origin: 0 -50%; + transform-origin: 0 -50%; +} + +.tippy-popper[x-placement^='bottom'] [x-circle].enter { + -webkit-transform: scale(1) translate(-50%, -45%); + transform: scale(1) translate(-50%, -45%); + opacity: 1; +} + +.tippy-popper[x-placement^='bottom'] [x-circle].leave { + -webkit-transform: scale(0.15) translate(-50%, -5%); + transform: scale(0.15) translate(-50%, -5%); + opacity: 0; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.light-theme [x-circle] { + background-color: #fff; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.light-theme [x-arrow] { + border-bottom: 7px solid #fff; + border-right: 7px solid transparent; + border-left: 7px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.light-theme [x-arrow].arrow-small { + border-bottom: 5px solid #fff; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.light-theme [x-arrow].arrow-big { + border-bottom: 10px solid #fff; + border-right: 10px solid transparent; + border-left: 10px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.transparent-theme [x-circle] { + background-color: rgba(0, 0, 0, 0.7); +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.transparent-theme [x-arrow] { + border-bottom: 7px solid rgba(0, 0, 0, 0.7); + border-right: 7px solid transparent; + border-left: 7px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.transparent-theme [x-arrow].arrow-small { + border-bottom: 5px solid rgba(0, 0, 0, 0.7); + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] .tippy-tooltip.transparent-theme [x-arrow].arrow-big { + border-bottom: 10px solid rgba(0, 0, 0, 0.7); + border-right: 10px solid transparent; + border-left: 10px solid transparent; +} + +.tippy-popper[x-placement^='bottom'] [data-animation='perspective'] { + -webkit-transform-origin: top; + transform-origin: top; +} + +.tippy-popper[x-placement^='bottom'] [data-animation='perspective'].enter { + opacity: 1; + -webkit-transform: translateY(10px) rotateX(0); + transform: translateY(10px) rotateX(0); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='perspective'].leave { + opacity: 0; + -webkit-transform: translateY(0) rotateX(-90deg); + transform: translateY(0) rotateX(-90deg); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='fade'].enter { + opacity: 1; + -webkit-transform: translateY(10px); + transform: translateY(10px); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='fade'].leave { + opacity: 0; + -webkit-transform: translateY(10px); + transform: translateY(10px); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='shift'].enter { + opacity: 1; + -webkit-transform: translateY(10px); + transform: translateY(10px); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='shift'].leave { + opacity: 0; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='scale'].enter { + opacity: 1; + -webkit-transform: translateY(10px) scale(1); + transform: translateY(10px) scale(1); +} + +.tippy-popper[x-placement^='bottom'] [data-animation='scale'].leave { + opacity: 0; + -webkit-transform: translateY(0) scale(0); + transform: translateY(0) scale(0); +} + +.tippy-popper[x-placement^='left'] [x-arrow] { + border-left: 7px solid #333; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + right: -7px; + margin: 6px 0; +} + +.tippy-popper[x-placement^='left'] [x-arrow].arrow-small { + border-left: 5px solid #333; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + right: -5px; +} + +.tippy-popper[x-placement^='left'] [x-arrow].arrow-big { + border-left: 10px solid #333; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + right: -10px; +} + +.tippy-popper[x-placement^='left'] [x-circle] { + -webkit-transform-origin: 50% 0; + transform-origin: 50% 0; +} + +.tippy-popper[x-placement^='left'] [x-circle].enter { + -webkit-transform: scale(1) translate(-50%, -50%); + transform: scale(1) translate(-50%, -50%); + opacity: 1; +} + +.tippy-popper[x-placement^='left'] [x-circle].leave { + -webkit-transform: scale(0.15) translate(-50%, -50%); + transform: scale(0.15) translate(-50%, -50%); + opacity: 0; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.light-theme [x-circle] { + background-color: #fff; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.light-theme [x-arrow] { + border-left: 7px solid #fff; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.light-theme [x-arrow].arrow-small { + border-left: 5px solid #fff; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.light-theme [x-arrow].arrow-big { + border-left: 10px solid #fff; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.transparent-theme [x-circle] { + background-color: rgba(0, 0, 0, 0.7); +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.transparent-theme [x-arrow] { + border-left: 7px solid rgba(0, 0, 0, 0.7); + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.transparent-theme [x-arrow].arrow-small { + border-left: 5px solid rgba(0, 0, 0, 0.7); + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; +} + +.tippy-popper[x-placement^='left'] .tippy-tooltip.transparent-theme [x-arrow].arrow-big { + border-left: 10px solid rgba(0, 0, 0, 0.7); + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; +} + +.tippy-popper[x-placement^='left'] [data-animation='perspective'] { + -webkit-transform-origin: right; + transform-origin: right; +} + +.tippy-popper[x-placement^='left'] [data-animation='perspective'].enter { + opacity: 1; + -webkit-transform: translateX(-10px) rotateY(0); + transform: translateX(-10px) rotateY(0); +} + +.tippy-popper[x-placement^='left'] [data-animation='perspective'].leave { + opacity: 0; + -webkit-transform: translateX(0) rotateY(-90deg); + transform: translateX(0) rotateY(-90deg); +} + +.tippy-popper[x-placement^='left'] [data-animation='fade'].enter { + opacity: 1; + -webkit-transform: translateX(-10px); + transform: translateX(-10px); +} + +.tippy-popper[x-placement^='left'] [data-animation='fade'].leave { + opacity: 0; + -webkit-transform: translateX(-10px); + transform: translateX(-10px); +} + +.tippy-popper[x-placement^='left'] [data-animation='shift'].enter { + opacity: 1; + -webkit-transform: translateX(-10px); + transform: translateX(-10px); +} + +.tippy-popper[x-placement^='left'] [data-animation='shift'].leave { + opacity: 0; + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.tippy-popper[x-placement^='left'] [data-animation='scale'].enter { + opacity: 1; + -webkit-transform: translateX(-10px) scale(1); + transform: translateX(-10px) scale(1); +} + +.tippy-popper[x-placement^='left'] [data-animation='scale'].leave { + opacity: 0; + -webkit-transform: translateX(0) scale(0); + transform: translateX(0) scale(0); +} + +.tippy-popper[x-placement^='right'] [x-arrow] { + border-right: 7px solid #333; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + left: -7px; + margin: 6px 0; +} + +.tippy-popper[x-placement^='right'] [x-arrow].arrow-small { + border-right: 5px solid #333; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + left: -5px; +} + +.tippy-popper[x-placement^='right'] [x-arrow].arrow-big { + border-right: 10px solid #333; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + left: -10px; +} + +.tippy-popper[x-placement^='right'] [x-circle] { + -webkit-transform-origin: -50% 0; + transform-origin: -50% 0; +} + +.tippy-popper[x-placement^='right'] [x-circle].enter { + -webkit-transform: scale(1) translate(-50%, -50%); + transform: scale(1) translate(-50%, -50%); + opacity: 1; +} + +.tippy-popper[x-placement^='right'] [x-circle].leave { + -webkit-transform: scale(0.15) translate(-50%, -50%); + transform: scale(0.15) translate(-50%, -50%); + opacity: 0; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.light-theme [x-circle] { + background-color: #fff; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.light-theme [x-arrow] { + border-right: 7px solid #fff; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.light-theme [x-arrow].arrow-small { + border-right: 5px solid #fff; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.light-theme [x-arrow].arrow-big { + border-right: 10px solid #fff; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.transparent-theme [x-circle] { + background-color: rgba(0, 0, 0, 0.7); +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.transparent-theme [x-arrow] { + border-right: 7px solid rgba(0, 0, 0, 0.7); + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.transparent-theme [x-arrow].arrow-small { + border-right: 5px solid rgba(0, 0, 0, 0.7); + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; +} + +.tippy-popper[x-placement^='right'] .tippy-tooltip.transparent-theme [x-arrow].arrow-big { + border-right: 10px solid rgba(0, 0, 0, 0.7); + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; +} + +.tippy-popper[x-placement^='right'] [data-animation='perspective'] { + -webkit-transform-origin: left; + transform-origin: left; +} + +.tippy-popper[x-placement^='right'] [data-animation='perspective'].enter { + opacity: 1; + -webkit-transform: translateX(10px) rotateY(0); + transform: translateX(10px) rotateY(0); +} + +.tippy-popper[x-placement^='right'] [data-animation='perspective'].leave { + opacity: 0; + -webkit-transform: translateX(0) rotateY(90deg); + transform: translateX(0) rotateY(90deg); +} + +.tippy-popper[x-placement^='right'] [data-animation='fade'].enter { + opacity: 1; + -webkit-transform: translateX(10px); + transform: translateX(10px); +} + +.tippy-popper[x-placement^='right'] [data-animation='fade'].leave { + opacity: 0; + -webkit-transform: translateX(10px); + transform: translateX(10px); +} + +.tippy-popper[x-placement^='right'] [data-animation='shift'].enter { + opacity: 1; + -webkit-transform: translateX(10px); + transform: translateX(10px); +} + +.tippy-popper[x-placement^='right'] [data-animation='shift'].leave { + opacity: 0; + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.tippy-popper[x-placement^='right'] [data-animation='scale'].enter { + opacity: 1; + -webkit-transform: translateX(10px) scale(1); + transform: translateX(10px) scale(1); +} + +.tippy-popper[x-placement^='right'] [data-animation='scale'].leave { + opacity: 0; + -webkit-transform: translateX(0) scale(0); + transform: translateX(0) scale(0); +} + +.tippy-popper .tippy-tooltip.transparent-theme { + background-color: rgba(0, 0, 0, 0.7); +} + +.tippy-popper .tippy-tooltip.transparent-theme[data-animatefill] { + background-color: transparent; +} + +.tippy-popper .tippy-tooltip.light-theme { + color: #26323d; + box-shadow: + 0 4px 20px 4px rgba(0, 20, 60, 0.1), + 0 4px 80px -8px rgba(0, 20, 60, 0.2); + background-color: #fff; +} + +.tippy-popper .tippy-tooltip.light-theme[data-animatefill] { + background-color: transparent; +} + +.tippy-tooltip { + position: relative; + color: #fff; + border-radius: 4px; + font-size: 0.95rem; + padding: 0.4rem 0.8rem; + text-align: center; + will-change: transform; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background-color: #333; +} + +.tippy-tooltip--small { + padding: 0.25rem 0.5rem; + font-size: 0.8rem; +} + +.tippy-tooltip--big { + padding: 0.6rem 1.2rem; + font-size: 1.2rem; +} + +.tippy-tooltip[data-animatefill] { + overflow: hidden; + background-color: transparent; +} + +.tippy-tooltip[data-interactive] { + pointer-events: auto; +} + +.tippy-tooltip[data-inertia] { + transition-timing-function: cubic-bezier(0.53, 2, 0.36, 0.85); +} + +.tippy-tooltip [x-arrow] { + position: absolute; + width: 0; + height: 0; +} + +.tippy-tooltip [x-circle] { + position: absolute; + will-change: transform; + background-color: #333; + border-radius: 50%; + width: 130%; + width: calc(110% + 2rem); + left: 50%; + top: 50%; + z-index: -1; + overflow: hidden; + transition: all ease; +} + +.tippy-tooltip [x-circle]::before { + content: ''; + padding-top: 90%; + float: left; +} + +@media (max-width: 450px) { + .tippy-popper { + max-width: 96%; + max-width: calc(100% - 20px); + } +} diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index 28743aaa2..b5fb5d789 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -209,7 +209,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>async-iterator-all": true, "3box>ipfs>async-iterator-to-pull-stream": true, "3box>ipfs>async-iterator-to-stream": true, @@ -288,7 +287,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs-mini": { @@ -305,17 +305,6 @@ "nanoid": true } }, - "3box>ipfs>async": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true, - "browserify>timers-browserify": true, - "lodash": true - } - }, "3box>ipfs>async-iterator-to-pull-stream": { "packages": { "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, @@ -385,11 +374,11 @@ }, "3box>ipfs>datastore-core": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>datastore-core>pull-many": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>pull-stream": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>datastore-pubsub": { @@ -399,7 +388,7 @@ "3box>ipfs>multibase": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>dlv": { @@ -421,7 +410,6 @@ }, "3box>ipfs>interface-datastore": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore>uuid": true, @@ -429,7 +417,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>os-browserify": true, - "browserify>path-browserify": true + "browserify>path-browserify": true, + "gh-pages>async": true } }, "3box>ipfs>interface-datastore>uuid": { @@ -446,7 +435,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>cids": true, "3box>ipfs>ipfs-bitswap>bignumber.js": true, "3box>ipfs>ipfs-bitswap>just-debounce-it": true, @@ -461,7 +449,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-bitswap>bignumber.js": { @@ -506,7 +495,7 @@ }, "3box>ipfs>ipfs-block-service": { "packages": { - "3box>ipfs>async": true + "gh-pages>async": true } }, "3box>ipfs>ipfs-mfs": { @@ -531,7 +520,7 @@ "browserify>assert": true, "browserify>browser-resolve": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>ipfs-mfs>hamt-sharding": { @@ -562,7 +551,6 @@ }, "3box>ipfs>ipfs-repo": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>datastore-core": true, @@ -578,7 +566,8 @@ "browserify>buffer": true, "browserify>path-browserify": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-repo>bignumber.js": { @@ -699,7 +688,7 @@ "3box>ipfs>multihashes": true, "3box>ipfs>superstruct": true, "browserify>buffer": true, - "rc>deep-extend": true + "madge>rc>deep-extend": true } }, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { @@ -822,7 +811,7 @@ "3box>ipfs>protons": true, "base32-encode": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>is-ipfs": { @@ -845,7 +834,6 @@ }, "3box>ipfs>libp2p": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, "3box>ipfs>libp2p-websockets": true, @@ -861,7 +849,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>process": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -871,13 +860,13 @@ "setInterval": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "3box>ipfs>peer-id": true, "3box>ipfs>peer-info": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p-crypto": { @@ -886,7 +875,6 @@ "msCrypto": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>asn1.js": true, "3box>ipfs>libp2p-crypto>iso-random-stream": true, @@ -896,6 +884,7 @@ "3box>tweetnacl": true, "browserify>buffer": true, "ethereumjs-util>ethereum-cryptography>browserify-aes": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -918,10 +907,10 @@ }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true + "eth-trezor-keyring>hdkey>secp256k1": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { @@ -962,7 +951,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>err-code": true, @@ -990,7 +978,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "promise-to-callback": true } }, @@ -1045,7 +1034,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>libp2p-crypto": true, @@ -1053,6 +1041,7 @@ "3box>ipfs>merge-options": true, "3box>ipfs>pull-stream": true, "browserify>buffer": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -1068,14 +1057,14 @@ }, "3box>ipfs>libp2p-record": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-record>buffer-split": true, "3box>ipfs>libp2p-record>multihashing-async": true, "3box>ipfs>protons": true, "browserify>assert": true, "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true + "browserify>insert-module-globals>is-buffer": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-record>buffer-split": { @@ -1100,7 +1089,6 @@ }, "3box>ipfs>libp2p-secio": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-secio>multihashing-async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, @@ -1113,7 +1101,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1160,7 +1149,6 @@ }, "3box>ipfs>libp2p-webrtc-star": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-webrtc-star>simple-peer": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1172,7 +1160,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>stream-to-pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1187,8 +1176,8 @@ "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, "browserify>buffer": true, - "eslint>debug": true, "ethereumjs-wallet>randombytes": true, + "madge>debug": true, "pumpify>inherits": true } }, @@ -1383,12 +1372,12 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1397,7 +1386,6 @@ "console.error": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1410,7 +1398,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true, "uuid": true } @@ -1460,7 +1449,7 @@ "3box>ipfs>multiaddr-to-uri": true, "3box>ipfs>pull-mplex>interface-connection": true, "browserify>os-browserify": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p-websockets>pull-ws": { @@ -1489,7 +1478,7 @@ "packages": { "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { @@ -1524,17 +1513,16 @@ }, "3box>ipfs>libp2p>libp2p-floodsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, "3box>ipfs>pull-stream": true, "browserify>assert": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-crypto": true, @@ -1546,7 +1534,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { @@ -1566,12 +1555,11 @@ "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-switch": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, @@ -1589,7 +1577,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1601,7 +1590,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>mafmt": true, @@ -1612,7 +1600,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1632,7 +1621,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>multistream-select": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, @@ -1642,7 +1630,8 @@ "3box>ipfs>varint": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1774,12 +1763,12 @@ }, "3box>ipfs>peer-id": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>multihashes": true, "browserify>assert": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>peer-info": { @@ -1807,7 +1796,6 @@ }, "3box>ipfs>pull-mplex": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>pull-abortable": true, "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-mplex>looper": true, @@ -1817,7 +1805,8 @@ "3box>ipfs>varint": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>pull-mplex>interface-connection": { @@ -2823,7 +2812,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "@ethereumjs/tx": true, "@metamask/controllers>web3-provider-engine>backoff": true, "@metamask/controllers>web3-provider-engine>eth-block-tracker": true, @@ -2837,6 +2825,7 @@ "browserify>util": true, "eth-json-rpc-filters": true, "eth-json-rpc-infura": true, + "gh-pages>async": true, "lavamoat>json-stable-stringify": true, "watchify>xtend": true } @@ -3167,75 +3156,6 @@ "watchify>xtend": true } }, - "@metamask/providers>@metamask/object-multiplex": { - "globals": { - "console.warn": true - }, - "packages": { - "end-of-stream": true, - "pump>once": true, - "readable-stream": true - } - }, - "@metamask/rpc-methods": { - "packages": { - "@metamask/controllers": true, - "@metamask/rpc-methods>@metamask/key-tree": true, - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers": true, - "eth-rpc-errors": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree": { - "packages": { - "@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": true, - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": true, - "@metamask/rpc-methods>@metamask/key-tree>@noble/secp256k1": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/bip39": true, - "browserify>buffer": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": { - "globals": { - "crypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": { - "globals": { - "TextEncoder": true, - "crypto": true, - "setTimeout": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/secp256k1": { - "globals": { - "crypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": { - "globals": { - "TextDecoder": true, - "TextEncoder": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@scure/bip39": { - "packages": { - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": true - } - }, - "@metamask/rpc-methods>@metamask/utils": { - "packages": { - "eslint>fast-deep-equal": true - } - }, "@metamask/smart-transactions-controller": { "globals": { "URLSearchParams": true, @@ -3273,329 +3193,11 @@ "setTimeout": true } }, - "@metamask/snap-controllers": { - "globals": { - "URL": true, - "clearTimeout": true, - "console.error": true, - "console.info": true, - "console.log": true, - "console.warn": true, - "document.body.appendChild": true, - "document.createElement": true, - "document.getElementById": true, - "fetch": true, - "setTimeout": true - }, - "packages": { - "@metamask/controllers": true, - "@metamask/providers>@metamask/object-multiplex": true, - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers>@metamask/browser-passworder": true, - "@metamask/snap-controllers>@metamask/execution-environments": true, - "@metamask/snap-controllers>@metamask/obs-store": true, - "@metamask/snap-controllers>@metamask/post-message-stream": true, - "@metamask/snap-controllers>ajv": true, - "@metamask/snap-controllers>concat-stream": true, - "@metamask/snap-controllers>gunzip-maybe": true, - "@metamask/snap-controllers>json-rpc-middleware-stream": true, - "@metamask/snap-controllers>nanoid": true, - "@metamask/snap-controllers>readable-web-to-node-stream": true, - "@metamask/snap-controllers>tar-stream": true, - "browserify>buffer": true, - "browserify>crypto-browserify": true, - "eslint>fast-deep-equal": true, - "eth-rpc-errors": true, - "json-rpc-engine": true, - "json-rpc-engine>@metamask/safe-event-emitter": true, - "pump": true, - "semver": true - } - }, - "@metamask/snap-controllers>@metamask/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>buffer": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2": true, - "browserify>stream-browserify": true, - "json-rpc-engine>@metamask/safe-event-emitter": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": true, - "browserify>process": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": true, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream": { - "globals": { - "WorkerGlobalScope": true, - "addEventListener": true, - "location.origin": true, - "onmessage": "write", - "postMessage": true, - "removeEventListener": true - }, - "packages": { - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { - "packages": { - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true, - "vinyl>cloneable-readable>process-nextick-args": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, - "@metamask/snap-controllers>ajv": { - "packages": { - "eslint>fast-deep-equal": true - } - }, - "@metamask/snap-controllers>concat-stream": { - "packages": { - "@metamask/snap-controllers>concat-stream>readable-stream": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>concat-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>gunzip-maybe": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib": true, - "@metamask/snap-controllers>gunzip-maybe>is-deflate": true, - "@metamask/snap-controllers>gunzip-maybe>is-gzip": true, - "@metamask/snap-controllers>gunzip-maybe>peek-stream": true, - "@metamask/snap-controllers>gunzip-maybe>pumpify": true, - "@metamask/snap-controllers>gunzip-maybe>through2": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib>pako": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>util": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>peek-stream>duplexify": true, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>through2": true, - "browserify>buffer": true, - "terser>source-map-support>buffer-from": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>duplexify": { - "packages": { - "browserify>buffer": true, - "browserify>process": true, - "duplexify>stream-shift": true, - "end-of-stream": true, - "pumpify>inherits": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>through2": { - "packages": { - "browserify>process": true, - "browserify>util": true, - "readable-stream": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>pumpify>duplexify": true, - "@metamask/snap-controllers>gunzip-maybe>pumpify>pump": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify>duplexify": { - "packages": { - "browserify>buffer": true, - "browserify>process": true, - "duplexify>stream-shift": true, - "end-of-stream": true, - "pumpify>inherits": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify>pump": { - "packages": { - "browserify>browser-resolve": true, - "end-of-stream": true, - "pump>once": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>through2": { - "packages": { - "browserify>process": true, - "browserify>util": true, - "readable-stream": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream": { - "globals": { - "setTimeout": true - }, - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": true, - "json-rpc-engine>@metamask/safe-event-emitter": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, "@metamask/snap-controllers>nanoid": { "globals": { "crypto.getRandomValues": true } }, - "@metamask/snap-controllers>readable-web-to-node-stream": { - "packages": { - "@metamask/snap-controllers>readable-web-to-node-stream>readable-stream": true - } - }, - "@metamask/snap-controllers>readable-web-to-node-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream": { - "packages": { - "@metamask/snap-controllers>tar-stream>bl": true, - "@metamask/snap-controllers>tar-stream>fs-constants": true, - "@metamask/snap-controllers>tar-stream>readable-stream": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>string_decoder": true, - "browserify>util": true, - "end-of-stream": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream>bl": { - "packages": { - "@metamask/snap-controllers>tar-stream>readable-stream": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream>fs-constants": { - "packages": { - "browserify>constants-browserify": true - } - }, - "@metamask/snap-controllers>tar-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, "@ngraveio/bc-ur": { "packages": { "@ngraveio/bc-ur>@apocentre/alias-sampling": true, @@ -3783,8 +3385,8 @@ "@truffle/codec>web3-utils": true, "browserify>buffer": true, "browserify>util": true, - "eslint>debug": true, "gulp-dart-sass>lodash.clonedeep": true, + "madge>debug": true, "semver": true } }, @@ -4007,7 +3609,7 @@ "@truffle/codec>web3-utils": true, "@truffle/decoder>@truffle/source-map-utils": true, "@truffle/decoder>bn.js": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils": { @@ -4017,7 +3619,7 @@ "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": true, "@truffle/decoder>@truffle/source-map-utils>json-pointer": true, "@truffle/decoder>@truffle/source-map-utils>node-interval-tree": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": { @@ -4573,19 +4175,6 @@ "string.prototype.matchall>has-symbols": true } }, - "eslint>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "eslint>debug>ms": true - } - }, "eslint>optionator>fast-levenshtein": { "globals": { "Intl": true, @@ -5840,6 +5429,17 @@ "define": true } }, + "gh-pages>async": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "browserify>process": true, + "browserify>timers-browserify": true, + "lodash": true + } + }, "globalthis>define-properties": { "packages": { "globalthis>define-properties>has-property-descriptors": true, @@ -5929,6 +5529,24 @@ "Intl": true } }, + "madge>debug": { + "globals": { + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "browserify>process": true, + "madge>debug>ms": true + } + }, + "madge>rc>deep-extend": { + "packages": { + "browserify>buffer": true + } + }, "mockttp>node-forge": { "globals": { "Blob": true, @@ -6082,11 +5700,6 @@ "react": true } }, - "rc>deep-extend": { - "packages": { - "browserify>buffer": true - } - }, "react": { "globals": { "console": true @@ -6581,11 +6194,6 @@ "jsdom>request>is-typedarray": true } }, - "terser>source-map-support>buffer-from": { - "packages": { - "browserify>buffer": true - } - }, "textarea-caret": { "globals": { "document.body.appendChild": true, @@ -6608,11 +6216,6 @@ "browserify>buffer": true } }, - "vinyl>cloneable-readable>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, "web3": { "globals": { "Web3": "write", diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 28743aaa2..1df105c5c 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -209,7 +209,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>async-iterator-all": true, "3box>ipfs>async-iterator-to-pull-stream": true, "3box>ipfs>async-iterator-to-stream": true, @@ -288,7 +287,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs-mini": { @@ -305,17 +305,6 @@ "nanoid": true } }, - "3box>ipfs>async": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true, - "browserify>timers-browserify": true, - "lodash": true - } - }, "3box>ipfs>async-iterator-to-pull-stream": { "packages": { "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, @@ -385,11 +374,11 @@ }, "3box>ipfs>datastore-core": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>datastore-core>pull-many": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>pull-stream": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>datastore-pubsub": { @@ -399,7 +388,7 @@ "3box>ipfs>multibase": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>dlv": { @@ -421,7 +410,6 @@ }, "3box>ipfs>interface-datastore": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore>uuid": true, @@ -429,7 +417,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>os-browserify": true, - "browserify>path-browserify": true + "browserify>path-browserify": true, + "gh-pages>async": true } }, "3box>ipfs>interface-datastore>uuid": { @@ -446,7 +435,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>cids": true, "3box>ipfs>ipfs-bitswap>bignumber.js": true, "3box>ipfs>ipfs-bitswap>just-debounce-it": true, @@ -461,7 +449,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-bitswap>bignumber.js": { @@ -506,7 +495,7 @@ }, "3box>ipfs>ipfs-block-service": { "packages": { - "3box>ipfs>async": true + "gh-pages>async": true } }, "3box>ipfs>ipfs-mfs": { @@ -531,7 +520,7 @@ "browserify>assert": true, "browserify>browser-resolve": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>ipfs-mfs>hamt-sharding": { @@ -562,7 +551,6 @@ }, "3box>ipfs>ipfs-repo": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>datastore-core": true, @@ -578,7 +566,8 @@ "browserify>buffer": true, "browserify>path-browserify": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-repo>bignumber.js": { @@ -699,7 +688,7 @@ "3box>ipfs>multihashes": true, "3box>ipfs>superstruct": true, "browserify>buffer": true, - "rc>deep-extend": true + "madge>rc>deep-extend": true } }, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { @@ -822,7 +811,7 @@ "3box>ipfs>protons": true, "base32-encode": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>is-ipfs": { @@ -845,7 +834,6 @@ }, "3box>ipfs>libp2p": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, "3box>ipfs>libp2p-websockets": true, @@ -861,7 +849,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>process": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -871,13 +860,13 @@ "setInterval": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "3box>ipfs>peer-id": true, "3box>ipfs>peer-info": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p-crypto": { @@ -886,7 +875,6 @@ "msCrypto": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>asn1.js": true, "3box>ipfs>libp2p-crypto>iso-random-stream": true, @@ -896,6 +884,7 @@ "3box>tweetnacl": true, "browserify>buffer": true, "ethereumjs-util>ethereum-cryptography>browserify-aes": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -918,10 +907,10 @@ }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true + "eth-trezor-keyring>hdkey>secp256k1": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { @@ -962,7 +951,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>err-code": true, @@ -990,7 +978,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "promise-to-callback": true } }, @@ -1045,7 +1034,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>libp2p-crypto": true, @@ -1053,6 +1041,7 @@ "3box>ipfs>merge-options": true, "3box>ipfs>pull-stream": true, "browserify>buffer": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -1068,14 +1057,14 @@ }, "3box>ipfs>libp2p-record": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-record>buffer-split": true, "3box>ipfs>libp2p-record>multihashing-async": true, "3box>ipfs>protons": true, "browserify>assert": true, "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true + "browserify>insert-module-globals>is-buffer": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-record>buffer-split": { @@ -1100,7 +1089,6 @@ }, "3box>ipfs>libp2p-secio": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-secio>multihashing-async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, @@ -1113,7 +1101,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1160,7 +1149,6 @@ }, "3box>ipfs>libp2p-webrtc-star": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-webrtc-star>simple-peer": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1172,7 +1160,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>stream-to-pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1187,8 +1176,8 @@ "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, "browserify>buffer": true, - "eslint>debug": true, "ethereumjs-wallet>randombytes": true, + "madge>debug": true, "pumpify>inherits": true } }, @@ -1383,12 +1372,12 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1397,7 +1386,6 @@ "console.error": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1410,7 +1398,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true, "uuid": true } @@ -1460,7 +1449,7 @@ "3box>ipfs>multiaddr-to-uri": true, "3box>ipfs>pull-mplex>interface-connection": true, "browserify>os-browserify": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p-websockets>pull-ws": { @@ -1489,7 +1478,7 @@ "packages": { "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { @@ -1524,17 +1513,16 @@ }, "3box>ipfs>libp2p>libp2p-floodsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, "3box>ipfs>pull-stream": true, "browserify>assert": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-crypto": true, @@ -1546,7 +1534,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { @@ -1566,12 +1555,11 @@ "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-switch": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, @@ -1589,7 +1577,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1601,7 +1590,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>mafmt": true, @@ -1612,7 +1600,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1632,7 +1621,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>multistream-select": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, @@ -1642,7 +1630,8 @@ "3box>ipfs>varint": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1774,12 +1763,12 @@ }, "3box>ipfs>peer-id": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>multihashes": true, "browserify>assert": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>peer-info": { @@ -1807,7 +1796,6 @@ }, "3box>ipfs>pull-mplex": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>pull-abortable": true, "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-mplex>looper": true, @@ -1817,7 +1805,8 @@ "3box>ipfs>varint": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>pull-mplex>interface-connection": { @@ -2823,7 +2812,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "@ethereumjs/tx": true, "@metamask/controllers>web3-provider-engine>backoff": true, "@metamask/controllers>web3-provider-engine>eth-block-tracker": true, @@ -2837,6 +2825,7 @@ "browserify>util": true, "eth-json-rpc-filters": true, "eth-json-rpc-infura": true, + "gh-pages>async": true, "lavamoat>json-stable-stringify": true, "watchify>xtend": true } @@ -3783,8 +3772,8 @@ "@truffle/codec>web3-utils": true, "browserify>buffer": true, "browserify>util": true, - "eslint>debug": true, "gulp-dart-sass>lodash.clonedeep": true, + "madge>debug": true, "semver": true } }, @@ -4007,7 +3996,7 @@ "@truffle/codec>web3-utils": true, "@truffle/decoder>@truffle/source-map-utils": true, "@truffle/decoder>bn.js": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils": { @@ -4017,7 +4006,7 @@ "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": true, "@truffle/decoder>@truffle/source-map-utils>json-pointer": true, "@truffle/decoder>@truffle/source-map-utils>node-interval-tree": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": { @@ -4573,19 +4562,6 @@ "string.prototype.matchall>has-symbols": true } }, - "eslint>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "eslint>debug>ms": true - } - }, "eslint>optionator>fast-levenshtein": { "globals": { "Intl": true, @@ -5840,6 +5816,17 @@ "define": true } }, + "gh-pages>async": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "browserify>process": true, + "browserify>timers-browserify": true, + "lodash": true + } + }, "globalthis>define-properties": { "packages": { "globalthis>define-properties>has-property-descriptors": true, @@ -5929,6 +5916,24 @@ "Intl": true } }, + "madge>debug": { + "globals": { + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "browserify>process": true, + "madge>debug>ms": true + } + }, + "madge>rc>deep-extend": { + "packages": { + "browserify>buffer": true + } + }, "mockttp>node-forge": { "globals": { "Blob": true, @@ -6082,11 +6087,6 @@ "react": true } }, - "rc>deep-extend": { - "packages": { - "browserify>buffer": true - } - }, "react": { "globals": { "console": true diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index 28743aaa2..b5fb5d789 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -209,7 +209,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>async-iterator-all": true, "3box>ipfs>async-iterator-to-pull-stream": true, "3box>ipfs>async-iterator-to-stream": true, @@ -288,7 +287,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs-mini": { @@ -305,17 +305,6 @@ "nanoid": true } }, - "3box>ipfs>async": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true, - "browserify>timers-browserify": true, - "lodash": true - } - }, "3box>ipfs>async-iterator-to-pull-stream": { "packages": { "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, @@ -385,11 +374,11 @@ }, "3box>ipfs>datastore-core": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>datastore-core>pull-many": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>pull-stream": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>datastore-pubsub": { @@ -399,7 +388,7 @@ "3box>ipfs>multibase": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>dlv": { @@ -421,7 +410,6 @@ }, "3box>ipfs>interface-datastore": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore>uuid": true, @@ -429,7 +417,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>os-browserify": true, - "browserify>path-browserify": true + "browserify>path-browserify": true, + "gh-pages>async": true } }, "3box>ipfs>interface-datastore>uuid": { @@ -446,7 +435,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>cids": true, "3box>ipfs>ipfs-bitswap>bignumber.js": true, "3box>ipfs>ipfs-bitswap>just-debounce-it": true, @@ -461,7 +449,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-bitswap>bignumber.js": { @@ -506,7 +495,7 @@ }, "3box>ipfs>ipfs-block-service": { "packages": { - "3box>ipfs>async": true + "gh-pages>async": true } }, "3box>ipfs>ipfs-mfs": { @@ -531,7 +520,7 @@ "browserify>assert": true, "browserify>browser-resolve": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>ipfs-mfs>hamt-sharding": { @@ -562,7 +551,6 @@ }, "3box>ipfs>ipfs-repo": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>datastore-core": true, @@ -578,7 +566,8 @@ "browserify>buffer": true, "browserify>path-browserify": true, "browserify>timers-browserify": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>ipfs-repo>bignumber.js": { @@ -699,7 +688,7 @@ "3box>ipfs>multihashes": true, "3box>ipfs>superstruct": true, "browserify>buffer": true, - "rc>deep-extend": true + "madge>rc>deep-extend": true } }, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { @@ -822,7 +811,7 @@ "3box>ipfs>protons": true, "base32-encode": true, "browserify>buffer": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>is-ipfs": { @@ -845,7 +834,6 @@ }, "3box>ipfs>libp2p": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, "3box>ipfs>libp2p-websockets": true, @@ -861,7 +849,8 @@ "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, "browserify>process": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -871,13 +860,13 @@ "setInterval": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "3box>ipfs>peer-id": true, "3box>ipfs>peer-info": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p-crypto": { @@ -886,7 +875,6 @@ "msCrypto": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>asn1.js": true, "3box>ipfs>libp2p-crypto>iso-random-stream": true, @@ -896,6 +884,7 @@ "3box>tweetnacl": true, "browserify>buffer": true, "ethereumjs-util>ethereum-cryptography>browserify-aes": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -918,10 +907,10 @@ }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true + "eth-trezor-keyring>hdkey>secp256k1": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { @@ -962,7 +951,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>base32.js": true, "3box>ipfs>cids": true, "3box>ipfs>err-code": true, @@ -990,7 +978,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "promise-to-callback": true } }, @@ -1045,7 +1034,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>interface-datastore": true, "3box>ipfs>libp2p-crypto": true, @@ -1053,6 +1041,7 @@ "3box>ipfs>merge-options": true, "3box>ipfs>pull-stream": true, "browserify>buffer": true, + "gh-pages>async": true, "mockttp>node-forge": true } }, @@ -1068,14 +1057,14 @@ }, "3box>ipfs>libp2p-record": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-record>buffer-split": true, "3box>ipfs>libp2p-record>multihashing-async": true, "3box>ipfs>protons": true, "browserify>assert": true, "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true + "browserify>insert-module-globals>is-buffer": true, + "gh-pages>async": true } }, "3box>ipfs>libp2p-record>buffer-split": { @@ -1100,7 +1089,6 @@ }, "3box>ipfs>libp2p-secio": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-secio>multihashing-async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, @@ -1113,7 +1101,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1160,7 +1149,6 @@ }, "3box>ipfs>libp2p-webrtc-star": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-webrtc-star>simple-peer": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1172,7 +1160,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>stream-to-pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1187,8 +1176,8 @@ "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, "browserify>buffer": true, - "eslint>debug": true, "ethereumjs-wallet>randombytes": true, + "madge>debug": true, "pumpify>inherits": true } }, @@ -1383,12 +1372,12 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, "3box>ipfs>mafmt": true, "3box>ipfs>multiaddr": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1397,7 +1386,6 @@ "console.error": true }, "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, @@ -1410,7 +1398,8 @@ "3box>ipfs>pull-stream": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true, "uuid": true } @@ -1460,7 +1449,7 @@ "3box>ipfs>multiaddr-to-uri": true, "3box>ipfs>pull-mplex>interface-connection": true, "browserify>os-browserify": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p-websockets>pull-ws": { @@ -1489,7 +1478,7 @@ "packages": { "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { @@ -1524,17 +1513,16 @@ }, "3box>ipfs>libp2p>libp2p-floodsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, "3box>ipfs>pull-stream": true, "browserify>assert": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>bs58": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-crypto": true, @@ -1546,7 +1534,8 @@ "browserify>buffer": true, "browserify>events": true, "browserify>insert-module-globals>is-buffer": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { @@ -1566,12 +1555,11 @@ "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true + "madge>debug": true } }, "3box>ipfs>libp2p>libp2p-switch": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>err-code": true, "3box>ipfs>fsm-event": true, @@ -1589,7 +1577,8 @@ "3box>ipfs>pull-stream": true, "browserify>assert": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1601,7 +1590,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, "3box>ipfs>mafmt": true, @@ -1612,7 +1600,8 @@ "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-stream": true, "browserify>events": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1632,7 +1621,6 @@ }, "3box>ipfs>libp2p>libp2p-switch>multistream-select": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>err-code": true, "3box>ipfs>libp2p-secio>pull-handshake": true, "3box>ipfs>libp2p-secio>pull-length-prefixed": true, @@ -1642,7 +1630,8 @@ "3box>ipfs>varint": true, "browserify>assert": true, "browserify>buffer": true, - "eslint>debug": true, + "gh-pages>async": true, + "madge>debug": true, "pump>once": true } }, @@ -1774,12 +1763,12 @@ }, "3box>ipfs>peer-id": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>class-is": true, "3box>ipfs>libp2p-crypto": true, "3box>ipfs>multihashes": true, "browserify>assert": true, - "browserify>buffer": true + "browserify>buffer": true, + "gh-pages>async": true } }, "3box>ipfs>peer-info": { @@ -1807,7 +1796,6 @@ }, "3box>ipfs>pull-mplex": { "packages": { - "3box>ipfs>async": true, "3box>ipfs>pull-abortable": true, "3box>ipfs>pull-mplex>interface-connection": true, "3box>ipfs>pull-mplex>looper": true, @@ -1817,7 +1805,8 @@ "3box>ipfs>varint": true, "browserify>buffer": true, "browserify>events": true, - "eslint>debug": true + "gh-pages>async": true, + "madge>debug": true } }, "3box>ipfs>pull-mplex>interface-connection": { @@ -2823,7 +2812,6 @@ "setTimeout": true }, "packages": { - "3box>ipfs>async": true, "@ethereumjs/tx": true, "@metamask/controllers>web3-provider-engine>backoff": true, "@metamask/controllers>web3-provider-engine>eth-block-tracker": true, @@ -2837,6 +2825,7 @@ "browserify>util": true, "eth-json-rpc-filters": true, "eth-json-rpc-infura": true, + "gh-pages>async": true, "lavamoat>json-stable-stringify": true, "watchify>xtend": true } @@ -3167,75 +3156,6 @@ "watchify>xtend": true } }, - "@metamask/providers>@metamask/object-multiplex": { - "globals": { - "console.warn": true - }, - "packages": { - "end-of-stream": true, - "pump>once": true, - "readable-stream": true - } - }, - "@metamask/rpc-methods": { - "packages": { - "@metamask/controllers": true, - "@metamask/rpc-methods>@metamask/key-tree": true, - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers": true, - "eth-rpc-errors": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree": { - "packages": { - "@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": true, - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": true, - "@metamask/rpc-methods>@metamask/key-tree>@noble/secp256k1": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/bip39": true, - "browserify>buffer": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": { - "globals": { - "crypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": { - "globals": { - "TextEncoder": true, - "crypto": true, - "setTimeout": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@noble/secp256k1": { - "globals": { - "crypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": { - "globals": { - "TextDecoder": true, - "TextEncoder": true - } - }, - "@metamask/rpc-methods>@metamask/key-tree>@scure/bip39": { - "packages": { - "@metamask/rpc-methods>@metamask/key-tree>@noble/hashes": true, - "@metamask/rpc-methods>@metamask/key-tree>@scure/base": true - } - }, - "@metamask/rpc-methods>@metamask/utils": { - "packages": { - "eslint>fast-deep-equal": true - } - }, "@metamask/smart-transactions-controller": { "globals": { "URLSearchParams": true, @@ -3273,329 +3193,11 @@ "setTimeout": true } }, - "@metamask/snap-controllers": { - "globals": { - "URL": true, - "clearTimeout": true, - "console.error": true, - "console.info": true, - "console.log": true, - "console.warn": true, - "document.body.appendChild": true, - "document.createElement": true, - "document.getElementById": true, - "fetch": true, - "setTimeout": true - }, - "packages": { - "@metamask/controllers": true, - "@metamask/providers>@metamask/object-multiplex": true, - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers>@metamask/browser-passworder": true, - "@metamask/snap-controllers>@metamask/execution-environments": true, - "@metamask/snap-controllers>@metamask/obs-store": true, - "@metamask/snap-controllers>@metamask/post-message-stream": true, - "@metamask/snap-controllers>ajv": true, - "@metamask/snap-controllers>concat-stream": true, - "@metamask/snap-controllers>gunzip-maybe": true, - "@metamask/snap-controllers>json-rpc-middleware-stream": true, - "@metamask/snap-controllers>nanoid": true, - "@metamask/snap-controllers>readable-web-to-node-stream": true, - "@metamask/snap-controllers>tar-stream": true, - "browserify>buffer": true, - "browserify>crypto-browserify": true, - "eslint>fast-deep-equal": true, - "eth-rpc-errors": true, - "json-rpc-engine": true, - "json-rpc-engine>@metamask/safe-event-emitter": true, - "pump": true, - "semver": true - } - }, - "@metamask/snap-controllers>@metamask/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>buffer": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2": true, - "browserify>stream-browserify": true, - "json-rpc-engine>@metamask/safe-event-emitter": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": true, - "browserify>process": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": { - "packages": { - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": true, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, - "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream": { - "globals": { - "WorkerGlobalScope": true, - "addEventListener": true, - "location.origin": true, - "onmessage": "write", - "postMessage": true, - "removeEventListener": true - }, - "packages": { - "@metamask/rpc-methods>@metamask/utils": true, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { - "packages": { - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true, - "vinyl>cloneable-readable>process-nextick-args": true - } - }, - "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, - "@metamask/snap-controllers>ajv": { - "packages": { - "eslint>fast-deep-equal": true - } - }, - "@metamask/snap-controllers>concat-stream": { - "packages": { - "@metamask/snap-controllers>concat-stream>readable-stream": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>concat-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>gunzip-maybe": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib": true, - "@metamask/snap-controllers>gunzip-maybe>is-deflate": true, - "@metamask/snap-controllers>gunzip-maybe>is-gzip": true, - "@metamask/snap-controllers>gunzip-maybe>peek-stream": true, - "@metamask/snap-controllers>gunzip-maybe>pumpify": true, - "@metamask/snap-controllers>gunzip-maybe>through2": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>browserify-zlib>pako": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>util": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>peek-stream>duplexify": true, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>through2": true, - "browserify>buffer": true, - "terser>source-map-support>buffer-from": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>duplexify": { - "packages": { - "browserify>buffer": true, - "browserify>process": true, - "duplexify>stream-shift": true, - "end-of-stream": true, - "pumpify>inherits": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>peek-stream>through2": { - "packages": { - "browserify>process": true, - "browserify>util": true, - "readable-stream": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify": { - "packages": { - "@metamask/snap-controllers>gunzip-maybe>pumpify>duplexify": true, - "@metamask/snap-controllers>gunzip-maybe>pumpify>pump": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify>duplexify": { - "packages": { - "browserify>buffer": true, - "browserify>process": true, - "duplexify>stream-shift": true, - "end-of-stream": true, - "pumpify>inherits": true, - "readable-stream": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>pumpify>pump": { - "packages": { - "browserify>browser-resolve": true, - "end-of-stream": true, - "pump>once": true - } - }, - "@metamask/snap-controllers>gunzip-maybe>through2": { - "packages": { - "browserify>process": true, - "browserify>util": true, - "readable-stream": true, - "watchify>xtend": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream": { - "globals": { - "setTimeout": true - }, - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": true, - "json-rpc-engine>@metamask/safe-event-emitter": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true - } - }, "@metamask/snap-controllers>nanoid": { "globals": { "crypto.getRandomValues": true } }, - "@metamask/snap-controllers>readable-web-to-node-stream": { - "packages": { - "@metamask/snap-controllers>readable-web-to-node-stream>readable-stream": true - } - }, - "@metamask/snap-controllers>readable-web-to-node-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream": { - "packages": { - "@metamask/snap-controllers>tar-stream>bl": true, - "@metamask/snap-controllers>tar-stream>fs-constants": true, - "@metamask/snap-controllers>tar-stream>readable-stream": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>string_decoder": true, - "browserify>util": true, - "end-of-stream": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream>bl": { - "packages": { - "@metamask/snap-controllers>tar-stream>readable-stream": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream>fs-constants": { - "packages": { - "browserify>constants-browserify": true - } - }, - "@metamask/snap-controllers>tar-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, "@ngraveio/bc-ur": { "packages": { "@ngraveio/bc-ur>@apocentre/alias-sampling": true, @@ -3783,8 +3385,8 @@ "@truffle/codec>web3-utils": true, "browserify>buffer": true, "browserify>util": true, - "eslint>debug": true, "gulp-dart-sass>lodash.clonedeep": true, + "madge>debug": true, "semver": true } }, @@ -4007,7 +3609,7 @@ "@truffle/codec>web3-utils": true, "@truffle/decoder>@truffle/source-map-utils": true, "@truffle/decoder>bn.js": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils": { @@ -4017,7 +3619,7 @@ "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": true, "@truffle/decoder>@truffle/source-map-utils>json-pointer": true, "@truffle/decoder>@truffle/source-map-utils>node-interval-tree": true, - "eslint>debug": true + "madge>debug": true } }, "@truffle/decoder>@truffle/source-map-utils>@truffle/code-utils": { @@ -4573,19 +4175,6 @@ "string.prototype.matchall>has-symbols": true } }, - "eslint>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "eslint>debug>ms": true - } - }, "eslint>optionator>fast-levenshtein": { "globals": { "Intl": true, @@ -5840,6 +5429,17 @@ "define": true } }, + "gh-pages>async": { + "globals": { + "clearTimeout": true, + "setTimeout": true + }, + "packages": { + "browserify>process": true, + "browserify>timers-browserify": true, + "lodash": true + } + }, "globalthis>define-properties": { "packages": { "globalthis>define-properties>has-property-descriptors": true, @@ -5929,6 +5529,24 @@ "Intl": true } }, + "madge>debug": { + "globals": { + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "browserify>process": true, + "madge>debug>ms": true + } + }, + "madge>rc>deep-extend": { + "packages": { + "browserify>buffer": true + } + }, "mockttp>node-forge": { "globals": { "Blob": true, @@ -6082,11 +5700,6 @@ "react": true } }, - "rc>deep-extend": { - "packages": { - "browserify>buffer": true - } - }, "react": { "globals": { "console": true @@ -6581,11 +6194,6 @@ "jsdom>request>is-typedarray": true } }, - "terser>source-map-support>buffer-from": { - "packages": { - "browserify>buffer": true - } - }, "textarea-caret": { "globals": { "document.body.appendChild": true, @@ -6608,11 +6216,6 @@ "browserify>buffer": true } }, - "vinyl>cloneable-readable>process-nextick-args": { - "packages": { - "browserify>process": true - } - }, "web3": { "globals": { "Web3": "write", diff --git a/lavamoat/build-system/policy-override.json b/lavamoat/build-system/policy-override.json index cf5653a4c..a83ae511a 100644 --- a/lavamoat/build-system/policy-override.json +++ b/lavamoat/build-system/policy-override.json @@ -19,9 +19,11 @@ }, "packages": { "@babel/core": true, + "@babel/core>@babel/parser": true, "@babel/eslint-parser>eslint-scope": true, "@babel/eslint-parser>eslint-visitor-keys": true, "@babel/eslint-parser>semver": true, + "@babel/parser": true, "depcheck>@babel/parser": true, "eslint": true }, @@ -112,11 +114,12 @@ }, "@typescript-eslint/eslint-plugin>@typescript-eslint/type-utils": { "packages": { - "eslint>debug": true, + "@typescript-eslint/eslint-plugin>@typescript-eslint/type-utils>debug": true, "@typescript-eslint/eslint-plugin>tsutils": true, - "typescript": true, "eslint-plugin-jest>@typescript-eslint/utils": true, - "@typescript-eslint/eslint-plugin>@typescript-eslint/type-utils>debug": true + "eslint>debug": true, + "madge>debug": true, + "typescript": true } }, "@typescript-eslint/eslint-plugin>@typescript-eslint/type-utils>debug": { diff --git a/lavamoat/build-system/policy.json b/lavamoat/build-system/policy.json index ea8d2db41..ceab6c445 100644 --- a/lavamoat/build-system/policy.json +++ b/lavamoat/build-system/policy.json @@ -37,6 +37,7 @@ "@babel/core>@babel/helper-compilation-targets": true, "@babel/core>@babel/helper-module-transforms": true, "@babel/core>@babel/helpers": true, + "@babel/core>@babel/parser": true, "@babel/core>@babel/template": true, "@babel/core>@babel/types": true, "@babel/core>gensync": true, @@ -49,10 +50,9 @@ "@babel/preset-env": true, "@babel/preset-react": true, "@babel/preset-typescript": true, - "depcheck>@babel/parser": true, "depcheck>@babel/traverse": true, "depcheck>json5": true, - "eslint>debug": true, + "madge>debug": true, "nyc>convert-source-map": true } }, @@ -183,8 +183,8 @@ "@babel/core>@babel/template": { "packages": { "@babel/code-frame": true, - "@babel/core>@babel/types": true, - "depcheck>@babel/parser": true + "@babel/core>@babel/parser": true, + "@babel/core>@babel/types": true } }, "@babel/core>@babel/types": { @@ -212,9 +212,11 @@ }, "packages": { "@babel/core": true, + "@babel/core>@babel/parser": true, "@babel/eslint-parser>eslint-scope": true, "@babel/eslint-parser>eslint-visitor-keys": true, "@babel/eslint-parser>semver": true, + "@babel/parser": true, "depcheck>@babel/parser": true, "eslint": true } @@ -1171,6 +1173,7 @@ "@typescript-eslint/eslint-plugin>tsutils": true, "eslint-plugin-jest>@typescript-eslint/utils": true, "eslint>debug": true, + "madge>debug": true, "typescript": true } }, @@ -1193,7 +1196,7 @@ "packages": { "@typescript-eslint/parser>@typescript-eslint/scope-manager": true, "@typescript-eslint/parser>@typescript-eslint/typescript-estree": true, - "eslint>debug": true, + "madge>debug": true, "typescript": true } }, @@ -1224,9 +1227,9 @@ "@typescript-eslint/eslint-plugin>tsutils": true, "@typescript-eslint/parser>@typescript-eslint/scope-manager>@typescript-eslint/visitor-keys": true, "@typescript-eslint/parser>@typescript-eslint/types": true, - "eslint>debug": true, "eslint>is-glob": true, "globby": true, + "madge>debug": true, "semver": true, "typescript": true } @@ -1810,6 +1813,93 @@ "jest-canvas-mock>moo-color>color-name": true } }, + "chokidar": { + "builtin": { + "events.EventEmitter": true, + "fs.close": true, + "fs.lstat": true, + "fs.open": true, + "fs.readdir": true, + "fs.realpath": true, + "fs.stat": true, + "fs.unwatchFile": true, + "fs.watch": true, + "fs.watchFile": true, + "os.type": true, + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.isAbsolute": true, + "path.join": true, + "path.normalize": true, + "path.relative": true, + "path.resolve": true, + "path.sep": true, + "util.promisify": true + }, + "globals": { + "clearTimeout": true, + "console.error": true, + "process.env.CHOKIDAR_INTERVAL": true, + "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, + "process.env.CHOKIDAR_USEPOLLING": true, + "process.nextTick": true, + "process.platform": true, + "process.version.match": true, + "setTimeout": true + }, + "packages": { + "chokidar>braces": true, + "chokidar>fsevents": true, + "chokidar>glob-parent": true, + "chokidar>is-binary-path": true, + "chokidar>normalize-path": true, + "depcheck>readdirp": true, + "eslint>is-glob": true, + "watchify>anymatch": true + } + }, + "chokidar>braces": { + "packages": { + "chokidar>braces>fill-range": true + } + }, + "chokidar>braces>fill-range": { + "builtin": { + "util.inspect": true + }, + "packages": { + "chokidar>braces>fill-range>to-regex-range": true + } + }, + "chokidar>braces>fill-range>to-regex-range": { + "packages": { + "chokidar>braces>fill-range>to-regex-range>is-number": true + } + }, + "chokidar>fsevents": { + "globals": { + "process.platform": true + }, + "native": true + }, + "chokidar>glob-parent": { + "builtin": { + "os.platform": true, + "path.posix.dirname": true + }, + "packages": { + "eslint>is-glob": true + } + }, + "chokidar>is-binary-path": { + "builtin": { + "path.extname": true + }, + "packages": { + "chokidar>is-binary-path>binary-extensions": true + } + }, "cross-spawn": { "builtin": { "child_process.spawn": true, @@ -1958,14 +2048,14 @@ "packages": { "@babel/code-frame": true, "@babel/core>@babel/generator": true, + "@babel/core>@babel/parser": true, "@babel/core>@babel/types": true, - "depcheck>@babel/parser": true, "depcheck>@babel/traverse>@babel/helper-environment-visitor": true, "depcheck>@babel/traverse>@babel/helper-function-name": true, "depcheck>@babel/traverse>@babel/helper-hoist-variables": true, "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true, "depcheck>@babel/traverse>globals": true, - "eslint>debug": true + "madge>debug": true } }, "depcheck>@babel/traverse>@babel/helper-function-name": { @@ -2187,7 +2277,6 @@ "eslint>@eslint/eslintrc": true, "eslint>@humanwhocodes/config-array": true, "eslint>ajv": true, - "eslint>debug": true, "eslint>doctrine": true, "eslint>escape-string-regexp": true, "eslint>eslint-scope": true, @@ -2209,7 +2298,8 @@ "eslint>minimatch": true, "eslint>natural-compare": true, "eslint>regexpp": true, - "globby>ignore": true + "globby>ignore": true, + "madge>debug": true } }, "eslint-config-prettier": { @@ -2256,8 +2346,8 @@ "packages": { "brfs>resolve": true, "eslint-plugin-import>tsconfig-paths": true, - "eslint>debug": true, "eslint>is-glob": true, + "madge>debug": true, "nyc>glob": true } }, @@ -2483,8 +2573,8 @@ "eslint-plugin-jsdoc>comment-parser": true, "eslint-plugin-jsdoc>escape-string-regexp": true, "eslint-plugin-jsdoc>spdx-expression-parse": true, - "eslint>debug": true, "eslint>esquery": true, + "madge>debug": true, "semver": true } }, @@ -2703,10 +2793,10 @@ "eslint-plugin-react-hooks": true, "eslint>@eslint/eslintrc>strip-json-comments": true, "eslint>ajv": true, - "eslint>debug": true, "eslint>globals": true, "eslint>minimatch": true, - "globby>ignore": true + "globby>ignore": true, + "madge>debug": true } }, "eslint>@humanwhocodes/config-array": { @@ -2715,8 +2805,8 @@ }, "packages": { "eslint>@humanwhocodes/config-array>@humanwhocodes/object-schema": true, - "eslint>debug": true, - "eslint>minimatch": true + "eslint>minimatch": true, + "madge>debug": true } }, "eslint>ajv": { @@ -2735,25 +2825,6 @@ "define": true } }, - "eslint>debug": { - "builtin": { - "tty.isatty": true, - "util.deprecate": true, - "util.format": true, - "util.inspect": true - }, - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "eslint>debug>ms": true, - "sinon>supports-color": true - } - }, "eslint>doctrine": { "builtin": { "assert": true @@ -2784,14 +2855,8 @@ "eslint>espree": { "packages": { "eslint>eslint-visitor-keys": true, - "eslint>espree>acorn": true, - "eslint>espree>acorn-jsx": true - } - }, - "eslint>espree>acorn": { - "globals": { - "console": true, - "define": true + "eslint>espree>acorn-jsx": true, + "ts-node>acorn": true } }, "eslint>espree>acorn-jsx": { @@ -3724,23 +3789,28 @@ "fs-extra>graceful-fs": true, "gulp-sourcemaps>@gulp-sourcemaps/identity-map": true, "gulp-sourcemaps>@gulp-sourcemaps/map-sources": true, + "gulp-sourcemaps>acorn": true, "gulp-sourcemaps>css": true, "gulp-sourcemaps>debug-fabulous": true, "gulp-sourcemaps>detect-newline": true, "gulp-sourcemaps>source-map": true, "gulp-sourcemaps>strip-bom-string": true, "gulp-sourcemaps>through2": true, - "nyc>convert-source-map": true, - "webpack>acorn": true + "nyc>convert-source-map": true } }, "gulp-sourcemaps>@gulp-sourcemaps/identity-map": { "packages": { - "css-loader>normalize-path": true, + "chokidar>normalize-path": true, + "gulp-sourcemaps>@gulp-sourcemaps/identity-map>acorn": true, "gulp-sourcemaps>@gulp-sourcemaps/identity-map>source-map": true, "gulp-sourcemaps>@gulp-sourcemaps/identity-map>through2": true, - "stylelint>postcss": true, - "webpack>acorn": true + "stylelint>postcss": true + } + }, + "gulp-sourcemaps>@gulp-sourcemaps/identity-map>acorn": { + "globals": { + "define": true } }, "gulp-sourcemaps>@gulp-sourcemaps/identity-map>through2": { @@ -3796,6 +3866,11 @@ "watchify>xtend": true } }, + "gulp-sourcemaps>acorn": { + "globals": { + "define": true + } + }, "gulp-sourcemaps>css": { "builtin": { "fs.readFileSync": true, @@ -4159,6 +4234,7 @@ "gulp-watch>chokidar>anymatch": true, "gulp-watch>chokidar>async-each": true, "gulp-watch>chokidar>braces": true, + "gulp-watch>chokidar>fsevents": true, "gulp-watch>chokidar>is-binary-path": true, "gulp-watch>chokidar>normalize-path": true, "gulp-watch>chokidar>readdirp": true, @@ -4307,547 +4383,1319 @@ "webpack>micromatch>braces>fill-range>repeat-string": true } }, - "gulp-watch>chokidar>is-binary-path": { + "gulp-watch>chokidar>fsevents": { "builtin": { - "path.extname": true + "events.EventEmitter": true, + "fs.stat": true, + "path.join": true, + "util.inherits": true + }, + "globals": { + "__dirname": true, + "process.nextTick": true, + "process.platform": true, + "setImmediate": true }, "packages": { - "gulp-watch>chokidar>is-binary-path>binary-extensions": true + "gulp-watch>chokidar>fsevents>node-pre-gyp": true } }, - "gulp-watch>chokidar>readdirp": { + "gulp-watch>chokidar>fsevents>node-pre-gyp": { "builtin": { + "events.EventEmitter": true, + "fs.existsSync": true, + "fs.readFileSync": true, + "fs.renameSync": true, + "path.dirname": true, + "path.existsSync": true, "path.join": true, - "path.relative": true, + "path.resolve": true, + "url.parse": true, + "url.resolve": true, "util.inherits": true }, "globals": { - "setImmediate": true + "__dirname": true, + "console.log": true, + "process.arch": true, + "process.cwd": true, + "process.env": true, + "process.platform": true, + "process.version.substr": true, + "process.versions": true }, "packages": { - "fs-extra>graceful-fs": true, - "gulp-watch>chokidar>readdirp>micromatch": true, - "readable-stream": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>detect-libc": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>semver": true } }, - "gulp-watch>chokidar>readdirp>micromatch": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>detect-libc": { "builtin": { - "path.basename": true, - "path.sep": true, - "util.inspect": true + "child_process.spawnSync": true, + "fs.readdirSync": true, + "os.platform": true }, "globals": { - "process.platform": true - }, - "packages": { - "gulp-watch>chokidar>braces": true, - "gulp-watch>chokidar>readdirp>micromatch>arr-diff": true, - "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, - "gulp-watch>chokidar>readdirp>micromatch>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob": true, - "gulp-watch>chokidar>readdirp>micromatch>kind-of": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>nanomatch": true, - "webpack>micromatch>object.pick": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true + "process.env": true } }, - "gulp-watch>chokidar>readdirp>micromatch>define-property": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt": { + "builtin": { + "path": true, + "stream.Stream": true, + "url": true + }, + "globals": { + "console": true, + "process.argv": true, + "process.env.DEBUG_NOPT": true, + "process.env.NOPT_DEBUG": true, + "process.platform": true + }, "packages": { - "gulp>gulp-cli>isobject": true, - "webpack>micromatch>define-property>is-descriptor": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>abbrev": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv": { + "builtin": { + "child_process.exec": true, + "path": true + }, + "globals": { + "process.env.COMPUTERNAME": true, + "process.env.ComSpec": true, + "process.env.EDITOR": true, + "process.env.HOSTNAME": true, + "process.env.PATH": true, + "process.env.PROMPT": true, + "process.env.PS1": true, + "process.env.Path": true, + "process.env.SHELL": true, + "process.env.USER": true, + "process.env.USERDOMAIN": true, + "process.env.USERNAME": true, + "process.env.VISUAL": true, + "process.env.path": true, + "process.nextTick": true, + "process.platform": true + }, "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": { - "packages": { - "@babel/register>clone-deep>is-plain-object": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": { + "builtin": { + "os.homedir": true + }, + "globals": { + "process.env": true, + "process.getuid": true, + "process.platform": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": { + "globals": { + "process.env.SystemRoot": true, + "process.env.TEMP": true, + "process.env.TMP": true, + "process.env.TMPDIR": true, + "process.env.windir": true, + "process.platform": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog": { + "builtin": { + "events.EventEmitter": true, + "util": true + }, + "globals": { + "process.nextTick": true, + "process.stderr": true + }, "packages": { - "webpack>micromatch>define-property>is-descriptor": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": { - "globals": { - "__filename": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": { + "builtin": { + "events.EventEmitter": true, + "util.inherits": true }, "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": true, - "webpack>micromatch>extglob>expand-brackets>posix-character-classes": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>delegates": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": { "builtin": { - "fs.SyncWriteStream": true, - "net.Socket": true, - "tty.WriteStream": true, - "tty.isatty": true, + "events.EventEmitter": true, + "stream": true, "util": true }, "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, + "process.browser": true, + "process.env.READABLE_STREAM": true, + "process.stderr": true, + "process.stdout": true, + "process.version.slice": true, + "setImmediate": true + }, + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>isarray": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": { + "globals": { + "Buffer.isBuffer": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": { + "globals": { "process": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": { + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": { + "builtin": { + "util.deprecate": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge": { + "builtin": { + "util.format": true + }, + "globals": { + "clearInterval": true, + "process": true, + "setImmediate": true, + "setInterval": true }, "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug>ms": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>aproba": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>object-assign": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": { + "builtin": { + "os.type": true + }, + "globals": { + "process.env.LANG": true, + "process.env.LC_ALL": true, + "process.env.LC_CTYPE": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": { + "builtin": { + "assert.equal": true, + "events": true + }, + "globals": { + "process": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": { "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>code-point-at": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": { "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>kind-of": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": { "packages": { - "gulp-watch>anymatch>micromatch>kind-of": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": { "packages": { - "gulp-watch>anymatch>micromatch>kind-of": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": { + "globals": { + "process.stderr": true, + "process.stdout": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf": { + "builtin": { + "assert": true, + "fs": true, + "path.join": true + }, + "globals": { + "process.platform": true, + "setTimeout": true + }, "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow>is-extendable": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": true } }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": { + "builtin": { + "assert": true, + "events.EventEmitter": true, + "fs.lstat": true, + "fs.lstatSync": true, + "fs.readdir": true, + "fs.readdirSync": true, + "fs.stat": true, + "fs.statSync": true, + "path.join": true, + "path.resolve": true, + "util": true + }, + "globals": { + "console.error": true, + "process.cwd": true, + "process.nextTick": true, + "process.platform": true + }, "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow>is-extendable": true + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": true } }, - "gulp-watch>chokidar>upath": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": { + "builtin": { + "fs.lstat": true, + "fs.lstatSync": true, + "fs.readlink": true, + "fs.readlinkSync": true, + "fs.realpath": true, + "fs.realpathSync": true, + "fs.stat": true, + "fs.statSync": true, + "path.normalize": true, + "path.resolve": true + }, + "globals": { + "console.error": true, + "console.trace": true, + "process.env.NODE_DEBUG": true, + "process.nextTick": true, + "process.noDeprecation": true, + "process.platform": true, + "process.throwDeprecation": true, + "process.traceDeprecation": true, + "process.version": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": { + "globals": { + "process.nextTick": true + }, + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": { + "builtin": { + "util.inherits": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": { "builtin": { "path": true + }, + "globals": { + "console.error": true + }, + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": true } }, - "gulp-watch>fancy-log": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": { + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>balanced-match": true, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>concat-map": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": { + "packages": { + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": { + "globals": { + "process.platform": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>semver": { "globals": { "console": true, - "process.argv.indexOf": true, - "process.stderr.write": true, - "process.stdout.write": true + "process": true + } + }, + "gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": { + "builtin": { + "buffer": true + } + }, + "gulp-watch>chokidar>is-binary-path": { + "builtin": { + "path.extname": true }, "packages": { - "fancy-log>ansi-gray": true, - "fancy-log>color-support": true, - "fancy-log>time-stamp": true + "gulp-watch>chokidar>is-binary-path>binary-extensions": true } }, - "gulp-watch>glob-parent": { + "gulp-watch>chokidar>readdirp": { "builtin": { - "os.platform": true, - "path": true + "path.join": true, + "path.relative": true, + "util.inherits": true + }, + "globals": { + "setImmediate": true }, "packages": { - "gulp-watch>glob-parent>is-glob": true, - "gulp-watch>glob-parent>path-dirname": true + "fs-extra>graceful-fs": true, + "gulp-watch>chokidar>readdirp>micromatch": true, + "readable-stream": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch": { + "builtin": { + "path.basename": true, + "path.sep": true, + "util.inspect": true + }, + "globals": { + "process.platform": true + }, + "packages": { + "gulp-watch>chokidar>braces": true, + "gulp-watch>chokidar>readdirp>micromatch>arr-diff": true, + "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, + "gulp-watch>chokidar>readdirp>micromatch>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob": true, + "gulp-watch>chokidar>readdirp>micromatch>kind-of": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>nanomatch": true, + "webpack>micromatch>object.pick": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>define-property": { + "packages": { + "gulp>gulp-cli>isobject": true, + "webpack>micromatch>define-property>is-descriptor": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": { + "packages": { + "@babel/register>clone-deep>is-plain-object": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": { + "packages": { + "webpack>micromatch>define-property>is-descriptor": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": { + "globals": { + "__filename": true + }, + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": true, + "webpack>micromatch>extglob>expand-brackets>posix-character-classes": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": { + "builtin": { + "fs.SyncWriteStream": true, + "net.Socket": true, + "tty.WriteStream": true, + "tty.isatty": true, + "util": true + }, + "globals": { + "chrome": true, + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug>ms": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>kind-of": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": { + "packages": { + "gulp-watch>anymatch>micromatch>kind-of": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": { + "packages": { + "gulp-watch>anymatch>micromatch>kind-of": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow>is-extendable": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow>is-extendable": true + } + }, + "gulp-watch>chokidar>upath": { + "builtin": { + "path": true + } + }, + "gulp-watch>fancy-log": { + "globals": { + "console": true, + "process.argv.indexOf": true, + "process.stderr.write": true, + "process.stdout.write": true + }, + "packages": { + "fancy-log>ansi-gray": true, + "fancy-log>color-support": true, + "fancy-log>time-stamp": true + } + }, + "gulp-watch>glob-parent": { + "builtin": { + "os.platform": true, + "path": true + }, + "packages": { + "gulp-watch>glob-parent>is-glob": true, + "gulp-watch>glob-parent>path-dirname": true + } + }, + "gulp-watch>glob-parent>is-glob": { + "packages": { + "gulp-watch>glob-parent>is-glob>is-extglob": true + } + }, + "gulp-watch>glob-parent>path-dirname": { + "builtin": { + "path": true, + "util.inspect": true + }, + "globals": { + "process.platform": true + } + }, + "gulp-watch>path-is-absolute": { + "globals": { + "process.platform": true + } + }, + "gulp-watch>vinyl-file": { + "builtin": { + "path.resolve": true + }, + "globals": { + "process.cwd": true + }, + "packages": { + "del>globby>pinkie-promise": true, + "fs-extra>graceful-fs": true, + "gulp-watch>vinyl-file>pify": true, + "gulp-watch>vinyl-file>strip-bom": true, + "gulp-watch>vinyl-file>strip-bom-stream": true, + "gulp-watch>vinyl-file>vinyl": true + } + }, + "gulp-watch>vinyl-file>strip-bom": { + "globals": { + "Buffer.isBuffer": true + }, + "packages": { + "gulp>vinyl-fs>remove-bom-buffer>is-utf8": true + } + }, + "gulp-watch>vinyl-file>strip-bom-stream": { + "packages": { + "gulp-watch>vinyl-file>strip-bom": true, + "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": true + } + }, + "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": { + "builtin": { + "util.inherits": true + }, + "globals": { + "Buffer.concat": true, + "setImmediate": true + }, + "packages": { + "readable-stream": true + } + }, + "gulp-watch>vinyl-file>vinyl": { + "builtin": { + "buffer.Buffer": true, + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true, + "path.relative": true, + "stream.PassThrough": true, + "stream.Stream": true + }, + "globals": { + "process.cwd": true + }, + "packages": { + "gulp-watch>vinyl-file>vinyl>clone": true, + "gulp-watch>vinyl-file>vinyl>clone-stats": true, + "gulp-watch>vinyl-file>vinyl>replace-ext": true + } + }, + "gulp-watch>vinyl-file>vinyl>clone": { + "globals": { + "Buffer": true + } + }, + "gulp-watch>vinyl-file>vinyl>clone-stats": { + "builtin": { + "fs.Stats": true + } + }, + "gulp-watch>vinyl-file>vinyl>replace-ext": { + "builtin": { + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true + } + }, + "gulp-zip": { + "builtin": { + "buffer.constants.MAX_LENGTH": true, + "path.join": true + }, + "packages": { + "gulp-zip>get-stream": true, + "gulp-zip>plugin-error": true, + "gulp-zip>through2": true, + "gulp-zip>yazl": true, + "vinyl": true + } + }, + "gulp-zip>get-stream": { + "builtin": { + "buffer.constants.MAX_LENGTH": true, + "stream.PassThrough": true + }, + "globals": { + "Buffer.concat": true + }, + "packages": { + "pump": true + } + }, + "gulp-zip>plugin-error": { + "builtin": { + "util.inherits": true + }, + "packages": { + "gulp-watch>ansi-colors": true, + "gulp-zip>plugin-error>arr-union": true, + "gulp-zip>plugin-error>extend-shallow": true, + "webpack>micromatch>arr-diff": true + } + }, + "gulp-zip>plugin-error>extend-shallow": { + "packages": { + "gulp-zip>plugin-error>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": true + } + }, + "gulp-zip>plugin-error>extend-shallow>is-extendable": { + "packages": { + "@babel/register>clone-deep>is-plain-object": true + } + }, + "gulp-zip>through2": { + "builtin": { + "util.inherits": true + }, + "globals": { + "process.nextTick": true + }, + "packages": { + "gulp-zip>through2>readable-stream": true + } + }, + "gulp-zip>through2>readable-stream": { + "builtin": { + "buffer.Buffer": true, + "events.EventEmitter": true, + "stream": true, + "util": true + }, + "globals": { + "process.env.READABLE_STREAM": true, + "process.nextTick": true, + "process.stderr": true, + "process.stdout": true + }, + "packages": { + "@storybook/api>util-deprecate": true, + "browserify>string_decoder": true, + "pumpify>inherits": true + } + }, + "gulp-zip>yazl": { + "builtin": { + "events.EventEmitter": true, + "fs.createReadStream": true, + "fs.stat": true, + "stream.PassThrough": true, + "stream.Transform": true, + "util.inherits": true, + "zlib.DeflateRaw": true, + "zlib.deflateRaw": true + }, + "globals": { + "Buffer": true, + "setImmediate": true, + "utf8FileName.length": true + }, + "packages": { + "gulp-zip>yazl>buffer-crc32": true + } + }, + "gulp-zip>yazl>buffer-crc32": { + "builtin": { + "buffer.Buffer": true + } + }, + "gulp>glob-watcher": { + "packages": { + "gulp>glob-watcher>anymatch": true, + "gulp>glob-watcher>async-done": true, + "gulp>glob-watcher>chokidar": true, + "gulp>glob-watcher>is-negated-glob": true, + "gulp>glob-watcher>just-debounce": true, + "gulp>undertaker>object.defaults": true + } + }, + "gulp>glob-watcher>anymatch": { + "builtin": { + "path.sep": true + }, + "packages": { + "gulp>glob-watcher>anymatch>micromatch": true, + "gulp>glob-watcher>anymatch>normalize-path": true + } + }, + "gulp>glob-watcher>anymatch>micromatch": { + "builtin": { + "path.basename": true, + "path.sep": true, + "util.inspect": true + }, + "globals": { + "process.platform": true + }, + "packages": { + "3box>ipfs>kind-of": true, + "gulp>glob-watcher>anymatch>micromatch>define-property": true, + "gulp>glob-watcher>anymatch>micromatch>extend-shallow": true, + "gulp>glob-watcher>chokidar>braces": true, + "webpack>micromatch>arr-diff": true, + "webpack>micromatch>array-unique": true, + "webpack>micromatch>extglob": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>nanomatch": true, + "webpack>micromatch>object.pick": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true + } + }, + "gulp>glob-watcher>anymatch>micromatch>define-property": { + "packages": { + "gulp>gulp-cli>isobject": true, + "webpack>micromatch>define-property>is-descriptor": true + } + }, + "gulp>glob-watcher>anymatch>micromatch>extend-shallow": { + "packages": { + "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": true + } + }, + "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": { + "packages": { + "@babel/register>clone-deep>is-plain-object": true + } + }, + "gulp>glob-watcher>anymatch>normalize-path": { + "packages": { + "vinyl>remove-trailing-separator": true + } + }, + "gulp>glob-watcher>async-done": { + "builtin": { + "domain.create": true + }, + "globals": { + "process.nextTick": true + }, + "packages": { + "end-of-stream": true, + "gulp>glob-watcher>async-done>process-nextick-args": true, + "gulp>glob-watcher>async-done>stream-exhaust": true, + "pump>once": true + } + }, + "gulp>glob-watcher>async-done>process-nextick-args": { + "globals": { + "process": true + } + }, + "gulp>glob-watcher>async-done>stream-exhaust": { + "builtin": { + "stream.Writable": true, + "util.inherits": true + }, + "globals": { + "setImmediate": true + } + }, + "gulp>glob-watcher>chokidar": { + "builtin": { + "events.EventEmitter": true, + "fs": true, + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true, + "path.relative": true, + "path.resolve": true, + "path.sep": true + }, + "globals": { + "clearTimeout": true, + "console.error": true, + "process.env.CHOKIDAR_INTERVAL": true, + "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, + "process.env.CHOKIDAR_USEPOLLING": true, + "process.nextTick": true, + "process.platform": true, + "setTimeout": true + }, + "packages": { + "eslint>is-glob": true, + "gulp-watch>chokidar>async-each": true, + "gulp-watch>glob-parent": true, + "gulp-watch>path-is-absolute": true, + "gulp>glob-watcher>anymatch": true, + "gulp>glob-watcher>chokidar>braces": true, + "gulp>glob-watcher>chokidar>fsevents": true, + "gulp>glob-watcher>chokidar>is-binary-path": true, + "gulp>glob-watcher>chokidar>normalize-path": true, + "gulp>glob-watcher>chokidar>readdirp": true, + "gulp>glob-watcher>chokidar>upath": true, + "pumpify>inherits": true } }, - "gulp-watch>glob-parent>is-glob": { + "gulp>glob-watcher>chokidar>braces": { "packages": { - "gulp-watch>glob-parent>is-glob>is-extglob": true + "gulp>glob-watcher>chokidar>braces>fill-range": true, + "gulp>gulp-cli>isobject": true, + "gulp>undertaker>arr-flatten": true, + "webpack>micromatch>array-unique": true, + "webpack>micromatch>braces>repeat-element": true, + "webpack>micromatch>braces>snapdragon-node": true, + "webpack>micromatch>braces>split-string": true, + "webpack>micromatch>extglob>extend-shallow": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true } }, - "gulp-watch>glob-parent>path-dirname": { + "gulp>glob-watcher>chokidar>braces>fill-range": { "builtin": { - "path": true, "util.inspect": true }, - "globals": { - "process.platform": true - } - }, - "gulp-watch>path-is-absolute": { - "globals": { - "process.platform": true + "packages": { + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, + "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": true, + "webpack>micromatch>braces>fill-range>repeat-string": true, + "webpack>micromatch>extglob>extend-shallow": true } }, - "gulp-watch>vinyl-file": { - "builtin": { - "path.resolve": true - }, - "globals": { - "process.cwd": true - }, + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": { "packages": { - "del>globby>pinkie-promise": true, - "fs-extra>graceful-fs": true, - "gulp-watch>vinyl-file>pify": true, - "gulp-watch>vinyl-file>strip-bom": true, - "gulp-watch>vinyl-file>strip-bom-stream": true, - "gulp-watch>vinyl-file>vinyl": true + "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": true } }, - "gulp-watch>vinyl-file>strip-bom": { - "globals": { - "Buffer.isBuffer": true - }, + "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": { "packages": { - "gulp>vinyl-fs>remove-bom-buffer>is-utf8": true + "browserify>insert-module-globals>is-buffer": true } }, - "gulp-watch>vinyl-file>strip-bom-stream": { + "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": { "packages": { - "gulp-watch>vinyl-file>strip-bom": true, - "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": true + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, + "webpack>micromatch>braces>fill-range>repeat-string": true } }, - "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": { + "gulp>glob-watcher>chokidar>fsevents": { "builtin": { + "events.EventEmitter": true, + "fs.stat": true, + "path.join": true, "util.inherits": true }, "globals": { - "Buffer.concat": true, + "__dirname": true, + "process.nextTick": true, + "process.platform": true, "setImmediate": true }, "packages": { - "readable-stream": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": true } }, - "gulp-watch>vinyl-file>vinyl": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": { "builtin": { - "buffer.Buffer": true, - "path.basename": true, + "events.EventEmitter": true, + "fs.existsSync": true, + "fs.readFileSync": true, + "fs.renameSync": true, "path.dirname": true, - "path.extname": true, + "path.existsSync": true, "path.join": true, - "path.relative": true, - "stream.PassThrough": true, - "stream.Stream": true + "path.resolve": true, + "url.parse": true, + "url.resolve": true, + "util.inherits": true }, "globals": { - "process.cwd": true + "__dirname": true, + "console.log": true, + "process.arch": true, + "process.cwd": true, + "process.env": true, + "process.platform": true, + "process.version.substr": true, + "process.versions": true }, "packages": { - "gulp-watch>vinyl-file>vinyl>clone": true, - "gulp-watch>vinyl-file>vinyl>clone-stats": true, - "gulp-watch>vinyl-file>vinyl>replace-ext": true - } - }, - "gulp-watch>vinyl-file>vinyl>clone": { - "globals": { - "Buffer": true - } - }, - "gulp-watch>vinyl-file>vinyl>clone-stats": { - "builtin": { - "fs.Stats": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>detect-libc": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>semver": true } }, - "gulp-watch>vinyl-file>vinyl>replace-ext": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>detect-libc": { "builtin": { - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.join": true + "child_process.spawnSync": true, + "fs.readdirSync": true, + "os.platform": true + }, + "globals": { + "process.env": true } }, - "gulp-zip": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt": { "builtin": { - "buffer.constants.MAX_LENGTH": true, - "path.join": true + "path": true, + "stream.Stream": true, + "url": true + }, + "globals": { + "console": true, + "process.argv": true, + "process.env.DEBUG_NOPT": true, + "process.env.NOPT_DEBUG": true, + "process.platform": true }, "packages": { - "gulp-zip>get-stream": true, - "gulp-zip>plugin-error": true, - "gulp-zip>through2": true, - "gulp-zip>yazl": true, - "vinyl": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>abbrev": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv": true } }, - "gulp-zip>get-stream": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv": { "builtin": { - "buffer.constants.MAX_LENGTH": true, - "stream.PassThrough": true + "child_process.exec": true, + "path": true }, "globals": { - "Buffer.concat": true + "process.env.COMPUTERNAME": true, + "process.env.ComSpec": true, + "process.env.EDITOR": true, + "process.env.HOSTNAME": true, + "process.env.PATH": true, + "process.env.PROMPT": true, + "process.env.PS1": true, + "process.env.Path": true, + "process.env.SHELL": true, + "process.env.USER": true, + "process.env.USERDOMAIN": true, + "process.env.USERNAME": true, + "process.env.VISUAL": true, + "process.env.path": true, + "process.nextTick": true, + "process.platform": true }, "packages": { - "pump": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": true } }, - "gulp-zip>plugin-error": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": { "builtin": { - "util.inherits": true + "os.homedir": true }, - "packages": { - "gulp-watch>ansi-colors": true, - "gulp-zip>plugin-error>arr-union": true, - "gulp-zip>plugin-error>extend-shallow": true, - "webpack>micromatch>arr-diff": true + "globals": { + "process.env": true, + "process.getuid": true, + "process.platform": true } }, - "gulp-zip>plugin-error>extend-shallow": { - "packages": { - "gulp-zip>plugin-error>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": { + "globals": { + "process.env.SystemRoot": true, + "process.env.TEMP": true, + "process.env.TMP": true, + "process.env.TMPDIR": true, + "process.env.windir": true, + "process.platform": true } }, - "gulp-zip>plugin-error>extend-shallow>is-extendable": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog": { + "builtin": { + "events.EventEmitter": true, + "util": true + }, + "globals": { + "process.nextTick": true, + "process.stderr": true + }, "packages": { - "@babel/register>clone-deep>is-plain-object": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": true } }, - "gulp-zip>through2": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": { "builtin": { + "events.EventEmitter": true, "util.inherits": true }, - "globals": { - "process.nextTick": true - }, "packages": { - "gulp-zip>through2>readable-stream": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>delegates": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": true } }, - "gulp-zip>through2>readable-stream": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": { "builtin": { - "buffer.Buffer": true, "events.EventEmitter": true, "stream": true, "util": true }, "globals": { + "process.browser": true, "process.env.READABLE_STREAM": true, - "process.nextTick": true, "process.stderr": true, - "process.stdout": true + "process.stdout": true, + "process.version.slice": true, + "setImmediate": true }, "packages": { - "@storybook/api>util-deprecate": true, - "browserify>string_decoder": true, - "pumpify>inherits": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>isarray": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true } }, - "gulp-zip>yazl": { - "builtin": { - "events.EventEmitter": true, - "fs.createReadStream": true, - "fs.stat": true, - "stream.PassThrough": true, - "stream.Transform": true, - "util.inherits": true, - "zlib.DeflateRaw": true, - "zlib.deflateRaw": true - }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": { "globals": { - "Buffer": true, - "setImmediate": true, - "utf8FileName.length": true - }, - "packages": { - "gulp-zip>yazl>buffer-crc32": true + "Buffer.isBuffer": true } }, - "gulp-zip>yazl>buffer-crc32": { - "builtin": { - "buffer.Buffer": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": { + "globals": { + "process": true } }, - "gulp>glob-watcher": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": { "packages": { - "gulp>glob-watcher>anymatch": true, - "gulp>glob-watcher>async-done": true, - "gulp>glob-watcher>chokidar": true, - "gulp>glob-watcher>is-negated-glob": true, - "gulp>glob-watcher>just-debounce": true, - "gulp>undertaker>object.defaults": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true } }, - "gulp>glob-watcher>anymatch": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": { "builtin": { - "path.sep": true + "util.deprecate": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge": { + "builtin": { + "util.format": true + }, + "globals": { + "clearInterval": true, + "process": true, + "setImmediate": true, + "setInterval": true }, "packages": { - "gulp>glob-watcher>anymatch>micromatch": true, - "gulp>glob-watcher>anymatch>normalize-path": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>aproba": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>object-assign": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": true } }, - "gulp>glob-watcher>anymatch>micromatch": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": { "builtin": { - "path.basename": true, - "path.sep": true, - "util.inspect": true + "os.type": true }, "globals": { - "process.platform": true + "process.env.LANG": true, + "process.env.LC_ALL": true, + "process.env.LC_CTYPE": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": { + "builtin": { + "assert.equal": true, + "events": true }, - "packages": { - "3box>ipfs>kind-of": true, - "gulp>glob-watcher>anymatch>micromatch>define-property": true, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow": true, - "gulp>glob-watcher>chokidar>braces": true, - "webpack>micromatch>arr-diff": true, - "webpack>micromatch>array-unique": true, - "webpack>micromatch>extglob": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>nanomatch": true, - "webpack>micromatch>object.pick": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true + "globals": { + "process": true } }, - "gulp>glob-watcher>anymatch>micromatch>define-property": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": { "packages": { - "gulp>gulp-cli>isobject": true, - "webpack>micromatch>define-property>is-descriptor": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>code-point-at": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true } }, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": { "packages": { - "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true } }, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": { "packages": { - "@babel/register>clone-deep>is-plain-object": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true } }, - "gulp>glob-watcher>anymatch>normalize-path": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": { "packages": { - "vinyl>remove-trailing-separator": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true } }, - "gulp>glob-watcher>async-done": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": { + "globals": { + "process.stderr": true, + "process.stdout": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf": { "builtin": { - "domain.create": true + "assert": true, + "fs": true, + "path.join": true }, "globals": { - "process.nextTick": true + "process.platform": true, + "setTimeout": true }, "packages": { - "end-of-stream": true, - "gulp>glob-watcher>async-done>stream-exhaust": true, - "pump>once": true, - "vinyl>cloneable-readable>process-nextick-args": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": true } }, - "gulp>glob-watcher>async-done>stream-exhaust": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": { "builtin": { - "stream.Writable": true, - "util.inherits": true + "assert": true, + "events.EventEmitter": true, + "fs.lstat": true, + "fs.lstatSync": true, + "fs.readdir": true, + "fs.readdirSync": true, + "fs.stat": true, + "fs.statSync": true, + "path.join": true, + "path.resolve": true, + "util": true }, "globals": { - "setImmediate": true + "console.error": true, + "process.cwd": true, + "process.nextTick": true, + "process.platform": true + }, + "packages": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": true } }, - "gulp>glob-watcher>chokidar": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": { "builtin": { - "events.EventEmitter": true, - "fs": true, - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.join": true, - "path.relative": true, - "path.resolve": true, - "path.sep": true + "fs.lstat": true, + "fs.lstatSync": true, + "fs.readlink": true, + "fs.readlinkSync": true, + "fs.realpath": true, + "fs.realpathSync": true, + "fs.stat": true, + "fs.statSync": true, + "path.normalize": true, + "path.resolve": true }, "globals": { - "clearTimeout": true, "console.error": true, - "process.env.CHOKIDAR_INTERVAL": true, - "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, - "process.env.CHOKIDAR_USEPOLLING": true, + "console.trace": true, + "process.env.NODE_DEBUG": true, "process.nextTick": true, + "process.noDeprecation": true, "process.platform": true, - "setTimeout": true + "process.throwDeprecation": true, + "process.traceDeprecation": true, + "process.version": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": { + "globals": { + "process.nextTick": true }, "packages": { - "eslint>is-glob": true, - "gulp-watch>chokidar>async-each": true, - "gulp-watch>glob-parent": true, - "gulp-watch>path-is-absolute": true, - "gulp>glob-watcher>anymatch": true, - "gulp>glob-watcher>chokidar>braces": true, - "gulp>glob-watcher>chokidar>is-binary-path": true, - "gulp>glob-watcher>chokidar>normalize-path": true, - "gulp>glob-watcher>chokidar>readdirp": true, - "gulp>glob-watcher>chokidar>upath": true, - "pumpify>inherits": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true } }, - "gulp>glob-watcher>chokidar>braces": { - "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range": true, - "gulp>gulp-cli>isobject": true, - "gulp>undertaker>arr-flatten": true, - "webpack>micromatch>array-unique": true, - "webpack>micromatch>braces>repeat-element": true, - "webpack>micromatch>braces>snapdragon-node": true, - "webpack>micromatch>braces>split-string": true, - "webpack>micromatch>extglob>extend-shallow": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": { + "builtin": { + "util.inherits": true } }, - "gulp>glob-watcher>chokidar>braces>fill-range": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": { "builtin": { - "util.inspect": true + "path": true + }, + "globals": { + "console.error": true }, "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, - "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": true, - "webpack>micromatch>braces>fill-range>repeat-string": true, - "webpack>micromatch>extglob>extend-shallow": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": true } }, - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": { "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>balanced-match": true, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>concat-map": true } }, - "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": { + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": { "packages": { - "browserify>insert-module-globals>is-buffer": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true } }, - "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": { - "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, - "webpack>micromatch>braces>fill-range>repeat-string": true + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": { + "globals": { + "process.platform": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>semver": { + "globals": { + "console": true, + "process": true + } + }, + "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": { + "builtin": { + "buffer": true } }, "gulp>glob-watcher>chokidar>is-binary-path": { @@ -5580,7 +6428,7 @@ "console.log": true }, "packages": { - "depcheck>@babel/parser": true, + "@babel/core>@babel/parser": true, "depcheck>@babel/traverse": true } }, @@ -5609,6 +6457,40 @@ "loose-envify>js-tokens": true } }, + "madge>debug": { + "builtin": { + "tty.isatty": true, + "util.deprecate": true, + "util.format": true, + "util.inspect": true + }, + "globals": { + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": true + }, + "packages": { + "madge>debug>ms": true, + "sinon>supports-color": true + } + }, + "madge>detective-scss>gonzales-pe": { + "globals": { + "console.error": true, + "define": true + } + }, + "madge>ora>is-unicode-supported": { + "globals": { + "process.env.CI": true, + "process.env.TERM": true, + "process.env.TERM_PROGRAM": true, + "process.env.WT_SESSION": true, + "process.platform": true + } + }, "mocha>find-up>locate-path>path-exists": { "builtin": { "fs.access": true, @@ -5985,87 +6867,7 @@ "version": true }, "packages": { - "sass>chokidar": true - } - }, - "sass>chokidar": { - "builtin": { - "events.EventEmitter": true, - "fs.close": true, - "fs.lstat": true, - "fs.open": true, - "fs.readdir": true, - "fs.realpath": true, - "fs.stat": true, - "fs.unwatchFile": true, - "fs.watch": true, - "fs.watchFile": true, - "os.type": true, - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.isAbsolute": true, - "path.join": true, - "path.normalize": true, - "path.relative": true, - "path.resolve": true, - "path.sep": true, - "util.promisify": true - }, - "globals": { - "clearTimeout": true, - "console.error": true, - "process.env.CHOKIDAR_INTERVAL": true, - "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, - "process.env.CHOKIDAR_USEPOLLING": true, - "process.nextTick": true, - "process.platform": true, - "process.version.match": true, - "setTimeout": true - }, - "packages": { - "css-loader>normalize-path": true, - "depcheck>readdirp": true, - "eslint>is-glob": true, - "sass>chokidar>braces": true, - "sass>chokidar>glob-parent": true, - "sass>chokidar>is-binary-path": true, - "watchify>anymatch": true - } - }, - "sass>chokidar>braces": { - "packages": { - "sass>chokidar>braces>fill-range": true - } - }, - "sass>chokidar>braces>fill-range": { - "builtin": { - "util.inspect": true - }, - "packages": { - "sass>chokidar>braces>fill-range>to-regex-range": true - } - }, - "sass>chokidar>braces>fill-range>to-regex-range": { - "packages": { - "sass>chokidar>braces>fill-range>to-regex-range>is-number": true - } - }, - "sass>chokidar>glob-parent": { - "builtin": { - "os.platform": true, - "path.posix.dirname": true - }, - "packages": { - "eslint>is-glob": true - } - }, - "sass>chokidar>is-binary-path": { - "builtin": { - "path.extname": true - }, - "packages": { - "sass>chokidar>is-binary-path>binary-extensions": true + "chokidar": true } }, "semver": { @@ -6227,12 +7029,12 @@ "process.stdout.isTTY": true }, "packages": { - "eslint>debug": true, "eslint>imurmurhash": true, "globby": true, "globby>ignore": true, "globby>slash": true, "lodash": true, + "madge>debug": true, "nyc>resolve-from": true, "stylelint>@stylelint/postcss-css-in-js": true, "stylelint>@stylelint/postcss-markdown": true, @@ -6578,13 +7380,15 @@ } }, "stylelint>log-symbols": { - "globals": { - "process.env.CI": true, - "process.env.TERM": true, - "process.platform": true - }, "packages": { - "stylelint>chalk": true + "madge>ora>is-unicode-supported": true, + "stylelint>log-symbols>chalk": true + } + }, + "stylelint>log-symbols>chalk": { + "packages": { + "chalk>ansi-styles": true, + "sinon>supports-color": true } }, "stylelint>micromatch": { @@ -6592,8 +7396,8 @@ "util.inspect": true }, "packages": { - "depcheck>readdirp>picomatch": true, - "sass>chokidar>braces": true + "chokidar>braces": true, + "depcheck>readdirp>picomatch": true } }, "stylelint>normalize-selector": { @@ -6695,14 +7499,8 @@ }, "stylelint>postcss-sass": { "packages": { - "stylelint>postcss": true, - "stylelint>postcss-sass>gonzales-pe": true - } - }, - "stylelint>postcss-sass>gonzales-pe": { - "globals": { - "console.error": true, - "define": true + "madge>detective-scss>gonzales-pe": true, + "stylelint>postcss": true } }, "stylelint>postcss-scss": { @@ -6846,7 +7644,7 @@ }, "packages": { "source-map": true, - "webpack>acorn": true + "ts-node>acorn": true } }, "terser>source-map-support": { @@ -6894,6 +7692,12 @@ "pumpify>inherits": true } }, + "ts-node>acorn": { + "globals": { + "console": true, + "define": true + } + }, "tsutils": { "packages": { "tslib": true, @@ -7075,7 +7879,7 @@ "setTimeout": true }, "packages": { - "sass>chokidar": true, + "chokidar": true, "through2": true, "watchify>anymatch": true, "watchify>xtend": true @@ -7083,7 +7887,7 @@ }, "watchify>anymatch": { "packages": { - "css-loader>normalize-path": true, + "chokidar>normalize-path": true, "depcheck>readdirp>picomatch": true } }, @@ -7098,11 +7902,6 @@ "eth-rpc-errors>fast-safe-stringify": true } }, - "webpack>acorn": { - "globals": { - "define": true - } - }, "webpack>micromatch>braces>snapdragon-node": { "packages": { "gulp>gulp-cli>isobject": true, diff --git a/package.json b/package.json index ebba350fe..0e204f756 100644 --- a/package.json +++ b/package.json @@ -74,17 +74,18 @@ "lavamoat:debug:build": "yarn lavamoat:build --writeAutoPolicyDebug --policydebug lavamoat/build-system/policy-debug.json", "lavamoat:background:auto": "./development/generate-lavamoat-policies.sh", "lavamoat:background:auto:dev": "./development/generate-lavamoat-policies.sh --dev", - "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:background:auto" + "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:background:auto", + "ts-migration:enumerate": "ts-node development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts", + "ts-migration:dashboard:watch": "ts-node development/ts-migration-dashboard/scripts/build.ts --watch", + "ts-migration:dashboard:build": "ts-node development/ts-migration-dashboard/scripts/build.ts", + "ts-migration:dashboard:deploy": "gh-pages --dist development/ts-migration-dashboard/build --remote ts-migration-dashboard" }, "resolutions": { "**/regenerator-runtime": "^0.13.7", - "**/caniuse-lite": "1.0.30001265", + "**/caniuse-lite": "^1.0.30001312", "**/cross-fetch": "^3.1.5", "**/configstore/dot-prop": "^5.1.1", "**/ethers/elliptic": "^6.5.4", - "**/knex/minimist": "^1.2.6", - "**/optimist/minimist": "^1.2.6", - "**/socketcluster/minimist": "^1.2.6", "**/redux/symbol-observable": "^2.0.3", "**/redux-devtools-instrument/symbol-observable": "^2.0.3", "**/rxjs/symbol-observable": "^2.0.3", @@ -97,6 +98,7 @@ "3box/**/libp2p-keychain/node-forge": "^1.3.0", "3box/ipfs/libp2p-webrtc-star/socket.io/engine.io": "^4.0.0", "analytics-node/axios": "^0.21.2", + "depcheck/@babel/parser": "7.16.4", "ganache-core/lodash": "^4.17.21", "netmask": "^2.0.1", "pubnub/superagent-proxy": "^3.0.0", @@ -270,7 +272,22 @@ "@testing-library/react-hooks": "^3.2.1", "@testing-library/user-event": "^14.0.0-beta.12", "@tsconfig/node14": "^1.0.1", + "@types/babelify": "^7.3.7", + "@types/browserify": "^12.0.37", + "@types/end-of-stream": "^1.4.1", + "@types/fs-extra": "^9.0.13", + "@types/gulp": "^4.0.9", + "@types/gulp-autoprefixer": "^0.0.33", + "@types/gulp-dart-sass": "^1.0.1", + "@types/gulp-sourcemaps": "^0.0.35", + "@types/madge": "^5.0.0", + "@types/node": "^17.0.21", + "@types/pify": "^5.0.1", + "@types/pump": "^1.1.1", "@types/react": "^16.9.53", + "@types/react-dom": "^17.0.11", + "@types/watchify": "^3.11.1", + "@types/yargs": "^17.0.8", "@typescript-eslint/eslint-plugin": "^5.30.7", "@typescript-eslint/parser": "^5.30.7", "addons-linter": "^5.2.0", @@ -281,14 +298,16 @@ "browserify": "^16.5.1", "chalk": "^3.0.0", "chromedriver": "^103.0.0", + "chokidar": "^3.5.3", "concurrently": "^5.2.0", "copy-webpack-plugin": "^6.0.3", "cross-spawn": "^7.0.3", "css-loader": "^2.1.1", "css-to-xpath": "^0.1.0", + "csstype": "^3.0.11", "del": "^3.0.0", "depcheck": "^1.4.2", - "dependency-tree": "^8.1.1", + "dependency-tree": "^8.1.2", "duplexify": "^4.1.1", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.15.1", @@ -309,6 +328,7 @@ "fs-extra": "^8.1.0", "ganache": "^v7.0.4", "geckodriver": "^1.21.0", + "gh-pages": "^3.2.3", "globby": "^11.0.4", "gulp": "^4.0.2", "gulp-autoprefixer": "^5.0.0", @@ -334,6 +354,7 @@ "lavamoat-viz": "^6.0.9", "lockfile-lint": "^4.0.0", "loose-envify": "^1.4.0", + "madge": "^5.0.1", "mocha": "^7.2.0", "mockttp": "^2.6.0", "nock": "^9.0.14", @@ -366,6 +387,7 @@ "stylelint": "^13.6.1", "terser": "^5.7.0", "through2": "^4.0.2", + "ts-node": "^10.5.0", "ttest": "^2.1.1", "typescript": "~4.4.0", "vinyl": "^2.2.1", diff --git a/patches/@types+madge+5.0.0.patch b/patches/@types+madge+5.0.0.patch new file mode 100644 index 000000000..3d49bedc1 --- /dev/null +++ b/patches/@types+madge+5.0.0.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/@types/madge/index.d.ts b/node_modules/@types/madge/index.d.ts +index f2a8652..3a26bfe 100755 +--- a/node_modules/@types/madge/index.d.ts ++++ b/node_modules/@types/madge/index.d.ts +@@ -265,6 +265,10 @@ declare namespace madge { + * + * @default undefined + */ +- dependencyFilter?: (id: string) => boolean; ++ dependencyFilter?: ( ++ dependencyFilePath: string, ++ traversedFilePath: string, ++ baseDir: string, ++ ) => boolean; + } + } diff --git a/tsconfig.json b/tsconfig.json index 34389d567..4c1ead46b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, + "baseUrl": ".", "inlineSources": true, "isolatedModules": true, "jsx": "react", @@ -22,5 +23,8 @@ "dist/**/*", "node_modules/**" ], - "extends": "@tsconfig/node14/tsconfig.json" + "extends": "@tsconfig/node14/tsconfig.json", + "paths": { + "*": ["./types/*"] + } } diff --git a/types/classnames.d.ts b/types/classnames.d.ts new file mode 100644 index 000000000..a2a57bae1 --- /dev/null +++ b/types/classnames.d.ts @@ -0,0 +1,5 @@ +declare module 'classnames' { + export default function classnames( + ...args: (string | Record)[] + ): string; +} diff --git a/types/react-tippy.d.ts b/types/react-tippy.d.ts new file mode 100644 index 000000000..b14126b26 --- /dev/null +++ b/types/react-tippy.d.ts @@ -0,0 +1,71 @@ +// Copied from +// which for some reason is not included in the distributed version +declare module 'react-tippy' { + import * as React from 'react'; + + export type Position = + | 'top' + | 'top-start' + | 'top-end' + | 'bottom' + | 'bottom-start' + | 'bottom-end' + | 'left' + | 'left-start' + | 'left-end' + | 'right' + | 'right-start' + | 'right-end'; + export type Trigger = 'mouseenter' | 'focus' | 'click' | 'manual'; + export type Animation = 'shift' | 'perspective' | 'fade' | 'scale' | 'none'; + export type Size = 'small' | 'regular' | 'big'; + export type Theme = 'dark' | 'light' | 'transparent'; + + export interface TooltipProps { + title?: string; + disabled?: boolean; + open?: boolean; + useContext?: boolean; + onRequestClose?: () => void; + position?: Position; + trigger?: Trigger; + tabIndex?: number; + interactive?: boolean; + interactiveBorder?: number; + delay?: number; + hideDelay?: number; + animation?: Animation; + arrow?: boolean; + arrowSize?: Size; + animateFill?: boolean; + duration?: number; + hideDuration?: number; + distance?: number; + offset?: number; + hideOnClick?: boolean | 'persistent'; + multiple?: boolean; + followCursor?: boolean; + inertia?: boolean; + transitionFlip?: boolean; + popperOptions?: any; + html?: React.ReactElement; + unmountHTMLWhenHide?: boolean; + size?: Size; + sticky?: boolean; + stickyDuration?: boolean; + beforeShown?: () => void; + shown?: () => void; + beforeHidden?: () => void; + hidden?: () => void; + theme?: Theme; + className?: string; + style?: React.CSSProperties; + } + + export class Tooltip extends React.Component {} + + export function withTooltip

( + component: React.ComponentType

, + options: TooltipProps, + ): JSX.Element; +} diff --git a/types/react.d.ts b/types/react.d.ts new file mode 100644 index 000000000..c7dd2b37d --- /dev/null +++ b/types/react.d.ts @@ -0,0 +1,9 @@ +declare namespace React { + /* eslint-disable-next-line import/no-extraneous-dependencies */ + import * as CSS from 'csstype'; + + // Add custom CSS properties so that they can be used in `style` props + export interface CSSProperties extends CSS.Properties { + '--progress'?: string; + } +} diff --git a/yarn.lock b/yarn.lock index 80e056607..91de10061 100644 --- a/yarn.lock +++ b/yarn.lock @@ -393,6 +393,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.12.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.9", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" @@ -1249,6 +1254,18 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" + "@discoveryjs/json-ext@^0.5.3": version "0.5.5" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" @@ -4515,16 +4532,69 @@ dependencies: node-gyp-build "4.3.0" -"@tsconfig/node14@^1.0.1": +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + +"@tsconfig/node14@^1.0.0", "@tsconfig/node14@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + "@types/aria-query@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== +"@types/babel-core@*": + version "6.25.7" + resolved "https://registry.yarnpkg.com/@types/babel-core/-/babel-core-6.25.7.tgz#f9c22d5c085686da2f6ffbdae778edb3e6017671" + integrity sha512-WPnyzNFVRo6bxpr7bcL27qXtNKNQ3iToziNBpibaXHyKGWQA0+tTLt73QQxC/5zzbM544ih6Ni5L5xrck6rGwg== + dependencies: + "@types/babel-generator" "*" + "@types/babel-template" "*" + "@types/babel-traverse" "*" + "@types/babel-types" "*" + "@types/babylon" "*" + +"@types/babel-generator@*": + version "6.25.5" + resolved "https://registry.yarnpkg.com/@types/babel-generator/-/babel-generator-6.25.5.tgz#b02723fd589349b05524376e5530228d3675d878" + integrity sha512-lhbwMlAy5rfWG+R6l8aPtJdEFX/kcv6LMFIuvUb0i89ehqgD24je9YcB+0fRspQhgJGlEsUImxpw4pQeKS/+8Q== + dependencies: + "@types/babel-types" "*" + +"@types/babel-template@*": + version "6.25.2" + resolved "https://registry.yarnpkg.com/@types/babel-template/-/babel-template-6.25.2.tgz#3c4cde02dbcbbf461a58d095a9f69f35eabd5f06" + integrity sha512-QKtDQRJmAz3Y1HSxfMl0syIHebMc/NnOeH/8qeD0zjgU2juD0uyC922biMxCy5xjTNvHinigML2l8kxE8eEBmw== + dependencies: + "@types/babel-types" "*" + "@types/babylon" "*" + +"@types/babel-traverse@*": + version "6.25.7" + resolved "https://registry.yarnpkg.com/@types/babel-traverse/-/babel-traverse-6.25.7.tgz#bc75fce23d8394534562a36a32dec94a54d11835" + integrity sha512-BeQiEGLnVzypzBdsexEpZAHUx+WucOMXW6srEWDkl4SegBlaCy+iBvRO+4vz6EZ+BNQg22G4MCdDdvZxf+jW5A== + dependencies: + "@types/babel-types" "*" + +"@types/babel-types@*": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.11.tgz#263b113fa396fac4373188d73225297fb86f19a9" + integrity sha512-pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.14" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" @@ -4558,6 +4628,21 @@ dependencies: "@babel/types" "^7.3.0" +"@types/babelify@^7.3.7": + version "7.3.7" + resolved "https://registry.yarnpkg.com/@types/babelify/-/babelify-7.3.7.tgz#dca7c01c6f2675fe7251af4cfa05137923a36978" + integrity sha512-OjGe1SBi3M7I/uk5+x4mNhVNymJNyK4RqeStCL5U/H2pB+K1FhC0PYbLJiPTyZpWs/8eVmQJKWoF4hGgqIdYhA== + dependencies: + "@types/babel-core" "*" + "@types/node" "*" + +"@types/babylon@*": + version "6.16.6" + resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.6.tgz#a1e7e01567b26a5ebad321a74d10299189d8d932" + integrity sha512-G4yqdVlhr6YhzLXFKy5F7HtRBU8Y23+iWy7UKthMq/OSQnL1hbsoeXESQ2LY8zEDlknipDG3nRGhUC9tkwvy/w== + dependencies: + "@types/babel-types" "*" + "@types/bn.js@^4.11.3": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" @@ -4577,6 +4662,14 @@ resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb" integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw== +"@types/browserify@*", "@types/browserify@^12.0.37": + version "12.0.37" + resolved "https://registry.yarnpkg.com/@types/browserify/-/browserify-12.0.37.tgz#f08312f17b4a7411441cce3a45434a0ce81c4da3" + integrity sha512-rGVZQhqlBMdnU0Wcq/RDO6+I1tppM42SqVq5ZEXiw2ft/A55Ro+dz4aKTy28gniwOIxZhRFqb5N+qnbg7J040g== + dependencies: + "@types/insert-module-globals" "*" + "@types/node" "*" + "@types/chrome@^0.0.136": version "0.0.136" resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.136.tgz#7c011b9f997b0156f25a140188a0c5689d3f368f" @@ -4607,11 +4700,23 @@ resolved "https://registry.yarnpkg.com/@types/deep-freeze-strict/-/deep-freeze-strict-1.1.0.tgz#447a6a2576191344aa42310131dd3df5c41492c4" integrity sha1-RHpqJXYZE0SqQjEBMd099cQUksQ= +"@types/end-of-stream@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/end-of-stream/-/end-of-stream-1.4.1.tgz#9a401b642bcb0e4a8f0b70326725fbbb0216eb10" + integrity sha512-dYCSlUtCGXuP2axeKD5l1vj/04iNXW8TLXryDa0uA8u8EsNE68jn27ZLg7jAPV+qJAlk1wC4WtRdIoZXvuUl0A== + dependencies: + "@types/node" "*" + "@types/estree@^0.0.48": version "0.0.48" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== +"@types/expect@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== + "@types/filesystem@*": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.30.tgz#a7373a2edf34d13e298baf7ee1101f738b2efb7e" @@ -4624,11 +4729,26 @@ resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee" integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ== +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + "@types/glob-base@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d" integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0= +"@types/glob-stream@*": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-6.1.1.tgz#c792d8d1514278ff03cad5689aba4c4ab4fbc805" + integrity sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A== + dependencies: + "@types/glob" "*" + "@types/node" "*" + "@types/glob@*", "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -4644,6 +4764,37 @@ dependencies: "@types/node" "*" +"@types/gulp-autoprefixer@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/gulp-autoprefixer/-/gulp-autoprefixer-0.0.33.tgz#8ae4d90e64ab1d9cb09a32113d2e11cc07bb7729" + integrity sha512-FgunPm1uMroC/w9FCxtQhPPskR/WvnT+sNPxnyldwNXjq8K5ktzZAOqATyrYk0jTgae793uc+k5vsGV6Q+G7xA== + dependencies: + "@types/node" "*" + +"@types/gulp-dart-sass@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/gulp-dart-sass/-/gulp-dart-sass-1.0.1.tgz#db98ce31a2b80e5ba414c1e7f9e3d259dc19d702" + integrity sha512-BCszpjyCu1ntSzfR7OSP5vib7U4bQxNQchu3j7ea71+22npTVdSUPYlm0jVtRD/W+1IZfzP7DZnmxuNMCozRIg== + dependencies: + "@types/sass" "*" + +"@types/gulp-sourcemaps@^0.0.35": + version "0.0.35" + resolved "https://registry.yarnpkg.com/@types/gulp-sourcemaps/-/gulp-sourcemaps-0.0.35.tgz#0e3790b44fabe8f8fcd2bf29845aa1d2699940ef" + integrity sha512-vUBuizwA4CAV3Mke0DJYHQxyN4YOB1aAql284qAO7Et7fe0hmnPi/R9Fhu2UhxMuSxAwFktsJUOQk5dJHOU1eA== + dependencies: + "@types/node" "*" + "@types/vinyl" "*" + +"@types/gulp@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/gulp/-/gulp-4.0.9.tgz#a2f9667bcc26bc72b4899dd16216d6584a12346c" + integrity sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q== + dependencies: + "@types/undertaker" "*" + "@types/vinyl-fs" "*" + chokidar "^3.3.1" + "@types/har-format@*": version "1.2.5" resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.5.tgz#4f6648814d0fdcb6a510e3364a9db439a753c4b1" @@ -4661,6 +4812,13 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== +"@types/insert-module-globals@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/insert-module-globals/-/insert-module-globals-7.0.2.tgz#0d44216a6489829897d7c8a97dbf8250444c95f8" + integrity sha512-b+XCUBUioZoveg4e8+D/wGVIvQcuV6TNHPy53aeY0YBydOOZhAtX2Sdr4x97uWKKy9Xrt0SUKsPxbT9e0u/x9Q== + dependencies: + "@types/node" "*" + "@types/invariant@^2.2.29": version "2.2.29" resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.29.tgz#aa845204cd0a289f65d47e0de63a6a815e30cc66" @@ -4726,6 +4884,13 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== +"@types/madge@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/madge/-/madge-5.0.0.tgz#5b77c542cb547157b73c7d3c01c82ba81fdec5ca" + integrity sha512-Son5Z121knxCXlQM3Q0ivh0OP8Fix4ztGl0VfA9JybQMPQprc2K4jtTaRc3IhGyBy6ku5cWKJxEuj8zePiZbBQ== + dependencies: + "@types/node" "*" + "@types/markdown-to-jsx@^6.11.3": version "6.11.3" resolved "https://registry.yarnpkg.com/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz#cdd1619308fecbc8be7e6a26f3751260249b020e" @@ -4765,7 +4930,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^17.0.21": version "17.0.29" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d" integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== @@ -4832,6 +4997,11 @@ dependencies: "@types/node" "*" +"@types/pify@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/pify/-/pify-5.0.1.tgz#10e398a89e3740dd5c316c502acad9ea5e444d3f" + integrity sha512-UYcJBAqWLyg+eITXGIu9DR7RXJFvSupz+Hf+RqJYHzDJedvDMTsB1JmDV6Qfna2g62VIxUKvoWqTxGHy6U/bLA== + "@types/prettier@^2.0.0", "@types/prettier@^2.1.0": version "2.2.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" @@ -4847,6 +5017,13 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== +"@types/pump@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/pump/-/pump-1.1.1.tgz#edb3475e2bad0f4552bdaa91c6c43b82e08ff15e" + integrity sha512-wpRerjHDxFBQ4r8XNv3xHJZeuqrBBoeQ/fhgkooV2F7KsPIYRROb/+f9ODgZfOEyO5/w2ej4YQdpPPXipT8DAA== + dependencies: + "@types/node" "*" + "@types/qs@^6.9.5": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -4859,6 +5036,13 @@ dependencies: "@types/react" "*" +"@types/react-dom@^17.0.11": + version "17.0.11" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" + integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== + dependencies: + "@types/react" "*" + "@types/react-syntax-highlighter@11.0.5": version "11.0.5" resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz#0d546261b4021e1f9d85b50401c0a42acb106087" @@ -4895,6 +5079,13 @@ dependencies: redux "*" +"@types/sass@*": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" + integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== + dependencies: + "@types/node" "*" + "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -4944,6 +5135,20 @@ dependencies: source-map "^0.6.1" +"@types/undertaker-registry@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz#4306d4a03d7acedb974b66530832b90729e1d1da" + integrity sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ== + +"@types/undertaker@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/undertaker/-/undertaker-1.2.7.tgz#89c37fd3be556141a4092b38f8bc503076803d21" + integrity sha512-xuY7nBwo1zSRoY2aitp/HArHfTulFAKql2Fr4b4mWbBBP+F50n7Jm6nwISTTMaDk2xvl92O10TTejVF0Q9mInw== + dependencies: + "@types/node" "*" + "@types/undertaker-registry" "*" + async-done "~1.3.2" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -4954,6 +5159,30 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== +"@types/vinyl-fs@*": + version "2.4.12" + resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-2.4.12.tgz#7b4673d9b4d5a874c8652d10f0f0265479014c8e" + integrity sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw== + dependencies: + "@types/glob-stream" "*" + "@types/node" "*" + "@types/vinyl" "*" + +"@types/vinyl@*": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.6.tgz#b2d134603557a7c3d2b5d3dc23863ea2b5eb29b0" + integrity sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g== + dependencies: + "@types/expect" "^1.20.4" + "@types/node" "*" + +"@types/watchify@^3.11.1": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@types/watchify/-/watchify-3.11.1.tgz#08708b1d2fd40b6aca3713fc34687b3ec3a63a51" + integrity sha512-PZqDqz84m5X45lbR6z42OmaoODhv+gsA3Jor498MpDikuLYrjYETEjXdx6V6O788lkYo0UwfD8awHLZ0c4iCGw== + dependencies: + "@types/browserify" "*" + "@types/webpack-env@^1.16.0": version "1.16.3" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a" @@ -5006,6 +5235,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^17.0.8": + version "17.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c" + integrity sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw== + dependencies: + "@types/yargs-parser" "*" + "@types/yauzl@2.9.2", "@types/yauzl@^2.9.1": version "2.9.2" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" @@ -5509,7 +5745,7 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1, acorn-walk@^7.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.2.0: +acorn-walk@^8.1.1, acorn-walk@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== @@ -5529,7 +5765,7 @@ acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.7.0, acorn@^8.7.1: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0, acorn@^8.7.1: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== @@ -5917,6 +6153,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" @@ -6244,14 +6485,14 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-done@^1.2.0, async-done@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.1.tgz#14b7b73667b864c8f02b5b253fc9c6eddb777f3e" - integrity sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg== +async-done@^1.2.0, async-done@^1.2.2, async-done@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== dependencies: end-of-stream "^1.1.0" once "^1.3.2" - process-nextick-args "^1.0.7" + process-nextick-args "^2.0.0" stream-exhaust "^1.0.1" async-each@^1.0.1: @@ -6918,7 +7159,7 @@ bl@^3.0.0: dependencies: readable-stream "^3.0.1" -bl@^4.0.3: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -7795,10 +8036,10 @@ camelcase@^6.0.0, camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@1.0.30001265, caniuse-lite@^1.0.30000810, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001370: - version "1.0.30001265" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz#0613c9e6c922e422792e6fcefdf9a3afeee4f8c3" - integrity sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw== +caniuse-lite@^1.0.30000810, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001312, caniuse-lite@^1.0.30001370: + version "1.0.30001312" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== capture-exit@^2.0.0: version "2.0.0" @@ -8023,10 +8264,10 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.1, chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -8193,7 +8434,14 @@ cli-boxes@^2.2.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== -cli-spinners@^2.6.0: +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0, cli-spinners@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== @@ -8476,7 +8724,7 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== -commander@^2.15.0, commander@^2.15.1, commander@^2.16.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.6.0, commander@^2.8.1: +commander@^2.15.0, commander@^2.15.1, commander@^2.16.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.6.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -8491,6 +8739,11 @@ commander@^6.1.0, commander@^6.2.1: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^9.0.0: version "9.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" @@ -8961,6 +9214,11 @@ create-react-context@0.3.0: gud "^1.0.0" warning "^4.0.3" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-fetch@2.2.2, cross-fetch@^2.1.0, cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -9175,10 +9433,10 @@ csstype@^2.5.2, csstype@^2.5.7, csstype@^2.6.5, csstype@^2.6.7: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.11.tgz#452f4d024149ecf260a852b025e36562a253ffc5" integrity sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw== -csstype@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" - integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== +csstype@^3.0.11, csstype@^3.0.2: + version "3.0.11" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" + integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== currency-formatter@^1.4.2: version "1.4.2" @@ -9344,7 +9602,7 @@ debug@3.X, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -9400,13 +9658,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decomment@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/decomment/-/decomment-0.9.4.tgz#fa40335bd90e3826d5c1984276e390525ff856d5" - integrity sha512-8eNlhyI5cSU4UbBlrtagWpR03dqXcE5IR9zpe7PnO6UzReXDskucsD8usgrzUmQ6qJ3N82aws/p/mu/jqbURWw== - dependencies: - esprima "4.0.1" - decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -9666,14 +9917,14 @@ depd@~2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -dependency-tree@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.1.tgz#1a309f5a860b3285f7b1638c98ce48c8906ae6e6" - integrity sha512-bl5U16VQpaYxD0xvcnCH/dTctCiWnsVWymh9dNjbm4T00Hm21flu1VLnNueKCj7+3uusbcJhKKKtiWrpU0I+Nw== +dependency-tree@^8.1.1, dependency-tree@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-8.1.2.tgz#c9e652984f53bd0239bc8a3e50cbd52f05b2e770" + integrity sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A== dependencies: commander "^2.20.3" debug "^4.3.1" - filing-cabinet "^3.0.0" + filing-cabinet "^3.0.1" precinct "^8.0.0" typescript "^3.9.7" @@ -9758,7 +10009,7 @@ detect-port@^1.3.0: address "^1.0.1" debug "^2.6.0" -detective-amd@^3.0.1: +detective-amd@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-3.1.0.tgz#92daee3214a0ca4522646cf333cac90a3fca6373" integrity sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw== @@ -9776,10 +10027,10 @@ detective-cjs@^3.1.1: ast-module-types "^2.4.0" node-source-walk "^4.0.0" -detective-es6@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-2.2.0.tgz#8f2baba3f8cd90a5cfd748f5ac436f0158ed2585" - integrity sha512-fSpNY0SLER7/sVgQZ1NxJPwmc9uCTzNgdkQDhAaj8NPYwr7Qji9QBcmbNvtMCnuuOGMuKn3O7jv0An+/WRWJZQ== +detective-es6@^2.2.0, detective-es6@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-2.2.1.tgz#090c874e2cdcda677389cc2ae36f0b37faced187" + integrity sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ== dependencies: node-source-walk "^4.0.0" @@ -9802,6 +10053,16 @@ detective-postcss@^4.0.0: postcss "^8.1.7" postcss-values-parser "^2.0.1" +detective-postcss@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-5.0.0.tgz#7d39bde17a280e26d0b43130fd735a4a75786fb0" + integrity sha512-IBmim4GTEmZJDBOAoNFBskzNryTmYpBq+CQGghKnSGkoGWascE8iEo98yA+ZM4N5slwGjCr/NxCm+Kzg+q3tZg== + dependencies: + debug "^4.3.1" + is-url "^1.2.4" + postcss "^8.2.13" + postcss-values-parser "^5.0.0" + detective-sass@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-3.0.1.tgz#496b819efd1f5c4dd3f0e19b43a8634bdd6927c4" @@ -9904,7 +10165,7 @@ diff@3.5.0: resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -diff@^4.0.2: +diff@^4.0.1, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== @@ -10288,6 +10549,11 @@ elliptic@6.5.3, elliptic@6.5.4, elliptic@=3.0.3, elliptic@^6.0.0, elliptic@^6.4. minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +email-addresses@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb" + integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg== + emittery@0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" @@ -10426,10 +10692,10 @@ enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.3.2: - version "5.8.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" - integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== +enhanced-resolve@^5.8.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz#49ac24953ac8452ed8fed2ef1340fc8e043667ee" + integrity sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -12259,10 +12525,10 @@ filename-reserved-regex@^2.0.0: resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= -filenamify@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.2.0.tgz#c99716d676869585b3b5d328b3f06590d032e89f" - integrity sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA== +filenamify@^4.1.0, filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== dependencies: filename-reserved-regex "^2.0.0" strip-outer "^1.0.1" @@ -12278,20 +12544,19 @@ filesize@^3.6.1: resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== -filing-cabinet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-3.0.0.tgz#08f9ceec5134f4a662926dd45b8a26eca1b5f622" - integrity sha512-o8Qac5qxZ1uVidR4Sd7ZQbbqObFZlqXU4xu1suAYg9PQPcQFNTzOmxQa/MehIDMgIvXHTb42mWPNV9l3eHBPSw== +filing-cabinet@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-3.1.0.tgz#3f2a347f0392faad772744de099e25b6dd6f86fd" + integrity sha512-ZFutWTo14Z1xmog76UoQzDKEza1fSpqc+HvUN6K6GILrfhIn6NbR8fHQktltygF+wbt7PZ/EvfLK6yJnebd40A== dependencies: app-module-path "^2.2.0" commander "^2.20.3" - debug "^4.3.1" - decomment "^0.9.3" - enhanced-resolve "^5.3.2" + debug "^4.3.3" + enhanced-resolve "^5.8.3" is-relative-path "^1.0.2" module-definition "^3.3.1" - module-lookup-amd "^7.0.0" - resolve "^1.19.0" + module-lookup-amd "^7.0.1" + resolve "^1.21.0" resolve-dependency-path "^2.0.0" sass-lookup "^3.0.0" stylus-lookup "^3.0.1" @@ -13043,6 +13308,19 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +gh-pages@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-3.2.3.tgz#897e5f15e111f42af57d21d430b83e5cdf29472c" + integrity sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg== + dependencies: + async "^2.6.1" + commander "^2.18.0" + email-addresses "^3.0.1" + filenamify "^4.3.0" + find-cache-dir "^3.3.1" + fs-extra "^8.1.0" + globby "^6.1.0" + git-up@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" @@ -13447,6 +13725,13 @@ graphql-subscriptions@^1.1.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== +graphviz@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/graphviz/-/graphviz-0.0.9.tgz#0bbf1df588c6a92259282da35323622528c4bbc4" + integrity sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg== + dependencies: + temp "~0.4.0" + gridplus-sdk@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/gridplus-sdk/-/gridplus-sdk-2.2.2.tgz#68a794fa74eb8b6bb84c0b0c59199b8f8bf027ec" @@ -15422,6 +15707,11 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-2.0.0.tgz#68eea07e8a0a0a94c2d080dd674c731ab2a461ab" @@ -15741,6 +16031,11 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" @@ -15748,6 +16043,11 @@ is-upper-case@^1.1.0: dependencies: upper-case "^1.1.0" +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + is-url@^1.2.2, is-url@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" @@ -18132,12 +18432,13 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: - chalk "^4.0.0" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" loglevel@^1.4.1: version "1.6.0" @@ -18264,6 +18565,34 @@ luxon@^1.26.0: resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.26.0.tgz#d3692361fda51473948252061d0f8561df02b578" integrity sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A== +madge@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/madge/-/madge-5.0.1.tgz#2096d9006558ea0669b3ade89c2cda708a24e22b" + integrity sha512-krmSWL9Hkgub74bOjnjWRoFPAJvPwSG6Dbta06qhWOq6X/n/FPzO3ESZvbFYVIvG2g4UHXvCJN1b+RZLaSs9nA== + dependencies: + chalk "^4.1.1" + commander "^7.2.0" + commondir "^1.0.1" + debug "^4.3.1" + dependency-tree "^8.1.1" + detective-amd "^3.1.0" + detective-cjs "^3.1.1" + detective-es6 "^2.2.0" + detective-less "^1.0.2" + detective-postcss "^5.0.0" + detective-sass "^3.0.1" + detective-scss "^2.0.1" + detective-stylus "^1.0.0" + detective-typescript "^7.0.0" + graphviz "0.0.9" + ora "^5.4.1" + pluralize "^8.0.0" + precinct "^8.1.0" + pretty-ms "^7.0.1" + rc "^1.2.7" + typescript "^3.9.5" + walkdir "^0.4.1" + mafmt@^6.0.0, mafmt@^6.0.2, mafmt@^6.0.4, mafmt@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-6.0.7.tgz#80312e08bfba0f89e2daa403525f33e07d9b97fa" @@ -18307,6 +18636,11 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-iterator@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" @@ -19041,7 +19375,7 @@ module-deps@^6.0.0, module-deps@^6.2.3: through2 "^2.0.0" xtend "^4.0.0" -module-lookup-amd@^7.0.0: +module-lookup-amd@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz#d67c1a93f2ff8e38b8774b99a638e9a4395774b2" integrity sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ== @@ -20252,6 +20586,21 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + orbit-db-access-controllers@^0.2.0, orbit-db-access-controllers@~0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/orbit-db-access-controllers/-/orbit-db-access-controllers-0.2.2.tgz#4412b01a198208712d2a0a4065709eeea86b39d6" @@ -20816,6 +21165,11 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + parse-node-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -21326,6 +21680,11 @@ plugin-error@1.0.1, plugin-error@^1.0.1: arr-union "^3.1.0" extend-shallow "^3.0.2" +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + pn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -21574,6 +21933,15 @@ postcss-values-parser@^2.0.1: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-values-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-5.0.0.tgz#10c61ac3f488e4de25746b829ea8d8894e9ac3d2" + integrity sha512-2viDDjMMrt21W2izbeiJxl3kFuD/+asgB0CBwPEgSyhCmBnDIa/y+pLaoyX+q3I3DHH0oPPL3cgjVTQvlS1Maw== + dependencies: + color-name "^1.1.4" + is-url-superb "^4.0.0" + quote-unquote "^1.0.0" + postcss@7.0.21: version "7.0.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" @@ -21583,7 +21951,7 @@ postcss@7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@8.4.13, postcss@^8.1.10, postcss@^8.1.7: +postcss@8.4.13, postcss@^8.1.10, postcss@^8.1.7, postcss@^8.2.13: version "8.4.13" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.13.tgz#7c87bc268e79f7f86524235821dfdf9f73e5d575" integrity sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA== @@ -21656,16 +22024,16 @@ prebuild-install@^6.0.0: tar-fs "^2.0.0" tunnel-agent "^0.6.0" -precinct@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/precinct/-/precinct-8.1.0.tgz#6b8f2389ba2ca61c466731390b0d7e25da3fd996" - integrity sha512-oeZBR9IdER42Ef6Rz11z1oOUqicsI5J1Qffj6tYghKLhxN2UnHy7uE1axxNr0VZRevPK2HWkROk36uXrbJwHFA== +precinct@^8.0.0, precinct@^8.1.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-8.3.1.tgz#94b99b623df144eed1ce40e0801c86078466f0dc" + integrity sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q== dependencies: commander "^2.20.3" - debug "^4.3.1" - detective-amd "^3.0.1" + debug "^4.3.3" + detective-amd "^3.1.0" detective-cjs "^3.1.1" - detective-es6 "^2.2.0" + detective-es6 "^2.2.1" detective-less "^1.0.2" detective-postcss "^4.0.0" detective-sass "^3.0.1" @@ -21769,6 +22137,13 @@ pretty-hrtime@^1.0.0, pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= +pretty-ms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + printj@~1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" @@ -21786,12 +22161,12 @@ prismjs@^1.21.0, prismjs@~1.22.0: optionalDependencies: clipboard "^2.0.0" -process-nextick-args@^1.0.6, process-nextick-args@^1.0.7, process-nextick-args@~1.0.6: +process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= -process-nextick-args@~2.0.0: +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== @@ -22426,6 +22801,11 @@ quote-stream@^1.0.1: minimist "^1.1.3" through2 "^2.0.0" +quote-unquote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" + integrity sha1-Z6mncUjv/q+BpNQoQEpxC6qsigs= + rabin-wasm@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.0.8.tgz#5b61b1d519d0377453435fbca5f82510b3f956cb" @@ -23689,7 +24069,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2, resolve@^1.4.0: +resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.0, resolve@^1.3.2, resolve@^1.4.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -23714,6 +24094,14 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -25825,6 +26213,11 @@ temp@^0.9.1, temp@~0.9.0: dependencies: rimraf "~2.6.2" +temp@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.4.0.tgz#671ad63d57be0fe9d7294664b3fc400636678a60" + integrity sha1-ZxrWPVe+D+nXKUZks/xABjZnimA= + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -26306,6 +26699,25 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== +ts-node@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.5.0.tgz#618bef5854c1fbbedf5e31465cbb224a1d524ef9" + integrity sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.0" + yn "3.1.1" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -26482,7 +26894,7 @@ typeforce@^1.11.3, typeforce@^1.11.5, typeforce@^1.18.0: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== -typescript@^3.9.7: +typescript@^3.9.5, typescript@^3.9.7: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== @@ -27054,6 +27466,11 @@ uuid@^8.3.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache-lib@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" + integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== + v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" @@ -27284,6 +27701,11 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" +walkdir@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" + integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ== + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -27336,7 +27758,7 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" -wcwidth@^1.0.0: +wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= @@ -28083,6 +28505,11 @@ ylru@^1.2.0: resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"