diff --git a/.circleci/cache-version.txt b/.circleci/cache-version.txt index 5e88a75bc1..4a355f62e1 100644 --- a/.circleci/cache-version.txt +++ b/.circleci/cache-version.txt @@ -1,3 +1,3 @@ # Bump this version to force CI to re-create the cache from scratch. -9-13-22 +10-31-22 diff --git a/.circleci/config.yml b/.circleci/config.yml index 3fe0081808..5c6ae226c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,8 +27,7 @@ mainBuildFilters: &mainBuildFilters branches: only: - develop - - fix-ci-deps - - issue-23843_electron_21_upgrade + - 'feature/v8-snapshots' # usually we don't build Mac app - it takes a long time # but sometimes we want to really confirm we are doing the right thing @@ -37,8 +36,7 @@ macWorkflowFilters: &darwin-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ 'correct-dashboard-results', << pipeline.git.branch >> ] - - equal: [ 'issue-23843_electron_21_upgrade', << pipeline.git.branch >> ] + - equal: [ 'feature/v8-snapshots', << pipeline.git.branch >> ] - matches: pattern: "-release$" value: << pipeline.git.branch >> @@ -47,8 +45,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ 'webkit-multidomain', << pipeline.git.branch >> ] - - equal: [ 'issue-23843_electron_21_upgrade', << pipeline.git.branch >> ] + - equal: [ 'feature/v8-snapshots', << pipeline.git.branch >> ] - matches: pattern: "-release$" value: << pipeline.git.branch >> @@ -66,8 +63,7 @@ windowsWorkflowFilters: &windows-workflow-filters when: or: - equal: [ develop, << pipeline.git.branch >> ] - - equal: [ linux-arm64, << pipeline.git.branch >> ] - - equal: [ 'ryanm/fix/windows-node-module-install', << pipeline.git.branch >> ] + - equal: [ 'feature/v8-snapshots', << pipeline.git.branch >> ] - matches: pattern: "-release$" value: << pipeline.git.branch >> @@ -114,17 +110,19 @@ executors: environment: PLATFORM: windows - darwin-arm64: + darwin-arm64: &darwin-arm64-executor machine: true environment: PLATFORM: darwin - linux-arm64: + linux-arm64: &linux-arm64-executor machine: image: ubuntu-2004:2022.04.1 resource_class: arm.medium environment: PLATFORM: linux + # TODO: Disabling snapshots for now on Linux Arm 64 architectures. Will revisit with https://github.com/cypress-io/cypress/issues/23557 + DISABLE_SNAPSHOT_REQUIRE: 1 commands: verify_should_persist_artifacts: @@ -132,7 +130,7 @@ commands: - run: name: Check current branch to persist artifacts command: | - if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "issue-23843_electron_21_upgrade" ]]; then + if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "feature/v8-snapshots" ]]; then echo "Not uploading artifacts or posting install comment for this branch." circleci-agent step halt fi @@ -199,6 +197,11 @@ commands: command: | source ./scripts/ensure-node.sh yarn build + - run: + name: Generate v8 snapshot + command: | + source ./scripts/ensure-node.sh + yarn build-v8-snapshot-prod - prepare-modules-cache # So we don't throw these in the workspace cache - persist_to_workspace: root: ~/ @@ -478,7 +481,7 @@ commands: - run: name: Run driver tests in Cypress environment: - CYPRESS_KONFIG_ENV: production + CYPRESS_CONFIG_ENV: production command: | echo Current working directory is $PWD echo Total containers $CIRCLE_NODE_TOTAL @@ -562,7 +565,7 @@ commands: # internal PR cmd=$([[ <> == 'true' ]] && echo 'yarn percy exec --parallel -- --') || true DEBUG=<> \ - CYPRESS_KONFIG_ENV=production \ + CYPRESS_CONFIG_ENV=production \ CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ PERCY_ENABLE=${PERCY_TOKEN:-0} \ @@ -588,7 +591,7 @@ commands: cd ../.. DEBUG=<> \ - CYPRESS_KONFIG_ENV=production \ + CYPRESS_CONFIG_ENV=production \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ PERCY_ENABLE=${PERCY_TOKEN:-0} \ PERCY_PARALLEL_TOTAL=-1 \ @@ -1063,14 +1066,16 @@ commands: # notarization on Mac can take a while no_output_timeout: "45m" command: | + source ./scripts/ensure-node.sh + node --version if [[ `node ./scripts/get-platform-key.js` == 'linux-arm64' ]]; then # these are missing on Circle and there is no way to pre-install them on Arm sudo apt-get update sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb + DISABLE_SNAPSHOT_REQUIRE=1 yarn binary-build --version $(node ./scripts/get-next-version.js) + else + yarn binary-build --version $(node ./scripts/get-next-version.js) fi - source ./scripts/ensure-node.sh - node --version - yarn binary-build --version $(node ./scripts/get-next-version.js) - run: name: Zip the binary command: | @@ -1207,7 +1212,7 @@ jobs: <<: *defaultsParameters resource_class: type: string - default: medium+ + default: large resource_class: << parameters.resource_class >> steps: - restore_cached_workspace @@ -1316,6 +1321,52 @@ jobs: PERCY_PARALLEL_TOTAL=-1 \ yarn percy snapshot ./cli/visual-snapshots + v8-integration-tests: + <<: *defaults + parameters: + <<: *defaultsParameters + resource_class: + type: string + default: medium + resource_class: << parameters.resource_class >> + parallelism: 1 + steps: + - restore_cached_workspace + - restore_cached_system_tests_deps + # TODO: Remove this once we switch off self-hosted M1 runners + - when: + condition: + equal: [ *darwin-arm64-executor, << parameters.executor >> ] + steps: + - run: rm -f /tmp/cypress/junit/* + - unless: + condition: + or: + - equal: [ *linux-arm64-executor, << parameters.executor >> ] # TODO: Figure out how to support linux-arm64 when we get to linux arm64 build: https://github.com/cypress-io/cypress/issues/23557 + steps: + - run: + name: Run v8 integration tests + command: | + source ./scripts/ensure-node.sh + yarn test-integration --scope "'@tooling/{packherd,v8-snapshot,electron-mksnapshot}'" + - verify-mocha-results: + expectedResultCount: 3 + - when: + condition: + or: + - equal: [ *linux-arm64-executor, << parameters.executor >> ] + steps: + - run: + name: Run v8 integration tests + command: | + source ./scripts/ensure-node.sh + yarn test-integration --scope "'@tooling/packherd'" + - verify-mocha-results: + expectedResultCount: 1 + - store_test_results: + path: /tmp/cypress + - store-npm-logs + unit-tests: <<: *defaults parameters: @@ -1346,7 +1397,7 @@ jobs: # run type checking for each individual package - run: yarn lerna run types - verify-mocha-results: - expectedResultCount: 10 + expectedResultCount: 18 - store_test_results: path: /tmp/cypress # CLI tests generate HTML files with sample CLI command output @@ -1677,7 +1728,7 @@ jobs: working_directory: packages/reporter - run: command: | - CYPRESS_KONFIG_ENV=production \ + CYPRESS_CONFIG_ENV=production \ CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ PERCY_ENABLE=${PERCY_TOKEN:-0} \ @@ -1700,7 +1751,7 @@ jobs: - restore_cached_system_tests_deps - run: command: | - CYPRESS_KONFIG_ENV=production \ + CYPRESS_CONFIG_ENV=production \ CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ PERCY_ENABLE=${PERCY_TOKEN:-0} \ @@ -1722,7 +1773,7 @@ jobs: - restore_cached_system_tests_deps - run: command: | - CYPRESS_KONFIG_ENV=production \ + CYPRESS_CONFIG_ENV=production \ CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \ PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \ PERCY_ENABLE=${PERCY_TOKEN:-0} \ @@ -1932,7 +1983,7 @@ jobs: <<: *defaultsParameters resource_class: type: string - default: medium+ + default: large resource_class: << parameters.resource_class >> steps: - restore_cached_workspace @@ -1951,6 +2002,7 @@ jobs: type: string default: medium+ steps: + - restore_cached_workspace - clone-repo-and-checkout-branch: repo: cypress-example-kitchensink - install-required-node @@ -1986,6 +2038,7 @@ jobs: test-kitchensink-against-staging: <<: *defaults steps: + - restore_cached_workspace - clone-repo-and-checkout-branch: repo: cypress-example-kitchensink - install-required-node @@ -2011,6 +2064,7 @@ jobs: test-against-staging: <<: *defaults steps: + - restore_cached_workspace - clone-repo-and-checkout-branch: repo: cypress-test-tiny - run: @@ -2517,6 +2571,9 @@ linux-x64-workflow: &linux-x64-workflow - npm-cypress-schematic: requires: - build + - v8-integration-tests: + requires: + - system-tests-node-modules-install # This release definition must be updated with any new jobs # Any attempts to automate this are welcome # If CircleCI provided an "after all" hook, then this wouldn't be necessary @@ -2567,6 +2624,7 @@ linux-x64-workflow: &linux-x64-workflow - run-reporter-component-tests-chrome - run-webpack-dev-server-integration-tests - run-vite-dev-server-integration-tests + - v8-integration-tests # various testing scenarios, like building full binary # and testing it on a real project @@ -2677,6 +2735,13 @@ linux-arm64-workflow: &linux-arm64-workflow requires: - linux-arm64-build + - v8-integration-tests: + name: linux-arm64-v8-integration-tests + executor: linux-arm64 + resource_class: arm.medium + requires: + - linux-arm64-build + darwin-x64-workflow: &darwin-x64-workflow jobs: - node_modules_install: @@ -2716,6 +2781,13 @@ darwin-x64-workflow: &darwin-x64-workflow requires: - darwin-x64-build + - v8-integration-tests: + name: darwin-x64-v8-integration-tests + executor: mac + resource_class: macos.x86.medium.gen2 + requires: + - darwin-x64-build + darwin-arm64-workflow: &darwin-arm64-workflow jobs: - node_modules_install: @@ -2742,6 +2814,13 @@ darwin-arm64-workflow: &darwin-arm64-workflow requires: - darwin-arm64-build + - v8-integration-tests: + name: darwin-arm64-v8-integration-tests + executor: darwin-arm64 + resource_class: cypress-io/latest_m1 + requires: + - darwin-arm64-build + windows-workflow: &windows-workflow jobs: - node_modules_install: @@ -2803,6 +2882,13 @@ windows-workflow: &windows-workflow requires: - windows-create-build-artifacts + - v8-integration-tests: + name: windows-v8-integration-tests + executor: windows + resource_class: windows.large + requires: + - windows-build + workflows: linux-x64: <<: *linux-x64-workflow diff --git a/.eslintignore b/.eslintignore index 67d09054c4..0c6917f65a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -113,3 +113,7 @@ system-tests/projects/react-app-webpack-5-unconfigured/**/* system-tests/project-fixtures/** system-tests/projects/**/*/expected-cypress*/**/* + +# These are generated files that are not linted +tooling/electron-mksnapshot/bin/** +tooling/v8-snapshot/cache/** diff --git a/.eslintrc.js b/.eslintrc.js index 7abb027d01..a5e6e3ba3e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -41,6 +41,7 @@ module.exports = { '**/scripts/**', '**/test/**', '**/system-tests/**', + 'tooling/**', 'packages/{app,driver,frontend-shared,launchpad}/cypress/**', '*.test.ts', // ignore in packages that don't run in the Cypress process diff --git a/.gitignore b/.gitignore index c496b2a02d..7fb44280b4 100644 --- a/.gitignore +++ b/.gitignore @@ -382,3 +382,7 @@ globbed_node_modules # Autogenerated files, typically from graphql-code-generator *.gen.ts *.gen.json + +# Snapshot Binaries +snapshot_blob.bin +v8_context_snapshot.x86_64.bin diff --git a/.vscode/cspell.json b/.vscode/cspell.json index 17e8515693..e6f43e8131 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -8,6 +8,7 @@ "composables", "dedup", "ERRORED", + "esbuild", "execa", "Fetchable", "Fetchables", @@ -19,10 +20,13 @@ "intlify", "Lachlan", "loggedin", + "mksnapshot", "msapplication", + "norewrite", "NOTESTS", "OVERLIMIT", "overscan", + "packherd", "Pinia", "pnpm", "pseudoclass", @@ -30,6 +34,12 @@ "Screenshotting", "semibold", "shiki", + "snapbuild", + "snapgen", + "snapshottable", + "snapshotted", + "snapshotting", + "sourcemaps", "speclist", "testid", "TIMEDOUT", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2eb2590193..e139e4eb39 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -128,18 +128,19 @@ Cypress is a large open source project. When you want to contribute to Cypress, Cypress uses a monorepo, which means there are many independent packages in this repository. There are two main types of packages: private and public. -Private packages generally live within the [`packages`](./packages) directory and are in the `@packages/` namespace. These packages are combined to form the main Cypress app that you get when you `npm install cypress`. They are discrete modules with different responsibilities, but each is necessary for the Cypress app and is not necessarily useful outside of the Cypress app. Since these modules are all compiled and bundled into a binary upon release, they are sometimes collectively referred to as the Cypress binary. +Private packages included in the app generally live within the [`packages`](./packages) directory and are in the `@packages/` namespace. These packages are combined to form the main Cypress app that you get when you `npm install cypress`. They are discrete modules with different responsibilities, but each is necessary for the Cypress app and is not necessarily useful outside of the Cypress app. Since these modules are all compiled and bundled into a binary upon release, they are sometimes collectively referred to as the Cypress binary. Here is a list of the core packages in this repository with a short description, located within the [`packages`](./packages) directory: | Folder Name | Package Name | Purpose | | :------------------------------------ | :---------------------- | :--------------------------------------------------------------------------- | | [cli](./cli) | `cypress` | The command-line tool that is packaged as an `npm` module. | - | [app](./packages/app) | `@packages/app` | The the front-end for the Cypress App that renders in the launched browser instance. | + | [app](./packages/app) | `@packages/app` | The front-end for the Cypress App that renders in the launched browser instance. | | [config](./packages/config) | `@packages/config` | The Cypress configuration types and validation used in the server, data-context and driver. | | [data-context](./packages/data-context) | `@packages/data-context` | Centralized data access for the Cypress application. | | [driver](./packages/driver) | `@packages/driver` | The code that is used to drive the behavior of the API commands. | | [electron](./packages/electron) | `@packages/electron` | The Cypress implementation of Electron. | + | [errors](./packages/errors) | `@packages/errors` | Error definitions and utilities for Cypress | | [example](./packages/example) | `@packages/example` | Our example kitchen-sink application. | | [extension](./packages/extension) | `@packages/extension` | The Cypress Chrome browser extension | | [frontend-shared](./packages/frontend-shared) | `@packages/frontend-shared` | Shared components and styles used in the `app` and `launchpad`. | @@ -150,6 +151,7 @@ Here is a list of the core packages in this repository with a short description, | [launchpad](./packages/launchpad) | `@packages/launcher` | The portal to running Cypress that displays in `open` mode. | | [net-stubbing](./packages/net-stubbing) | `@packages/net-stubbing` | Contains server side code for Cypress' network stubbing features. | | [network](./packages/network) | `@packages/network` | Various utilities related to networking. | + | [packherd-require](./packages/packherd-require) | `@packages/packherd-require` | Loads modules that have been bundled by `@tooling/packherd`. | | [proxy](./packages/proxy) | `@packages/proxy` | Code for Cypress' network proxy layer. | | [reporter](./packages/reporter) | `@packages/reporter` | The reporter shows the running results of the tests (The Command Log UI). | | [resolve-dist](./packages/resolve-dist) | `@packages/resolve-dist` | Centralizes the resolution of paths to compiled/static assets from server-side code.. | @@ -161,8 +163,19 @@ Here is a list of the core packages in this repository with a short description, | [socket](./packages/socket) | `@packages/socket` | A wrapper around socket.io to provide common libraries. | | [ts](./packages/ts) | `@packages/ts` | A centralized version of typescript. | | [types](./packages/types) | `@packages/types` | The shared internal Cypress types. | + | [v8-snapshot-require](./packages/v8-snapshot-require) | `@packages/v8-snapshot-requie` | Tool to load a snapshot for Electron applications that was created by `@tooling/v8-snapshot`. | | [web-config](./packages/web-config) | `@packages/ui-components` | The web-related configuration. | +Private packages involved in development of the app live within the [`tooling`](./tooling) directory and are in the `@tooling/` namespace. They are discrete modules with different responsibilities, but each is necessary for development of the Cypress app and is not necessarily useful outside of the Cypress app. + +Here is a list of the packages in this repository with a short description, located within the [`tooling`](./tooling) directory: + + | Folder Name | Package Name | Purpose | + | :------------------------------------ | :---------------------- | :--------------------------------------------------------------------------- | + | [electron-mksnapshot](./electron-mksnapshot) | `electron-mksnapshot` | A rewrite of [electron/mksnapshot](https://github.com/electron/mksnapshot) to support multiple versions. | + | [packherd](./tooling/packherd) | `packherd` | Herds all dependencies reachable from an entry and packs them. | + | [v8-snapshot](./tooling/v8-snapshot) | `v8-snapshot` | Tool to create a snapshot for Electron applications. | + Public packages live within the [`npm`](./npm) folder and are standalone modules that get independently published to npm under the `@cypress/` namespace. These packages generally contain extensions, plugins, or other packages that are complementary to, yet independent of, the main Cypress app. Here is a list of the npm packages in this repository: @@ -396,6 +409,67 @@ Each package documents how to best work with it, so consult the `README.md` of e They will outline development and test procedures. When in doubt just look at the `scripts` of each `package.json` file. Everything we do at Cypress is contained there. +### V8 Snapshotting + +In order to improve start up time, Cypress uses [electron mksnapshot](https://github.com/electron/mksnapshot) for generating [v8 snapshots](https://v8.dev/blog/custom-startup-snapshots) for both development and production. + +#### Snapshot Generation + +Locally, a v8 snapshot is generated in a post install step and set up to only include node modules. In this way, cypress code can be modified without having to regenerate a snapshot. If you do want or need to regenerate the snapshot for development you can run: + +``` +yarn build-v8-snapshot-dev +``` + +On CI and for binary builds we run: + +``` +yarn build-v8-snapshot-prod +``` + +which will include both node modules and cypress code. + +During the process of snapshot generation, metadata is created/updated in `tooling/v8-snapshot/cache`. Changes to these files can and should be committed to the repo as it will make subsequent snapshot generations faster. + +#### Troubleshooting + +**Generation** + +If you run into errors while generating the v8 snapshot, you can occasionally identify the problem dependency via the output. You can try to remove that dependency from the cache and see if regenerating succeeds. If it does, likely it was moved to a more restrictive section (e.g. healthy to deferred/no-rewrite or deferred to norewrite). If all else fails, you can try running the following (but keep in mind this may take a while): + +``` +V8_SNAPSHOT_FROM_SCRATCH=1 yarn build-v8-snapshot-dev +``` + +or + +``` +V8_SNAPSHOT_FROM_SCRATCH=1 yarn build-v8-snapshot-prod +``` + +**Runtime** + +If you're experiencing issues during runtime, you can try and narrow down where the problem might be via a few different scenarios: + +* If the problem occurs with the binary, but not in the monorepo, chances are something is being removed during the binary cleanup step that shouldn't be +* If the problem occurs with running `yarn build-v8-snapshot-prod` but not `yarn build-v8-snapshot-dev`, then that means there's a problem with a cypress file and not a node module dependency. Chances are that a file is not being flagged properly (e.g. healthy when it should be deferred or norewrite). +* If the problem occurs with both `yarn build-v8-snapshot-prod` and `yarn build-v8-snapshot-dev` but does not occur when using the `DISABLE_SNAPSHOT_REQUIRE` environment variable, then that means there's a problem with a node module dependency. Chances are that a file is not being flagged properly (e.g. healthy when it should be deferred or norewrite). +* If the problem still occurs when using the `DISABLE_SNAPSHOT_REQUIRE` environment variable, then that means the problem is not snapshot related. + +**Build Length** + +If the `build-v8-snapshot-prod` command is taking a long time to run on Circle CI, the snapshot cache probably needs to be updated. Run these commands on a windows, linux, and mac and commit the updates to the snapshot cache to git: + +``` +yarn build-v8-snapshot-dev +``` + +or + +``` +yarn build-v8-snapshot-prod +``` + ## Committing Code ### Branches diff --git a/cli/lib/util.js b/cli/lib/util.js index 5604e313c2..6c42b3f587 100644 --- a/cli/lib/util.js +++ b/cli/lib/util.js @@ -134,7 +134,7 @@ function isValidCypressInternalEnvValue (value) { return true } - // names of config environments, see "packages/server/config/app.yml" + // names of config environments, see "packages/server/config/app.json" const names = ['development', 'test', 'staging', 'production'] return _.includes(names, value) @@ -257,7 +257,7 @@ const getApplicationDataFolder = (...paths) => { const { env } = process // allow overriding the app_data folder - let folder = env.CYPRESS_KONFIG_ENV || env.CYPRESS_INTERNAL_ENV || 'development' + let folder = env.CYPRESS_CONFIG_ENV || env.CYPRESS_INTERNAL_ENV || 'development' const PRODUCT_NAME = pkg.productName || pkg.name const OS_DATA_PATH = ospath.data() diff --git a/jsconfig.json b/jsconfig.json index 5f354257ac..8313f34009 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -10,6 +10,7 @@ "**/build/**", "**/dist/**", "**/dist-test/**", - "**/.cy/**" + "**/.cy/**", + "**/v8-snapshot/cache/**" ] } diff --git a/lerna.json b/lerna.json index e541ef2d73..f40b1af11f 100644 --- a/lerna.json +++ b/lerna.json @@ -4,6 +4,7 @@ "cli", "packages/*", "npm/*", + "tooling/*", "system-tests" ], "useWorkspaces": true, diff --git a/npm/cypress-schematic/src/ct.spec.ts b/npm/cypress-schematic/src/ct.spec.ts index ad2ca1d28a..6eb58f30f9 100644 --- a/npm/cypress-schematic/src/ct.spec.ts +++ b/npm/cypress-schematic/src/ct.spec.ts @@ -9,7 +9,7 @@ const scaffoldAngularProject = async (project: string) => { Fixtures.removeProject(project) await Fixtures.scaffoldProject(project) - await FixturesScaffold.scaffoldProjectNodeModules(project) + await FixturesScaffold.scaffoldProjectNodeModules({ project }) await fs.remove(path.join(projectPath, 'cypress.config.ts')) await fs.remove(path.join(projectPath, 'cypress')) diff --git a/npm/cypress-schematic/src/e2e.spec.ts b/npm/cypress-schematic/src/e2e.spec.ts index add1d333e5..47bd3c434e 100644 --- a/npm/cypress-schematic/src/e2e.spec.ts +++ b/npm/cypress-schematic/src/e2e.spec.ts @@ -9,7 +9,7 @@ const scaffoldAngularProject = async (project: string) => { Fixtures.removeProject(project) await Fixtures.scaffoldProject(project) - await FixturesScaffold.scaffoldProjectNodeModules(project) + await FixturesScaffold.scaffoldProjectNodeModules({ project }) await fs.remove(path.join(projectPath, 'cypress.config.ts')) await fs.remove(path.join(projectPath, 'cypress')) diff --git a/npm/vite-dev-server/test/test-helpers/scaffoldProject.ts b/npm/vite-dev-server/test/test-helpers/scaffoldProject.ts index 4cda77ebee..f1e1744bb9 100644 --- a/npm/vite-dev-server/test/test-helpers/scaffoldProject.ts +++ b/npm/vite-dev-server/test/test-helpers/scaffoldProject.ts @@ -6,7 +6,7 @@ export async function scaffoldSystemTestProject (project: ProjectFixtureDir) { await Fixtures.scaffoldProject(project) - await FixturesScaffold.scaffoldProjectNodeModules(project) + await FixturesScaffold.scaffoldProjectNodeModules({ project }) return Fixtures.projectPath(project) } diff --git a/npm/webpack-dev-server/test/sourceRelativeWebpackModules.spec.ts b/npm/webpack-dev-server/test/sourceRelativeWebpackModules.spec.ts index 27ce4e0a3d..2ffd065e09 100644 --- a/npm/webpack-dev-server/test/sourceRelativeWebpackModules.spec.ts +++ b/npm/webpack-dev-server/test/sourceRelativeWebpackModules.spec.ts @@ -44,7 +44,7 @@ async function sourceModulesForProject (fixture: ProjectDirs[number]) { Fixtures.remove() const projectRoot = await Fixtures.scaffoldProject(fixture) - await FixturesScaffold.scaffoldProjectNodeModules(fixture) + await FixturesScaffold.scaffoldProjectNodeModules({ project: fixture }) const result = sourceDefaultWebpackDependencies({ cypressConfig: { diff --git a/npm/webpack-dev-server/test/test-helpers/scaffoldProject.ts b/npm/webpack-dev-server/test/test-helpers/scaffoldProject.ts index 067e08556e..7744a91b76 100644 --- a/npm/webpack-dev-server/test/test-helpers/scaffoldProject.ts +++ b/npm/webpack-dev-server/test/test-helpers/scaffoldProject.ts @@ -6,7 +6,7 @@ export async function scaffoldMigrationProject (project: ProjectFixtureDir): Pro await Fixtures.scaffoldProject(project) - await FixturesScaffold.scaffoldProjectNodeModules(project) + await FixturesScaffold.scaffoldProjectNodeModules({ project }) return Fixtures.projectPath(project) } diff --git a/package.json b/package.json index f794a90c0d..efcee634d5 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "build": "yarn build-npm-modules && lerna run build --stream --no-bail --ignore create-cypress-tests --ignore cypress --ignore \"'@packages/{runner}'\" --ignore \"'@cypress/{angular,react,react18,vue,vue2,mount-utils,svelte}'\" && node ./cli/scripts/post-build.js && lerna run build --stream --scope create-cypress-tests", "build-npm-modules": "lerna run build --scope cypress --scope @cypress/mount-utils && lerna run build --scope \"'@cypress/{angular,react,react18,vue,vue2,svelte}'\"", "build-prod": "lerna run build-prod-ui --stream && lerna run build-prod --stream --ignore create-cypress-tests && node ./cli/scripts/post-build.js && lerna run build-prod --stream --scope create-cypress-tests --scope", + "build-v8-snapshot-dev": "node --max-old-space-size=8192 tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js --env=dev", + "build-v8-snapshot-prod": "node --max-old-space-size=8192 tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js", "check-node-version": "node scripts/check-node-version.js", "check-terminal": "node scripts/check-terminal.js", "clean": "lerna run clean --parallel --no-bail || echo 'ok, errors while cleaning'", @@ -49,7 +51,7 @@ "stop-only": "npx stop-only --skip .cy,.publish,.projects,node_modules,dist,dist-test,fixtures,lib,bower_components,src,__snapshots__ --exclude cypress-tests.ts,*only.cy.js", "stop-only-all": "yarn stop-only --folder packages", "pretest": "yarn ensure-deps", - "test": "yarn lerna exec yarn test --scope cypress --scope \"'@packages/{config,errors,data-context,electron,extension,https-proxy,launcher,net-stubbing,network,proxy,rewriter,scaffold-config,socket}'\"", + "test": "yarn lerna exec yarn test --scope cypress --scope \"'@packages/{config,data-context,electron,errors,extension,https-proxy,launcher,net-stubbing,network,packherd-require,proxy,rewriter,scaffold-config,socket,v8-snapshot-require}'\" --scope \"'@tooling/{electron-mksnapshot,v8-snapshot}'\"", "test-debug": "lerna exec yarn test-debug --ignore \"'@packages/{driver,root,static,web-config}'\"", "pretest-e2e": "yarn ensure-deps", "test-integration": "lerna exec yarn test-integration --ignore \"'@packages/{driver,root,static,web-config}'\"", @@ -75,6 +77,7 @@ "@cypress/questions-remain": "1.0.1", "@cypress/request": "2.88.10", "@cypress/request-promise": "4.2.6", + "@electron/fuses": "1.6.0", "@fellow/eslint-plugin-coffee": "0.4.13", "@graphql-codegen/add": "3.1.0", "@graphql-codegen/cli": "2.2.0", @@ -177,7 +180,6 @@ "js-codemod": "cpojer/js-codemod", "jscodemods": "https://github.com/cypress-io/jscodemods.git#01b546e", "jscodeshift": "0.7.0", - "konfig": "0.2.1", "lazy-ass": "1.6.0", "lerna": "3.20.2", "lint-staged": "11.1.2", @@ -251,6 +253,7 @@ "cli", "packages/*", "npm/*", + "tooling/*", "system-tests" ], "nohoist": [ diff --git a/packages/config/package.json b/packages/config/package.json index e8c31a0409..c667b832c5 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -13,7 +13,7 @@ "test": "yarn test-unit", "test:clean": "find ./test/__fixtures__ -depth -name 'output.*' -type f -exec rm {} \\;", "test-debug": "yarn test-unit --inspect-brk=5566", - "test-unit": "mocha --configFile=../../mocha-reporter-config.json -r @packages/ts/register 'test/**/*.spec.ts' --exit --timeout 5000" + "test-unit": "mocha --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json -r @packages/ts/register 'test/**/*.spec.ts' --exit --timeout 5000" }, "dependencies": { "@babel/core": "^7", diff --git a/packages/config/src/project/utils.ts b/packages/config/src/project/utils.ts index 67418a2bd9..8d3410850a 100644 --- a/packages/config/src/project/utils.ts +++ b/packages/config/src/project/utils.ts @@ -507,7 +507,7 @@ export function mergeDefaults ( } function isValidCypressInternalEnvValue (value: string) { - // names of config environments, see "config/app.yml" + // names of config environments, see "config/app.json" const names = ['development', 'test', 'staging', 'production'] return _.includes(names, value) diff --git a/packages/data-context/package.json b/packages/data-context/package.json index 51c396b6ee..b32db476bb 100644 --- a/packages/data-context/package.json +++ b/packages/data-context/package.json @@ -11,7 +11,7 @@ "tslint": "tslint --config ../ts/tslint.json --project .", "clean": "rimraf --glob \"./{src,test}/**/*.js\"", "test": "yarn test-unit", - "test-unit": "mocha -r @packages/ts/register --config ./test/.mocharc.js" + "test-unit": "mocha -r @packages/ts/register --config ./test/.mocharc.js --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json" }, "dependencies": { "@babel/code-frame": "7.8.3", @@ -83,4 +83,4 @@ "src" ], "types": "src/index.ts" -} \ No newline at end of file +} diff --git a/packages/driver/cypress.config.ts b/packages/driver/cypress.config.ts index 0603194058..c944c741f7 100644 --- a/packages/driver/cypress.config.ts +++ b/packages/driver/cypress.config.ts @@ -11,7 +11,7 @@ export default defineConfig({ '*.idp.com': '127.0.0.1', 'localalias': '127.0.0.1', }, - reporter: 'cypress-multi-reporters', + reporter: '../../node_modules/cypress-multi-reporters/index.js', reporterOptions: { configFile: '../../mocha-reporter-config.json', }, diff --git a/packages/electron/lib/install.js b/packages/electron/lib/install.js index b838b3d51d..cd29d71455 100644 --- a/packages/electron/lib/install.js +++ b/packages/electron/lib/install.js @@ -2,11 +2,12 @@ const _ = require('lodash') const os = require('os') const path = require('path') -const pkg = require('../../../package.json') const paths = require('./paths') const log = require('debug')('cypress:electron') const fs = require('fs-extra') const crypto = require('crypto') +const { flipFuses, FuseVersion, FuseV1Options } = require('@electron/fuses') +const pkg = require('@packages/root') let electronVersion @@ -101,13 +102,16 @@ module.exports = { log('package icon', iconPath) + const platform = os.platform() + const arch = os.arch() + _.defaults(options, { dist: paths.getPathToDist(), dir: 'app', out: 'tmp', name: 'Cypress', - platform: os.platform(), - arch: os.arch(), + platform, + arch, asar: false, prune: true, overwrite: true, @@ -128,6 +132,16 @@ module.exports = { console.log('to', options.dist) return this.move(appPath, options.dist) + }) + .then(() => { + return !['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE) ? flipFuses( + paths.getPathToExec(), + { + version: FuseVersion.V1, + resetAdHocDarwinSignature: platform === 'darwin' && arch === 'arm64', + [FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true, + }, + ) : Promise.resolve() }).catch((err) => { console.log(err.stack) diff --git a/packages/electron/package.json b/packages/electron/package.json index 4969ea76fa..b1985c6517 100644 --- a/packages/electron/package.json +++ b/packages/electron/package.json @@ -11,7 +11,7 @@ "start": "./bin/cypress-electron", "test": "yarn test-unit", "test-debug": "yarn test-unit --inspect-brk=5566", - "test-unit": "mocha", + "test-unit": "mocha --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json", "test-watch": "yarn test-unit --watch" }, "dependencies": { diff --git a/packages/frontend-shared/cypress/e2e/e2ePluginSetup.ts b/packages/frontend-shared/cypress/e2e/e2ePluginSetup.ts index 2842714633..9ead09a79c 100644 --- a/packages/frontend-shared/cypress/e2e/e2ePluginSetup.ts +++ b/packages/frontend-shared/cypress/e2e/e2ePluginSetup.ts @@ -127,7 +127,7 @@ async function makeE2ETasks () { await scaffoldCommonNodeModules() try { - await scaffoldProjectNodeModules(projectName) + await scaffoldProjectNodeModules({ project: projectName }) } catch (e) { if (isRetry) { throw e diff --git a/packages/graphql/src/schema.ts b/packages/graphql/src/schema.ts index 12b9376311..92aabda644 100644 --- a/packages/graphql/src/schema.ts +++ b/packages/graphql/src/schema.ts @@ -8,8 +8,11 @@ import { mutationErrorPlugin, nexusDebugLogPlugin, nexusSlowGuardPlugin, nexusDe const isCodegen = Boolean(process.env.CYPRESS_INTERNAL_NEXUS_CODEGEN) +// TODO: fix this with an update to esbuild: https://github.com/cypress-io/cypress/issues/23126 +const types = Object.assign({}, schemaTypes, { default: undefined }) + export const graphqlSchema = makeSchema({ - types: schemaTypes, + types, shouldGenerateArtifacts: isCodegen, shouldExitAfterGenerateArtifacts: isCodegen, outputs: { diff --git a/packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts b/packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts index 0f9ce886e0..2ccad6aa70 100644 --- a/packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts +++ b/packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts @@ -1,5 +1,6 @@ import { idArg, stringArg, nonNull, objectType } from 'nexus' -import { ProjectLike, ScaffoldedFile } from '..' +import { ProjectLike } from '../interfaceTypes/gql-ProjectLike' +import { ScaffoldedFile } from './gql-ScaffoldedFile' import { CurrentProject } from './gql-CurrentProject' import { DevState } from './gql-DevState' import { AuthState } from './gql-AuthState' diff --git a/packages/launcher/lib/windows/index.ts b/packages/launcher/lib/windows/index.ts index 0a65fa0d11..d0baaedbac 100644 --- a/packages/launcher/lib/windows/index.ts +++ b/packages/launcher/lib/windows/index.ts @@ -139,9 +139,9 @@ function getWindowsBrowser (browser: Browser): Promise { return tryNextExePath() } - // Use exports.getVersionString here, rather than our local reference + // Use module.exports.getVersionString here, rather than our local reference // to that variable so that the tests can easily mock it - return exports.getVersionString(path).then((version) => { + return module.exports.getVersionString(path).then((version) => { debug('got version string for %s: %o', browser.name, { exePath, version }) return { diff --git a/packages/net-stubbing/package.json b/packages/net-stubbing/package.json index a55ba38aa5..d1ed4680c4 100644 --- a/packages/net-stubbing/package.json +++ b/packages/net-stubbing/package.json @@ -6,7 +6,7 @@ "scripts": { "build-prod": "tsc --project .", "clean-deps": "rimraf node_modules", - "test": "mocha -r @packages/ts/register --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json --exit test/unit/*" + "test": "CYPRESS_INTERNAL_ENV=test mocha -r @packages/ts/register --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json --exit test/unit/*" }, "dependencies": { "@types/mime-types": "2.1.0", diff --git a/packages/packherd-require/README.md b/packages/packherd-require/README.md new file mode 100644 index 0000000000..be644918fa --- /dev/null +++ b/packages/packherd-require/README.md @@ -0,0 +1,125 @@ +## @packages/packherd-require + +Loads modules that have been bundled by `@tooling/packherd`. + +**Table of Contents** + +- [Summary](#summary) +- [Loading Bundled/Snapshotted Modules with Packherd](#loading-bundledsnapshotted-modules-with-packherd) +- [Transpiling TypeScript Modules on Demand](#transpiling-typescript-modules-on-demand) + - [Transpile Cache](#transpile-cache) + - [Sourcemap Support](#sourcemap-support) + - [Implementation](#implementation) + - [Import Caveats](#import-caveats) +- [Env Vars](#env-vars) + +## Summary + +packherd has three main tasks: + +1. bundling application files and providing related metadata +2. loading modules that have been bundled previously and are provided via fully instantiated + module exports or definition functions that return a module export when invoked +3. transpiling TypeScript modules on demand and maintaining a cache of them + +`1.` is provided by `@tooling/packherd`. `2.` and `3.` are provided by this package. While `1.` and `2.` +are very related and work hand in hand, `3.` is unrelated to them and was +just added here since it is another feature required to intercept module loads. + +## Loading Bundled/Snapshotted Modules with Packherd + +In order to hook into the `require` process and load from a different source instead of the +file system the [packherdRequire][require fn] function needs to be invoked with the desired +configuration. Note that both this hook and the _transpile TypeScript on demand_ feature can +function together without any problem. + +The [require opts][require opts] that are passed to this function allow to configure how +packherd resolves and loads the modules that are included via one of the following: + +- `moduleExports`: map of fully instantiated module exports that have been obtained either by +`require` ing each module previously or by having them snapshotted into the application +- `moduleDefinitions`: similar to `moduleExports` except that these are functions that need to +be invoked in order to obtain the `module.exports`, thus incurring some overhead + +Since packherd cannot know how the modules are keyed inside the maps, you should pass a `getModuleKey` +function of [this type][GetModuleKey] in order to resolve those keys. + +For example in the case of [v8-snapshot][v8-snapshot] (TODO: Update this link when snapshot module is added) the [getModuleKey +implementation][v8-snapshot module key] (TODO: Update this link when snapshot module is added) implementation relies on a resolver map that is +embedded inside the app's snapshot. Additionally it knows how modules are keyed via the +[modified esbuild][cypress esbuild] bundler it uses. + +Once the module key has been resolved (or even if not) packherd tries its best to resolve +and/or load the module from the most efficient source. It attempts to avoid accessing the file +system until no more options remain and only loads it via the Node.js resolution/loader +mechanism when all else failed. + +For more details on the module resolve/load steps refer to [PackherdModuleLoader][packherd +module loader], in particular [`tryLoad`][try load] and [`tryResolve`][try resolve] including +the relevant code sections which include detailed comments for each step. + + +## Transpiling TypeScript Modules on Demand + +To enable this feature the [packherdRequire][require fn] has to be invoked in order to +have it hook into Node.js `require` calls via a `Module._extension`. Particularly the +[`transpileOpts`][transpile opts] field of the [opts][require opts] needs to be configured as follows. + +- `supportTS`: `true` +- `initTranspileCache`: needs to be a function matching [InitTranspileCache][init transpile cache fn] + +### Transpile Cache + +We recommend to use the [dirt-simple-file-cache][dirt-simple-file-cache] module to provide the +transpile cache as it has been developed alongside packherd for just this purpose. + +Here is an example of how that option field could be setup with this module. + +```js +const dirtSimpleFileCache = require('dirt-simple-file-cache') +const initTranspileCache = () => + DirtSimpleFileCache.initSync(projectBaseDir, { keepInMemoryCache: true }) +``` + +### Sourcemap Support + +In order to show original locations for errors logged to the console, packherd hooks into the +generation of error stack traces and maps locations to TypeScript. + +For more information please read the [sourcemap docs][sourcemap docs] + +### Implementation + +Please find more implementation details regarding transpilation inside +[./src/transpile-ts.ts][transpile-ts]. + +### Import Caveats + +Since esbuild enforces the behaviour of imports being static this caused problems +with tests that relied on being able to patch/`sinon.stub` modules even after they were +imported. + +In general we would recommend doing this _properly_ via a tool like +[proxyquire][proxyquire]. + +## Env Vars + +- `PACKHERD_CODE_FRAMES` if set will include code snippets for error messages that have been + sourcemapped + +[require fn]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/require.ts#L71 +[require opts]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/require.ts#L23-L32 +[transpile opts]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/types.ts#L187-L195 +[init transpile cache fn]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/types.ts#L177-L185 +[transpile-ts]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/transpile-ts.ts +[GetModuleKey]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/loader.ts#L35-L45 +[packherd module loader]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/loader.ts#L226 +[try load]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/loader.ts#L536 +[try resolve]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/loader.ts#L458 +[sourcemap docs]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/sourcemap-support.ts + +[v8-snapshot]:https://github.com/thlorenz/v8-snapshot +[v8-snapshot module key]:https://github.com/thlorenz/v8-snapshot/blob/master/src/loading/snapshot-require.ts#L20 +[proxyquire]:https://github.com/thlorenz/proxyquire +[dirt-simple-file-cache]:https://github.com/thlorenz/dirt-simple-file-cache +[cypress esbuild]:https://github.com/cypress-io/esbuild/tree/thlorenz/snap diff --git a/packages/packherd-require/package.json b/packages/packherd-require/package.json new file mode 100644 index 0000000000..822ad96208 --- /dev/null +++ b/packages/packherd-require/package.json @@ -0,0 +1,33 @@ +{ + "name": "@packages/packherd-require", + "version": "0.0.0-development", + "description": "Loads modules that have been bundled by `@tooling/packherd`.", + "private": true, + "main": "dist/require.js", + "scripts": { + "build": "tsc", + "build-prod": "yarn build", + "check-ts": "tsc --noEmit && yarn -s tslint", + "clean-deps": "rimraf node_modules", + "clean": "rimraf dist", + "test": "yarn test-unit", + "test-unit": "mocha --config ./test/.mocharc.js", + "tslint": "tslint --config ../ts/tslint.json --project .", + "watch": "tsc --watch" + }, + "dependencies": { + "convert-source-map": "^1.7.0", + "debug": "^4.3.1", + "source-map-js": "^0.6.2" + }, + "devDependencies": { + "@packages/ts": "0.0.0-development", + "esbuild": "^0.15.3", + "mocha": "7.0.1" + }, + "files": [ + "dist", + "src/require.ts" + ], + "types": "src/require.ts" +} diff --git a/packages/packherd-require/src/default-transpile-cache.ts b/packages/packherd-require/src/default-transpile-cache.ts new file mode 100644 index 0000000000..e8952e8bac --- /dev/null +++ b/packages/packherd-require/src/default-transpile-cache.ts @@ -0,0 +1,27 @@ +import type { TranspileCache } from './types' + +/** + * In memory transpile cache that is used if none was provided to `packherd:require`. + */ +export class DefaultTranspileCache implements TranspileCache { + private readonly _cache: Map = new Map() + + get (fullPath: string): string | undefined { + // In memory cache only so we don't expect anything to be stale + return this._cache.get(fullPath) + } + + addAsync (origFullPath: string, convertedContent: string): Promise { + this.add(origFullPath, convertedContent) + + return Promise.resolve() + } + + add (origFullPath: string, convertedContent: string): void { + this._cache.set(origFullPath, convertedContent) + } + + clearSync (): void { + this._cache.clear() + } +} diff --git a/packages/packherd-require/src/loader.ts b/packages/packherd-require/src/loader.ts new file mode 100644 index 0000000000..dfc457207c --- /dev/null +++ b/packages/packherd-require/src/loader.ts @@ -0,0 +1,1108 @@ +import debug from 'debug' +import Module from 'module' +import path from 'path' +import type { + ModuleBuiltin, + ModuleDefinition, + ModuleLoadResult, + ModuleResolveResult, + ModuleNeedsReload, +} from './types' +import { strict as assert } from 'assert' + +const logDebug = debug('cypress-verbose:packherd:debug') +const logTrace = debug('cypress-verbose:packherd:trace') +const logSilly = debug('cypress-verbose:packherd:silly') +const logWarn = debug('cypress:packherd:warn') + +/** + * Provides information that is used to resolve a module's key from its URI. + * {@link PackherdModuleLoader#tryResolve} + * + * @property fromSnapshot if `true` this means that the resolve call originated from inside the snapshot + * @property isResolve if `true` we are only resolving the full path vs. trying import/require the module + * @category Loader + */ +export type GetModuleKeyOpts = { + filename: string + path: string + relFilename?: string + relPath?: string + fromSnapshot?: boolean + isResolve?: boolean +} + +/** + * Function to override how a module key/id is derived from a moduleUri. + * In order to load the module from either the `ModuleLoaderOpts['moduleExports']` or + * `ModuleLoaderOpts['moduleDefinitions']` the returned key needs to match how modules are keyed there. + * + * @param moduleUri uri specified via a `require` or `import` + * @param baseDir the base dir of the project + * @param opts + * + * @category Loader + */ +export type GetModuleKey = (opts: { + moduleUri: string + baseDir: string + opts?: GetModuleKeyOpts +}) => { moduleKey: string | undefined, moduleRelativePath: string | undefined } + +/** + * Configures the {@link PackherdModuleLoader}. + * + * @property diagnosticsEnabled: if set loading diagnostics are logged + * @property moduleExports: map holding fully initialized and exported modules + * @property moduleDefinitions: map holding functions that when invoke initialize a module and return its exports + * @property getModuleKey: overrides how a module's key is resolved from its uri + * @property moduleNeedsReload?: determines if a module needs to be reloaded even if it was found in a cache or + * `moduleExports` + * + * @category Loader + */ +export type ModuleLoaderOpts = { + diagnosticsEnabled?: boolean + moduleExports?: Record + moduleDefinitions?: Record + getModuleKey?: GetModuleKey + moduleNeedsReload?: ModuleNeedsReload +} + +// Very simple implementation of obtaining a module key by just prefixing the relative path with `./` +const defaultGetModuleKey: GetModuleKey = ({ moduleUri, baseDir }) => { + const moduleRelativePath = path.relative(baseDir, moduleUri) + + return { moduleKey: `./${moduleRelativePath}`, moduleRelativePath } +} + +/** + * This keeps track of which modules are being loaded currently and is used to handle circular imports properly. + * + * @category Loader + */ +class LoadingModules { + private readonly currentlyLoading: Map = new Map() + + start (id: string, mod: Module) { + if (this.currentlyLoading.has(id)) { + throw new Error(`Already loading ${id}\nstack: ${this.stack()}`) + } + + this.currentlyLoading.set(id, mod) + } + + retrieve (id: string) { + return this.currentlyLoading.get(id) + } + + finish (id: string) { + this.currentlyLoading.delete(id) + } + + stack () { + return Array.from(this.currentlyLoading.keys()) + } +} + +function defaultModuleNeedsReload ( + moduleId: string, + loadedModules: Set, + moduleCache: Record, +) { + return loadedModules.has(moduleId) && moduleCache == null +} + +/** + * Tracks loaded modules and is used to determine if a module needs to be reloaded or if it could be retrieved from a + * cache. + * Basically we register all loaded modules here and when loading a module we compare our record with the + * {@see * _moduleCache}. If we have it, but the `_moduleCache` doesn't this means that it was deleted from the latter. + * In that case we need to reload it fresh instead of pulling from any cache, including our {@link _moduleExports} in + * order to replicate the behavior that Node.js has by default. + * + * @category Loader + */ +class CacheTracker { + private readonly _loadedModules: Set = new Set() + + /** + * Creates {@link CacheTracker} instance. + * + * @param _moduleCache the Node.js module cache, aka `Module._cache` and `require.cache` which are the same object + * @param _moduleExports the module exports provided to packherd, i.e. could be pre-initialized modules snapshotted + * into the app. Any loaded module not yet found inside this map is added there. However it is **NOT** part of the + * decision if a module should be reloaded or not. + * @param _moduleNeedsReload the function to determine if a module needs to be reloaded even if it was found inside + * the {@link _moduleCache} or {@link _moduleExports}. + */ + constructor ( + private readonly _moduleCache: Record, + private readonly _moduleExports: Record, + private readonly _moduleNeedsReload: ModuleNeedsReload, + ) {} + + /** + * Registers a module load for the given id. + */ + addLoadedById (id: string) { + this._loadedModules.add(id) + } + + /** + * Registers a module as loaded providing added information about how it was loaded. + * + * @param mod the module that was loaded + * @param resolved the strategy as to how the module was resolved + * @param origin the origin of the module, i.e. did it come from a cache, _moduleExports or similar + * @param moduleKey the derived key of the module if it was obtained + */ + addLoaded ( + mod: NodeModule, + resolved: string, + origin: string, + moduleKey?: string, + ) { + assert( + mod.id != null, + `Should have module id when loading by ${resolved} via ${origin} succeeded`, + ) + + // Add the module to the Node.js module cache + this._moduleCache[mod.id] = mod + + // Add it to the `_moduleExports` as well in order to shortcut loading it from inside the snapshot + if (moduleKey != null) { + this._moduleExports[moduleKey] = mod + } + + // Register the module as loaded + this._loadedModules.add(mod.id) + + if (logTrace.enabled) { + logTrace( + 'Loaded "%s" (%s | %s) -> moduleCache: %d, exportsCache: %d, loaded: %d', + mod.id, + resolved, + origin, + Object.keys(this._moduleCache).length, + Object.keys(this._moduleExports).length, + this._loadedModules.size, + ) + } + } + + /** + * Determines if a module needs to be loaded fresh or if it can either be loaded from the {@link _moduleCache} or + * {@link _moduleExports}. + */ + moduleNeedsReload (mod: NodeModule) { + // We update our exports cache when loading a module, thus if it came from there + // and doesn't have one yet that means that it was never loaded before + if (mod.id == null) return false + + return this._moduleNeedsReload( + mod.id, + this._loadedModules, + this._moduleCache, + ) + } +} + +function needsFullPathResolve (p: string) { + return !path.isAbsolute(p) && p.startsWith('./') +} + +type CacheDirectResult = { + moduleExports?: Object + definition?: ModuleDefinition +} + +/** + * The PackherdModuleLoader is responsible for resolving required/imported modules. + * To do that in an efficient manner it first looks inside the Node.js Module cache and then tries to load a module + * either from the provided `moduleExports` then the `moduleDefinitions` and only then from the file system via the + * Node.js module loading mechanism. + */ +export class PackherdModuleLoader { + exportHits: Set = new Set() + definitionHits: Set = new Set() + misses: Set = new Set() + private readonly diagnosticsEnabled: boolean + private _dumpedInfo: { + exportHits: number + definitionHits: number + misses: number + } + private readonly getModuleKey: GetModuleKey + private readonly moduleExports: Record + private readonly moduleDefinitions: Record + private readonly loading: LoadingModules + private readonly cacheTracker: CacheTracker + + /** + * Creates a {@link PackherdModuleLoader} instance. + * + * @param Module the global Node.js Module + * @param origLoad the original `Module._load` function (i.e. the unpatched version) + * @param projectBaseDir the root of the app whose module we're loading + * @param opts configuring this loader and includes `moduleExports` and `moduleDefinitions` + */ + constructor ( + private readonly Module: ModuleBuiltin, + private readonly origLoad: ModuleBuiltin['_load'], + private readonly projectBaseDir: string, + opts: ModuleLoaderOpts, + ) { + this.diagnosticsEnabled = !!opts.diagnosticsEnabled + this._dumpedInfo = { exportHits: 0, definitionHits: 0, misses: 0 } + this.getModuleKey = opts.getModuleKey || defaultGetModuleKey + assert( + opts.moduleExports != null || opts.moduleDefinitions != null, + 'need to provide moduleDefinitions, moduleDefinitions or both', + ) + + this.moduleExports = opts.moduleExports ?? {} + this.moduleDefinitions = opts.moduleDefinitions ?? {} + this.loading = new LoadingModules() + this.cacheTracker = new CacheTracker( + this.Module._cache, + this.moduleExports, + opts.moduleNeedsReload ?? defaultModuleNeedsReload, + ) + } + + // ----------------- + // Loading within Exports Cache + // ----------------- + /** + * Predicate to determine if a module can be loaded from a cache or not. + * This is called when a module is resolvable directly from a snapshot to determine if that instance can be used or + * not. + */ + shouldBypassCache (mod: NodeModule) { + this._ensureFullPathExportsModule(mod) + + return this.cacheTracker.moduleNeedsReload(mod) + } + + /** + * Registers a module as loaded. + * This is required to respect changes to the Node.js module cache, {@link CacheTracker}. + * + * It also registers diagnostics data and logs it when desired. + */ + registerModuleLoad ( + mod: NodeModule, + loadedFrom: + | 'exports' + | 'definitions' + | 'Node.js require' + | 'Counted already', + ) { + this._ensureFullPathExportsModule(mod) + this.cacheTracker.addLoaded(mod, 'cache', loadedFrom) + switch (loadedFrom) { + case 'exports': + this.exportHits.add(mod.id) + break + case 'definitions': + this.definitionHits.add(mod.id) + break + case 'Node.js require': + this.misses.add(mod.id) + break + default: + // not counting loads from Node.js cache or the ones already counted via tryLoad + break + } + this._dumpInfo() + } + + // ----------------- + // Cache Direct + // ----------------- + /** + * Tries to obtain the exports of a module directly from the `moduleExports` or returns one of the `moduleDefinitions` + * which when called returns the module exports. + * Thus the returned value includes either `moduleExports` or `definition` or none if it wasn't found anywhere. + * + * @param fullPath path to the module on Disk + * @param moduleKey key of the module which is used to resolve it from either `moduleExports` or `moduleDefinitions` + * @private + */ + private _tryCacheDirect ( + fullPath: string, + moduleKey?: string, + ): CacheDirectResult { + if (moduleKey == null) return {} + + // 1. Try already instantiated exports + const mod = this.moduleExports[moduleKey] + + if (mod != null) { + // Fill in module properties as best we can + mod.filename = fullPath + mod.id = fullPath + mod.path = path.dirname(fullPath) + + if (mod.parent != null) { + this._ensureFullPathExportsModule(mod.parent) + } + + // Ensure that we are actually OK returning the already instantiated version + // If not we need to run the module initialization code again either by executing the `definition` or loading it + // via Node.js from the file system + if (!this.cacheTracker.moduleNeedsReload(mod)) { + const moduleExport = mod.exports + + return { + moduleExports: moduleExport, + } + } + } + + // 2. Not found in exports or needs reload, let's try to find a definition + const definition = this.moduleDefinitions[moduleKey] + + return { + definition, + } + } + + /** + * Attempts to load a module either from the provided `moduleExports` or by calling the appropriate + * `moduleDefinition`. + * If it fails to find either it returns `undefined`. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param moduleKey the key under which it could be stored inside the `moduleExports` or `moduleDefinitions` + * @param fullPath path to the module on Disk + * @param parent the `module.parent` + * @private + */ + private _loadCacheDirect ( + moduleUri: string, + moduleKey?: string, + fullPath?: string, + parent?: NodeModule, + ): (ModuleLoadResult & { mod: NodeModule }) | undefined { + // We need a parent to init the module properly and fill in its properties + // We need a moduleKey to be able to look it up in the exports or definitions + if (parent == null || moduleKey == null) { + return undefined + } + + assert( + fullPath != null, + 'fullPath should be set when moduleKey was provided', + ) + + const direct = this._tryCacheDirect(fullPath, moduleKey) + + // 1. Best case scenario, we were able to load the already instantiated exports + if (direct?.moduleExports != null) { + const { mod, origin } = this._initModuleFromExport( + moduleKey, + direct.moduleExports, + parent, + fullPath, + ) + + return { + resolved: 'cache:direct', + origin, + exports: mod.exports, + mod, + fullPath: mod.path, + } + } + + // 2. Second best, we need to do some work and run the module initialization code + if (direct?.definition != null) { + const { mod, origin } = this._initModuleFromDefinition( + moduleUri, + direct.definition, + parent, + fullPath, + ) + + if (mod != null) { + return { + resolved: 'cache:direct', + origin, + exports: mod.exports, + mod, + fullPath: mod.path, + } + } + } + + // 3. Worst case we couldn't directly load this and have to fall back to load via Node.js from the file system + return undefined + } + + /** + * Given the `moduleUri` it attempts to resolve the full path to the module. + * The idea here is to only fall back to Node.js resolution which requires access to the file system when all other + * attempts fail. + * + * To that end we try the following in the given order: + * + * 1. resolve via `this.getModuleKey` given it returns a `moduleKey` that is a full path + * 2. expand the path to a full path using `path.resolve` (still no I/O required) + * 3. fall back to Node.js resolution mechanism (this requires I/O) + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param opts control how the module key is obtained + */ + tryResolve (moduleUri: string, opts?: GetModuleKeyOpts): ModuleResolveResult { + // 1. Resolve via module key + let { moduleKey, moduleRelativePath } = this.getModuleKey({ + moduleUri, + baseDir: this.projectBaseDir, + opts, + }) + + if (moduleKey != null && path.isAbsolute(moduleKey)) { + return { fullPath: moduleKey, resolved: 'module-key:node' } + } + + // 2. Try to obtain a full path via the resolved relative path + let fullPath = this._tryResolveFullPath(moduleUri, moduleRelativePath, opts) + + if (fullPath != null) { + return { fullPath, resolved: 'module-fullpath:node' } + } + + // 3. Lastly try to resolve the module via Node.js resolution + if (opts != null) { + this._ensureParentPaths(opts) + } + + if ( + !path.isAbsolute(moduleUri) && + (opts == null || (opts as NodeModule).id == null) + ) { + const msg = + `Cannot resolve module '${moduleUri}'.` + + `Need a parent to resolve via Node.js when relative path is provided.` + + throw moduleNotFoundError(msg, moduleUri) + } + + const directFullPath = fullPath + let resolved: ModuleResolveResult['resolved'] + + ;({ resolved, fullPath } = this._resolvePaths( + moduleUri, + opts as NodeModule | undefined, + false, + directFullPath, + )) + + return { fullPath, resolved } + } + + /** + * Here we try to load the module for the given URI as efficiently as possible. + * Thus we attempt the below steps in the given order: + * + * 1. Load directly from the Node.js module cache providing the `moduleUri` (this is what Node.js would do as well) + * 2. Attempt to resolve the module key + * 3. If we found a module key that is a full path try to load from the Node.js cache again, this time using the + * that full path + * 4. Try to resolve the module's full path via `path.resolve` + * 5. Try the Node.js cache again with that full path + * + * At this point we give up trying to find this module in the Node.js cache some how .. + * + * 6. Try to load the module either from `moduleExports` or instantiate it from one of the `moduleDefinitions` + * 7. Resolve the module via the Node.js resolution mechanism (requires I/O) + * 8. Derive another moduleKey from the resolved path and try `moduleExports` or `moduleDefinitions` again in order to + * at least avoid having to read the module content from the file system and ideally also the module + * initialization overhead + * 9. We failed miserable and have to call the original Node.js module loader which requires I/O and has the maximum + * overhead + * + * NOTE: that we track the module load in each case. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param parent the `module.parent` + * @param isMain if `true` this is the app entrypoint, i.e was launched via `node|electron entrypoint` + * + * @return info regarding how the module was resolved, the origin from which it was loaded, it's `exports` and the + * fullPath` resolved for it + */ + tryLoad ( + moduleUri: string, + parent: NodeModule | undefined, + isMain: boolean, + ): ModuleLoadResult { + // 1. Try to find moduleUri directly in Node.js module cache + if (path.isAbsolute(moduleUri)) { + const moduleCached: NodeModule = this.Module._cache[moduleUri] + + if (moduleCached != null && moduleCached.loaded) { + const fullPath = moduleUri + const resolved = 'module-uri:node' + + return { + resolved, + origin: 'Module._cache', + exports: moduleCached.exports, + fullPath, + } + } + } + + let moduleKey: string | undefined + let moduleRelativePath: string | undefined + + // 2. Try to obtain a module key, this could be from a map or the relative path + if (parent != null) { + ({ moduleKey, moduleRelativePath } = this.getModuleKey({ + moduleUri, + baseDir: this.projectBaseDir, + opts: parent, + })) + } + + // 3. Try to see if the moduleKey was correct and can be loaded from the Node.js cache + if (moduleKey != null && path.isAbsolute(moduleKey)) { + const moduleCached = this.Module._cache[moduleKey] + + if (moduleCached != null) { + const fullPath = moduleKey + const resolved = 'module-key:node' + const origin = 'Module._cache' + + this.cacheTracker.addLoaded(moduleCached, resolved, origin, moduleKey) + + return { + resolved, + origin, + exports: moduleCached.exports, + fullPath, + } + } + } + + let fullPath: string | undefined + + if (parent != null) { + // 4. Try to obtain a full path + this._ensureParentPaths(parent) + fullPath = + this._tryResolveFullPath(moduleUri, moduleRelativePath, parent) ?? + moduleUri + + // 5. Try again in the Node.js module cache + if (fullPath != null && fullPath !== moduleUri) { + const moduleCached = this.Module._cache[fullPath] + + if (moduleCached != null) { + const resolved = 'module-fullpath:node' + const origin = 'Module._cache' + + this.cacheTracker.addLoaded(moduleCached, resolved, origin, moduleKey) + + return { + resolved, + origin, + exports: moduleCached.exports, + fullPath, + } + } + } + + // 6. Try to locate this module inside the cache, either export or definition + let loadedModule = this._loadCacheDirect( + moduleUri, + moduleKey, + fullPath, + parent, + ) + + if (loadedModule != null) { + this._dumpInfo() + + this.cacheTracker.addLoaded( + loadedModule.mod, + loadedModule.resolved, + loadedModule.origin, + moduleKey, + ) + + return loadedModule + } + } + + // 7. Lastly try to resolve the module via Node.js resolution which requires expensive I/O and may fail + // in which case it throws an error + const directFullPath = fullPath ?? moduleUri + let resolved: ModuleResolveResult['resolved'] + + ;({ resolved, fullPath } = this._resolvePaths( + moduleUri, + parent, + isMain, + directFullPath, + )) + + // 8. Something like './foo' might now have been resolved to './foo.js' and + // thus we may find it inside our cache that way + const derivedModuleKey = `./${path.relative(this.projectBaseDir, fullPath).split(path.sep).join(path.posix.sep)}` + const loadedModule = this._loadCacheDirect( + moduleUri, + derivedModuleKey, + fullPath, + parent, + ) + + if (loadedModule != null) { + this._dumpInfo() + loadedModule.resolved = 'cache:node' + this.cacheTracker.addLoaded( + loadedModule.mod, + loadedModule.resolved, + loadedModule.origin, + moduleKey, + ) + + return loadedModule + } + + const exports = this.origLoad(fullPath, parent, isMain) + // Node.js load only returns the `exports` object thus we need to get the + // module itself from the cache to which it was added during load + const nodeModule = this.Module._cache[fullPath] + + this._dumpInfo() + + const origin = 'Module._load' + + if (nodeModule != null) { + this.misses.add(nodeModule.id) + this.cacheTracker.addLoaded(nodeModule, resolved, origin, moduleKey) + } else { + this.misses.add(fullPath) + this.cacheTracker.addLoadedById(fullPath) + } + + return { + resolved, + origin, + exports, + fullPath, + } + } + + /** + * Logs information about the following: + * + * - exportHits: how many modules did we load directly from `moduleExports` + * - definitionHits: how many modules did we instantiate from `moduleDefinitions` + * - misses: how many modules did we have to load via Node.js from the file system + * + * @private + */ + private _dumpInfo () { + if (this.diagnosticsEnabled && logDebug.enabled) { + const { + exportHits: prevExportHits, + definitionHits: prevDefinitionHits, + misses: prevMisses, + } = this._dumpedInfo + + const exportHits = this.exportHits.size + const definitionHits = this.definitionHits.size + const misses = this.misses.size + + if ( + prevExportHits !== exportHits || + prevDefinitionHits !== definitionHits || + prevMisses !== misses + ) { + this._dumpedInfo = { + exportHits, + definitionHits, + misses, + } + + logDebug(this._dumpedInfo) + } + } + } + + /** + * Resolves the path for the given URI and throws an errors if all options to do so failed. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param parent the `module.parent` which is required by the Node.js module resolve mechanism + * @param isMain if `true` this is the app entrypoint, i.e was launched via `node|electron entrypoint` + * @param directFullPath the _preliminary_ full path that we obtained via our resolve logic (could be incomplete) + * @private + */ + private _resolvePaths ( + moduleUri: string, + parent: NodeModule | undefined, + isMain: boolean, + directFullPath?: string, + ): ModuleResolveResult { + const resolved = 'module:node' + const fullPath = this._tryResolveFilename( + moduleUri, + directFullPath, + parent, + isMain, + ) + + return { resolved, fullPath } + } + + // ----------------- + // Module Initialization + // ----------------- + /** + * Creates a Node.js module, similarly to how Node.js would do it. + * The `require` function provided to the module is wrapped when `this.diagnosticsEnabled` is enabled in order to intercept + * and track require calls. + * + * @param fullPath fully resolved module path + * @param parent module parent + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @private + */ + private _createModule ( + fullPath: string, + parent: Module | undefined, + moduleUri: string, + ): NodeModule { + const require = this.diagnosticsEnabled + ? this._interceptedRequire(fullPath, moduleUri, parent) + : this._createRequire(fullPath, moduleUri, parent) + + return { + children: [], + exports: {}, + filename: fullPath, + id: fullPath, + loaded: false, + parent, + path: fullPath, + // NOTE: not entirely correct if parent is nested deeper or higher in the directory tree + // and could cause an edge case for module name clashes when looking up modules via Node.js resolver. + // However this case hasn't been observed so far. + paths: parent?.paths ?? [], + require, + } + } + + /** + * Given an `module.export` object it creates a NodeModule matching as much as possible what Node.js would create. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param moduleExports the `module.exports` + * @param parent the `module.parent` + * @param fullPath fully resolved module path + * + * @return module itself as well as the load origin set to `packherd:export` + * @private + */ + private _initModuleFromExport ( + moduleUri: string, + moduleExports: Module['exports'], + parent: NodeModule, + fullPath: string, + ) { + const mod = this._createModule(fullPath, parent, moduleUri) + + mod.exports = moduleExports + mod.loaded = true + const origin: ModuleLoadResult['origin'] = 'packherd:export' + + this.exportHits.add(mod.id) + + return { mod, origin } + } + + /** + * Given a function (`moduleDefinition`) it invokes it to obtain the `module.export` object and then creates a + * NodeModule matching as much as possible what Node.js would create. + * + * When invoking the definition we ensure to register that via `loading.start` in order to avoid getting into an + * endless loop for circular dependencies, i.e. _foo loads bar_ and _bar loads foo_ and so on. + * Once the module is instantiated we register that via `loading.finish`. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param moduleDefinition the function to invoke in order to obtain the `module.exports` + * @param parent the `module.parent` + * @param fullPath fully resolved module path + * @private + */ + private _initModuleFromDefinition ( + moduleUri: string, + moduleDefinition: ModuleDefinition, + parent: NodeModule, + fullPath: string, + ) { + const origin: ModuleLoadResult['origin'] = 'packherd:definition' + + const loading = this.loading.retrieve(fullPath) + + if (loading != null) return { mod: loading, origin } + + const mod: NodeModule = this._createModule(fullPath, parent, moduleUri) + + try { + this.loading.start(fullPath, mod) + moduleDefinition( + mod.exports, + mod, + fullPath, + path.dirname(fullPath), + mod.require, + ) + + mod.loaded = true + this.definitionHits.add(mod.id) + + return { mod, origin } + } catch (err: any) { + logWarn(err.message) + logSilly(err) + + return { mod: undefined, origin } + } finally { + this.loading.finish(fullPath) + } + } + + /** + * Creates a Node.js `require` function for the provided module parameters. + * + * @param fullPath full path to the module + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param parent the `module.parent` + * @private + */ + private _createRequire ( + fullPath: string, + moduleUri: string, + parent?: NodeModule, + ) { + const require = this.Module.createRequire(fullPath) + + if (parent == null) { + parent = this._createModule(fullPath, parent, moduleUri) + } + + require.resolve = Object.assign( + (moduleUri: string, _options?: { paths?: string[] }) => { + return this.tryResolve(moduleUri, parent).fullPath + }, + { + paths (request: string) { + if (Module.builtinModules.includes(request)) return null + + return parent?.paths ?? null + }, + }, + ) + + return require + } + + /** + * Creates a Node.js `require` function for the provided module parameters that intercepts each `require` call and + * logs something similar to `'Module "/foo.js" is requiring "/bar.js"'` on the _trace_ level. + * + * @param fullPath full path to the module + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param parent the `module.parent` + * @private + */ + private _interceptedRequire ( + fullPath: string, + moduleUri: string, + parent?: NodeModule, + ): NodeRequire { + const require = this._createRequire(fullPath, moduleUri, parent) + const override = function (this: NodeModule, id: string) { + logTrace('Module "%s" is requiring "%s"', moduleUri, id) + + return require.call(this, id) + } + + override.main = require.main + override.cache = require.cache + // @ts-ignore deprecated + override.extensions = require.extensions + override.resolve = require.resolve.bind(require) + + return override + } + + // ----------------- + // Helpers + // ----------------- + + /** + * Uses the Node.js resolution mechanism in order to resolve the full path given a `moduleUri`. + * If that fails it first resolves via the provided _preliminary_ `fullPath` and then via + * a full path based on the project root. + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param fullPath the _preliminary_ full path, it could be something like `/foo/bar` and needs to resolve to + * `/foo/bar.js` + * @param parent the `module.parent` which is required by the Node.js module resolve mechanism + * @private + */ + private _tryResolveFilename ( + moduleUri: string, + fullPath: string | undefined, + parent: NodeModule | undefined, + isMain: boolean, + ) { + try { + return this.Module._resolveFilename(moduleUri, parent, isMain) + } catch (err) { + if (fullPath != null) { + try { + // Resolving moduleUri directly didn't work, let's try again with the full path our algorithm figured out + const res = this.Module._resolveFilename(fullPath, parent, isMain) + + return res + } catch (err2) { + // In some cases like native addons which aren't included in the esbuild bundle we need to try to resolve + // relative to the project base dir + try { + const basedOnProjectRoot = path.resolve( + this.projectBaseDir, + moduleUri, + ) + const res = this.Module._resolveFilename( + basedOnProjectRoot, + parent, + isMain, + ) + + logTrace( + 'Resolved "%s" based on project root to "%s"', + moduleUri, + basedOnProjectRoot, + ) + + return res + } catch (err3) { + // Throwing original error on purpose + throw err + } + } + } else { + throw err + } + } + } + + /** + * Tries to resolve a module's full path in either of two ways: + * + * 1. if `moduleRelativePath` is known it resolves that relative to the `projectBaseDir` + * 2. if the parent path is known (`opts.path`) and the moduleUri is a relative path it resolves it relative to that + * + * @param moduleUri the uri as specified in the `require` or `import` statement used for diagnostics + * @param moduleRelativePath the relative path to the module + * @param opts basically the parent whose `path` is used to resolve the module relative to it + * @private + */ + private _tryResolveFullPath ( + moduleUri: string, + moduleRelativePath?: string, + opts?: GetModuleKeyOpts, + ): string | undefined { + if (moduleRelativePath != null) { + return path.resolve(this.projectBaseDir, moduleRelativePath) + } + + if (opts != null && moduleUri.startsWith('.')) { + return path.resolve(opts.path, moduleUri) + } + + return undefined + } + + /** + * + * @param mod + * @private + */ + private _ensureFullPathExportsModule (mod: NodeModule) { + if (mod.id == null) mod.id = mod.filename + + if (mod.id != null && needsFullPathResolve(mod.id)) { + mod.id = path.resolve(this.projectBaseDir, mod.id) + } + + if (mod.filename != null && needsFullPathResolve(mod.filename)) { + mod.filename = path.resolve(this.projectBaseDir, mod.filename) + } + + if (mod.path != null && needsFullPathResolve(mod.path)) { + mod.path = path.resolve(this.projectBaseDir, mod.path) + } + } + + /** + * This fills in the `module.paths` property for the given module parent a similar way that Node.js would. + * The only difference is that it stops at the project root instead of going all the way to the root of the file + * system. + * + * A sample result would be: + * + * ``` + * '/path/to/app-root/perf-tr1/packherd/repl/node_modules', + * '/path/to/app-root/perf-tr1/packherd/node_modules', + * '/path/to/app-root/perf-tr1/node_modules', + * '/path/to/app-root/node_modules', + * ``` + * + * @param parent the module whose `paths` property we will modify + * @private + */ + private _ensureParentPaths (parent: { path: string, paths?: string[] }) { + if ( + parent.paths == null || + (parent.paths.length === 0 && parent.path != null) + ) { + let dir = path.resolve(this.projectBaseDir, parent.path) + + parent.paths = [] + while (dir.length > this.projectBaseDir.length) { + parent.paths.push(path.join(dir, 'node_modules')) + dir = path.dirname(dir) + } + + parent.paths.push(path.join(dir, 'node_modules')) + } + } +} + +/** + * Mimics a Node.js` MODULE_NOT_FOUND` error in order to not break apps that depend on the `err.code` exactly. + * @private + */ +function moduleNotFoundError (msg: string, moduleUri: string) { + // https://github.com/nodejs/node/blob/da0ede1ad55a502a25b4139f58aab3fb1ee3bf3f/lib/internal/modules/cjs/loader.js#L353-L359 + const err = new Error(msg) + + // @ts-ignore replicating Node.js module not found error + err.code = 'MODULE_NOT_FOUND' + // @ts-ignore replicating Node.js module not found error + err.path = moduleUri + // @ts-ignore replicating Node.js module not found error + err.requestPath = moduleUri + + return err +} diff --git a/packages/packherd-require/src/require.ts b/packages/packherd-require/src/require.ts new file mode 100644 index 0000000000..df53c5abb5 --- /dev/null +++ b/packages/packherd-require/src/require.ts @@ -0,0 +1,224 @@ +import debug from 'debug' +import { DefaultTranspileCache } from './default-transpile-cache' +import { + GetModuleKeyOpts, + ModuleLoaderOpts, + PackherdModuleLoader, +} from './loader' +import type { + ModuleNeedsReload, + PackherdTranspileOpts, +} from './types' +import path from 'path' + +const logInfo = debug('cypress-verbose:packherd:info') +const logDebug = debug('cypress-verbose:packherd:debug') +const logTrace = debug('cypress-verbose:packherd:trace') +const logError = debug('cypress:packherd:error') + +export * from './loader' + +export * from './types' + +/** + * Configures how packherd require works. + * + * @property requireStatsFile: specifies where to write benchmarking stats if diagnose is active + * @property transpileOpts: configures if/how TypeScript files are transpiled + * @property sourceMapLookup: if provided it will be used to find sourcemaps by module URI + * @property moduleNeedsReload: allows to override how packherd determines if a + * module needs to be reloaded even if found in a cache + * @category Loader + */ +export type PackherdRequireOpts = ModuleLoaderOpts & { + requireStatsFile?: string + transpileOpts?: Partial + moduleNeedsReload?: ModuleNeedsReload +} + +const DEFAULT_TRANSPILE_OPTS = { + supportTS: false, +} + +/** + * Patches Node.js require chain in order to load modules from different sources + * and/or transpile TypeScript modules on the fly. + * + * Hooks into `Module_.load` if either {@link ModuleLoaderOpts} `moduleExports` + * or `moduleDefinitions` or both are provided. + * It will then try to load modules from either of those two before falling + * back to the default Node.js behavior and loading them from the file system. + * + * Optionally hooks into `Module._extension` in order to transpile TypeScript files as + * they are required/imported. + * + * @returns a variety of functions which allow to communicate with the loader: + * + * - resolve: function to resolve a module from it's URI + * - shouldBypassCache: returns `true` if a cache, i.e. exports embedded in the + * snapshot cannot by used + * - registerModuleLoad: allows registering modules being loaded even if that + * occurs from inside a snapshot + * - registerModuleLoad: needs to be called to track loaded modules which is + * necessary to determine if cache should be bypassed or not + * + * These are used by [v8-snapshot](https://github.com/thlorenz/v8-snapshot) + * from the `require` embedded in its snapshot, see [custom-require](https://github.com/thlorenz/v8-snapshot/blob/master/src/blueprint/custom-require.js). + * + * @category Loader + */ +export function packherdRequire ( + projectBaseDir: string, + opts: PackherdRequireOpts, +) { + const Module = require('module') + + const { supportTS, initTranspileCache, tsconfig } = Object.assign( + {}, + DEFAULT_TRANSPILE_OPTS, + opts.transpileOpts, + ) + const diagnosticsEnabled = opts.diagnosticsEnabled ?? false + + const cache = + initTranspileCache == null + ? new DefaultTranspileCache() + : initTranspileCache(projectBaseDir, { + // even though we pass `cacheDir` here other end may store the cache wherever it wants + cacheDir: '/tmp/packherd-cache', + }) ?? new DefaultTranspileCache() + + if (supportTS) { + logInfo('Enabling TS support') + logDebug({ supportTS, initTranspileCache, tsconfig }) + const { hookTranspileTs } = require('./transpile-ts') + + hookTranspileTs( + Module, + projectBaseDir, + logInfo, + diagnosticsEnabled, + cache, + tsconfig, + ) + } + + const exportKeysLen = + opts.moduleExports != null ? Object.keys(opts.moduleExports).length : 0 + const definitionKeysLen = + opts.moduleDefinitions != null + ? Object.keys(opts.moduleDefinitions).length + : 0 + + logInfo( + 'packherd defining %d exports and %d definitions!', + exportKeysLen, + definitionKeysLen, + ) + + logInfo({ projectBaseDir }) + + // Even though packherd is designed to support loading from these caches we + // also support using it for on the fly TypeScript transpilation only. + // In that case the necessary extensions hook was applied above and no + // further work is needed. + if (exportKeysLen === 0 && definitionKeysLen === 0) { + logInfo( + 'No moduleExports nor moduleDefinitions provided, not hooking Module._load', + ) + + return { resolve: require.resolve.bind(require) } + } + + const origLoad = Module._load + + const moduleLoader = new PackherdModuleLoader( + Module, + origLoad, + projectBaseDir, + opts, + ) + + // + // Module._load override + // + Module._load = function ( + moduleUri: string, + parent: typeof Module, + isMain: boolean, + ) { + logTrace('Module._load "%s"', moduleUri) + if (Module.builtinModules.includes(moduleUri)) { + return origLoad(moduleUri, parent, isMain) + } + + try { + const { resolved, origin, exports, fullPath } = moduleLoader.tryLoad( + moduleUri, + parent, + isMain, + ) + const moduleRelativePath = path.relative(projectBaseDir, fullPath) + + switch (resolved) { + case 'module:node': + case 'module-uri:node': + case 'module-fullpath:node': + case 'module-key:node': + case 'cache:node': { + logTrace( + 'Resolved "%s" via %s (%s | %s)', + moduleUri, + resolved, + moduleRelativePath, + fullPath, + ) + + break + } + default: + // No need to do anything + } + + switch (origin) { + case 'Module._load': { + logTrace( + 'Loaded "%s" via %s resolved as (%s | %s)', + moduleUri, + origin, + moduleRelativePath, + fullPath, + ) + + break + } + case 'packherd:export': + case 'packherd:definition': { + logTrace('Loaded "%s" via (%s | %s)', moduleUri, origin, resolved) + break + } + default: + // No need to do anything + } + + return exports + } catch (err) { + if (diagnosticsEnabled && !moduleUri.endsWith('hook-require')) { + logError(err) + // eslint-disable-next-line no-debugger + debugger + } + + throw err + } + } + + return { + resolve (uri: string, opts?: GetModuleKeyOpts) { + return moduleLoader.tryResolve(uri, opts).fullPath + }, + shouldBypassCache: moduleLoader.shouldBypassCache.bind(moduleLoader), + registerModuleLoad: moduleLoader.registerModuleLoad.bind(moduleLoader), + tryLoad: moduleLoader.tryLoad.bind(moduleLoader), + } +} diff --git a/packages/packherd-require/src/sourcemap-support.ts b/packages/packherd-require/src/sourcemap-support.ts new file mode 100644 index 0000000000..2c50ce3598 --- /dev/null +++ b/packages/packherd-require/src/sourcemap-support.ts @@ -0,0 +1,490 @@ +import debug from 'debug' +import path from 'path' +import { MappedPosition, RawSourceMap, SourceMapConsumer } from 'source-map-js' +import type { + MapAndSourceContent, + TranspileCache, + UrlAndMap, +} from './types' +import convertSourceMap from 'convert-source-map' +import { DefaultTranspileCache } from './default-transpile-cache' + +const logError = debug('cypress:packherd:error') +const logDebug = debug('cypress-verbose:packherd:debug') +const logTrace = debug('cypress-verbose:packherd:trace') + +const INCLUDE_CODE_BEFORE = 2 +const INCLUDE_CODE_AFTER = 2 +const CODE_FRAME_LINE_GUTTER_WIDTH = 4 +const INCLUDE_CODE_FRAMES = process.env.PACKHERD_CODE_FRAMES != null + +// ----------------- +// types +// ----------------- +type StackPosition = { + nextPos?: MappedPosition + curPos?: MappedPosition +} +type FullScriptPath = string +type SourcePosition = { + script: FullScriptPath + line: number + column: number +} +const EMPTY_URL_AND_MAP = { url: null, map: null } + +type CallSite = NodeJS.CallSite & { + [index: string]: Function +} & { + codeFrames: string[] +} + +type MappedPositionWithCodeFrames = MappedPosition & { codeFrames: string[] } + +// ----------------- +// Config +// ----------------- + +// Fix position in Node where some (internal) code is prepended. +// See https://github.com/evanw/node-source-map-support/issues/36 +// Header removed in node at ^10.16 || >=11.11.0 +// v11 is not an LTS candidate, we can just test the one version with it. +// Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11 +const noHeader = /^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/ +const headerLength = noHeader.test(process.version) ? 0 : 62 + +// ----------------- +// Expose uri to map + content mapping +// ----------------- +/** + * Retrieves the sourcemap for the provided bundle uri via the sourcemap support instance. + * + * @param projectBaseDir the root of the project for which the bundled code was generated + * @param bundleUri the path of the generated bundle + * @param cache when provided will be used to look for sourcemaps from transpiled modules + * @param sourceMapLookup when provided will be queried to lookup sourcemaps + * + * @category Sourcemap + */ +export function getSourceMap ( + projectBaseDir: string, + bundleUri: string, + cache: TranspileCache = new DefaultTranspileCache(), +): UrlAndMap { + const sourcemapSupport = SourcemapSupport.createSingletonInstance( + cache, + projectBaseDir, + ) + + return sourcemapSupport.retrieveSourceMap(bundleUri) +} + +/** + * Retrieves the sourcemap for the provided bundle uri via the sourcemap support instance + * and extracts the source of the specified @see fileUri when found. + * + * @param projectBaseDir the root of the project for which the bundled code was generated + * @param bundleUri the path of the generated bundle + * @param fileUri the path for the original file we want to extract the source content for + * @param cache when provided will be used to look for sourcemaps from transpiled modules + * @param sourceMapLookup when provided will be queried to lookup sourcemaps + * + * @category Sourcemap + */ +export function getSourceMapAndContent ( + projectBaseDir: string, + bundleUri: string, + fileUri: string, + cache: TranspileCache = new DefaultTranspileCache(), +): MapAndSourceContent | undefined { + const { map, url } = getSourceMap( + projectBaseDir, + bundleUri, + cache, + ) + + if (map == null || url == null) return undefined + + const sourceContent = map.sourceContentFor(fileUri, true) + + return { map, url, sourceContent } +} + +// ----------------- +// Install +// ----------------- +/** + * Creates an instance of @see SourcemapSupport and installs a hook for + * @see Error.prepareStackTrace in order to map stack traces using the source maps + * it discovers. + * + * @param cache used to look up script content from which to extract source maps + * @param projectBaseDir directory that is the root of relative source map sources + */ +export function installSourcemapSupport ( + cache: TranspileCache, + projectBaseDir: string, +) { + // NOTE: this is a noop if an instance was created previously + const sourcemapSupport = SourcemapSupport.createSingletonInstance( + cache, + projectBaseDir, + ) + + if (Error.prepareStackTrace === sourcemapSupport.prepareStackTrace) return + + logDebug('Installing sourcemap') + + Error.prepareStackTrace = sourcemapSupport.prepareStackTrace +} + +// ----------------- +// SourcemapSupport +// ----------------- +class SourcemapSupport { + private readonly _sourcemapCache: Map = new Map() + private constructor ( + private readonly _cache: TranspileCache, + private readonly _projectBaseDir: string, + ) {} + + // This function is part of the V8 stack trace API, for more info see: + // https://v8.dev/docs/stack-trace-api + prepareStackTrace = (err: Error, stack: NodeJS.CallSite[]) => { + const name = err.name ?? 'Error' + const message = err.message ?? '' + const errorString = `${name }: ${ message}` + + const state: StackPosition = {} + + const processedStack: string[] = [] + let includeCodeFrames = INCLUDE_CODE_FRAMES + + for (let i = stack.length - 1; i >= 0; i--) { + const c = this.wrapCallSite( + stack[i] as CallSite, + state, + includeCodeFrames, + ) + + if (includeCodeFrames) { + // Keep trying to include some code until we succeeded once + includeCodeFrames = c.codeFrames.length === 0 + } + + if (c.codeFrames != null) { + for (const codeFrame of c.codeFrames.reverse()) { + processedStack.push(`\n ${codeFrame}`) + } + } + + processedStack.push(`\n at ${ c}`) + state.nextPos = state.curPos + } + state.curPos = state.nextPos = undefined + + return `${errorString}${processedStack.reverse().join('')}\n` + } + + wrapCallSite ( + frame: CallSite, + state: StackPosition, + includeCodeFrames: boolean, + ): CallSite { + const script = frame.getFileName() + + if (script != null) { + const line = frame.getLineNumber() + let column = frame.getColumnNumber() ?? 0 + + if (line === 1 && column > headerLength && !frame.isEval()) { + column -= headerLength + } + + // Special case which is impossible to map to anything + if (line == null) return frame + + const pos = this.mapSourcePosition( + { script, line, column }, + includeCodeFrames, + ) + + state.curPos = pos + frame = cloneCallSite(frame) + + frame.getFileName = function getFileName () { + return pos.source || pos.name || null + } + + frame.getLineNumber = function getLineNumber () { + return pos.line + } + + frame.getColumnNumber = function getColumnNumber () { + return pos.column + 1 + } + + frame.getScriptNameOrSourceURL = function getScriptNameOrSourceURL () { + return pos.source || pos.name + } + + frame.codeFrames = pos.codeFrames + + return frame + } + + return frame + } + + mapSourcePosition ( + pos: SourcePosition, + includeCodeFrames: boolean, + ): MappedPositionWithCodeFrames { + const sourceMap = this.retrieveSourceMap(pos.script) + + if (typeof sourceMap?.map?.originalPositionFor === 'function') { + const origPos = sourceMap.map.originalPositionFor(pos) + const codeFrames = includeCodeFrames + ? extractCodeFrames(sourceMap.map, origPos) + : [] + + if (origPos.source != null) { + origPos.source = this._ensureFullPath(origPos.source) + + return Object.assign(origPos, { codeFrames }) + } + } + + // return generated position if we couldn't find the original + const { line, column, script } = pos + + return { + line, + column, + source: '', + name: script, + codeFrames: [], + } + } + + mapFromInlined (script: string): UrlAndMap { + const scriptSource = this._cache.get(script) + + if (scriptSource == null) return EMPTY_URL_AND_MAP + + try { + const converter = convertSourceMap.fromSource(scriptSource) + + if (converter == null) return EMPTY_URL_AND_MAP + + const map: RawSourceMap = converter.sourcemap + const urlAndMap = { url: script, map: new SourceMapConsumer(map) } + + this._sourcemapCache.set(script, urlAndMap) + + return urlAndMap + } catch (err) { + logError('Encountered invalid source map %s', script) + logError(err) + + return EMPTY_URL_AND_MAP + } + } + + retrieveSourceMap (script: FullScriptPath) { + // 1. Try to load previously cached source map + const fromMemory = this._sourcemapCache.get(script) + + if (fromMemory != null) { + logTrace('from memory sourcemap for "%s"', script) + + return fromMemory + } + + // 2. Try to parse a source map out of the script + // Only supporting our own TypeScript modules for now + if (path.extname(script) !== '.ts') return EMPTY_URL_AND_MAP + + logTrace('retrieving sourcemap for %s', script) + + return this.mapFromInlined(script) + } + + _ensureFullPath (p: string) { + return path.isAbsolute(p) ? p : path.join(this._projectBaseDir, p) + } + + private static _instance?: SourcemapSupport + + /** + * Creates a [SourcmapSupport] instance unless one was created previously. + * NOTE: that it is impossible for a process to have two instances and the + * parameters the first one was created with will remain active for the process lifetime. + */ + static createSingletonInstance ( + cache: TranspileCache, + projectBaseDir: string, + ): SourcemapSupport { + if (SourcemapSupport._instance == null) { + SourcemapSupport._instance = new SourcemapSupport( + cache, + projectBaseDir, + ) + } + + return SourcemapSupport._instance + } +} + +// ----------------- +// Utility Methods +// ----------------- +// + +function cloneCallSite (frame: CallSite): CallSite { + const clone: Partial = {} + + for (const name of Object.getOwnPropertyNames(Object.getPrototypeOf(frame))) { + clone[name] = /^(?:is|get)/.test(name) + ? function () { + return frame[name].call(frame) + } + : frame[name] + } + clone.toString = CallSiteToString + + return clone as CallSite +} + +// Via source-map-support module +// This is copied almost verbatim from the V8 source code at +// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The +// implementation of wrapCallSite() used to just forward to the actual source +// code of CallSite.prototype.toString but unfortunately a new release of V8 +// did something to the prototype chain and broke the shim. The only fix I +// could find was copy/paste. +function CallSiteToString (this: CallSite) { + let fileName: string | undefined + let fileLocation: string | undefined = '' + + if (this.isNative()) { + fileLocation = 'native' + } else { + // TODO(thlorenz): may not be needed as this is for in browser callsites + // @ts-ignore getScriptNameOrSourceURL exists only in the browser + fileName = this.getScriptNameOrSourceURL() + if (fileName == null && this.isEval()) { + fileLocation = this.getEvalOrigin() + fileLocation += ', ' // Expecting source position to follow. + } + + if (fileName) { + fileLocation += fileName + } else { + // Source code does not originate from a file and is not native, but we + // can still get the source position inside the source string, e.g. in + // an eval string. + fileLocation += '' + } + + const lineNumber = this.getLineNumber() + + if (lineNumber != null) { + fileLocation += `:${ lineNumber}` + let columnNumber = this.getColumnNumber() + + if (columnNumber) { + fileLocation += `:${ columnNumber}` + } + } + } + + let line = '' + let addSuffix = true + const functionName = this.getFunctionName() + const isConstructor = this.isConstructor() + const isMethodCall = !(this.isToplevel() || isConstructor) + + if (isMethodCall) { + let typeName = this.getTypeName() + + // Fixes shim to be backward compatible with Node v0 to v4 + if (typeName === '[object Object]') { + typeName = 'null' + } + + const methodName = this.getMethodName() + + if (functionName) { + if (typeName && functionName.indexOf(typeName) !== 0) { + line += `${typeName }.` + } + + line += functionName + if ( + methodName && + functionName.indexOf(`.${ methodName}`) !== + functionName.length - methodName.length - 1 + ) { + line += ` [as ${ methodName }]` + } + } else { + line += `${typeName }.${ methodName || ''}` + } + } else if (isConstructor) { + line += `new ${ functionName || ''}` + } else if (functionName) { + line += functionName + } else { + line += fileLocation + addSuffix = false + } + + if (addSuffix) { + line += ` (${ fileLocation })` + } + + return line +} + +function extractCodeFrames ( + map: SourceMapConsumer, + pos: MappedPosition, +): string[] { + const sourceContent = map.sourceContentFor(pos.source, true) + + if (sourceContent == null) return [] + + // We adjusted lines to be 1 based (see mapSourcePosition) + const lineno = pos.line - 1 + const lines = sourceContent.split('\n') + const beforeStart = Math.max(0, lineno - INCLUDE_CODE_BEFORE) + const beforeEnd = Math.min(lines.length, lineno + 1) + + const afterStart = Math.min(lines.length, beforeEnd) + const afterEnd = Math.min(lines.length, afterStart + INCLUDE_CODE_AFTER) + + const framesBefore = lines.slice(beforeStart, beforeEnd).map((x, idx) => { + const lineGutter = (beforeStart + idx + 1) + .toString() + .padStart(CODE_FRAME_LINE_GUTTER_WIDTH) + + return `${lineGutter}: ${x}` + }) + + if (pos.column >= 0) { + framesBefore.push( + `${' '.repeat(CODE_FRAME_LINE_GUTTER_WIDTH + 1 + pos.column) }^`, + ) + } + + const framesAfter = lines.slice(afterStart, afterEnd).map((x, idx) => { + const lineGutter = (afterStart + idx + 1) + .toString() + .padStart(CODE_FRAME_LINE_GUTTER_WIDTH) + + return `${lineGutter}: ${x}` + }) + + return framesBefore.concat(framesAfter) +} diff --git a/packages/packherd-require/src/transpile-ts.ts b/packages/packherd-require/src/transpile-ts.ts new file mode 100644 index 0000000000..c01f52f1c2 --- /dev/null +++ b/packages/packherd-require/src/transpile-ts.ts @@ -0,0 +1,121 @@ +import type { Debugger } from 'debug' +import { TransformOptions, transformSync } from 'esbuild' +import type { TranspileCache } from './types' +import path from 'path' +import { installSourcemapSupport } from './sourcemap-support' + +type EnhancedModule = NodeModule & { + _extensions: Record void> + _compile: (code: string, filename: string) => unknown + _cache: Record +} + +const DEFAULT_TRANSFORM_OPTS: TransformOptions = { + target: ['node14.5'], + loader: 'ts', + format: 'cjs', + sourcemap: 'inline', + minify: false, + supported: { + // We won't be supporting dynamic imports since everything we're doing gets bundled into one snapshot anyway + 'dynamic-import': false, + }, +} + +function transpileTsCode ( + fullModuleUri: string, + ts: string, + cache: TranspileCache, + projectBaseDir: string, + // TODO: consider 'error' for importsNotUsedAsValues (maybe) to add some type checking + tsconfig?: TransformOptions['tsconfigRaw'], +): string { + installSourcemapSupport(cache, projectBaseDir) + + // Try to get from cache first + const cached = (cache != null && cache.get(fullModuleUri)) || null + + if (cached != null) return cached + + // Transpile + const opts = Object.assign({}, DEFAULT_TRANSFORM_OPTS, { + tsconfigRaw: tsconfig, + sourcefile: fullModuleUri, + }) + const result = transformSync(ts, opts) + + // Add to Cache + if (cache != null) { + cache.add(fullModuleUri, result.code) + } + + return result.code +} + +/** + * Hooks into `Module._extensions` in order to transpile TypeScript modules on the fly. + * + * @param Module the Node.js Module + * @param projectBaseDir root of the project + * @param log `debug` module logger to use + * @param diagnosticsEnabled if `true` in case of a transpile/compile error the app breaks when run in the debugger + * @param cache used to avoid re-transpiling modules that haven't changed since last transpile + * @param sourceMapLookup allows overriding how a sourcemap for a particular `uri` is retrieved + * @param tsconfig overrides tsconfig passed to esbuild + * + * @category Transpilation + */ +export function hookTranspileTs ( + Module: EnhancedModule, + projectBaseDir: string, + log: Debugger, + diagnosticsEnabled: boolean, + cache: TranspileCache, + tsconfig?: TransformOptions['tsconfigRaw'], +) { + installSourcemapSupport(cache, projectBaseDir) + + const defaultLoader = Module._extensions['.js'] + + Module._extensions['.ts'] = function (mod: EnhancedModule, filename: string) { + const origCompile = mod._compile + + // NOTE: I benchmarked bypassing the loader to avoid reading `code` + // that goes unused in case the transpiled version is already in the cache. + // That optimization does not make a notable difference and thus we opt of + // the more robust approach of using the Node.js builtin compile which also + // provides internal Node.js cache checks. + mod._compile = (code: string) => { + mod._compile = origCompile + try { + log('transpiling %s', path.relative(projectBaseDir, filename)) + + const transpiled = transpileTsCode( + filename, + code, + cache, + projectBaseDir, + tsconfig, + ) + + const compiled: NodeModule = mod._compile( + transpiled, + filename, + ) as NodeModule + + return compiled + } catch (err) { + // eslint-disable-next-line no-console + console.error(err) + if (diagnosticsEnabled) { + // eslint-disable-next-line no-debugger + debugger + } + + return mod._compile(code, filename) + } + } + + defaultLoader(mod, filename) + } +} diff --git a/packages/packherd-require/src/types.ts b/packages/packherd-require/src/types.ts new file mode 100644 index 0000000000..cea7a8e96b --- /dev/null +++ b/packages/packherd-require/src/types.ts @@ -0,0 +1,168 @@ +import type { + TransformOptions, +} from 'esbuild' + +import type { SourceMapConsumer } from 'source-map-js' + +// ----------------- +// Loading/Require +// ----------------- +type NodeRequireFunction = (id: string) => any + +/** + * The function that needs to be called in order to instantiate a Node.js module definition. + * Invoking it results in a `NodeModule`. The `exports` and `module` will be initialized as if the module was being + * `require`d. + * + * module definitions need to be provided to {import('./require').packherdRequire} + * + * @category Loader + */ +export type ModuleDefinition = ( + exports: NodeModule['exports'], + module: { exports: NodeModule['exports'] }, + __filename: string, + __dirname: string, + require: NodeRequireFunction +) => NodeModule + +/** + * The result of attempting a requested `URI` to a full path. + * @property resolved: indicates how the module was resolved + * - 'module:node': resolved via Node.js module resolution which requires I/O + * - 'module-uri:node': uri was already a full path + * - 'module-fullpath:node': resolved relative to parent + * - 'cache:direct': resolved directly from `packherd` module export cache + * - 'cach:node': resolved from cache after determining full path via Node.js + * @property fullPath: full path to the resolved module + * + * @private + * @category Loader + */ +export type ModuleResolveResult = { + resolved: + | 'module:node' + | 'module-uri:node' + | 'module-fullpath:node' + | 'module-key:node' + | 'cache:direct' + | 'cache:node' + fullPath: string +} + +/** + * Result of loading a module via packherd. + * + * @property exports: the `exports` of the module + * @property origin: indicates how the exports were retrieved + * - ''packherd:export': directly from the fully instantiated exports provided to packherd + * - 'packherd:definition': by invoking on of the provided definitions + * - 'Module._cache' loaded from Node.js module cache + * - 'Module._load' by calling Node.js module load method which requires I/O + * + * @private + * @category Loader + */ +export type ModuleLoadResult = ModuleResolveResult & { + exports: NodeModule['exports'] + origin: + | 'packherd:export' + | 'packherd:definition' + | 'Module._cache' + | 'Module._load' +} + +/** + * The Node.js Module builtin including some private methods that we depend on in packherd. + * @category Loader + */ +export type ModuleBuiltin = typeof import('module') & { + _resolveFilename( + moduleUri: string, + parent: NodeModule | undefined, + isMain: boolean + ): string + _load( + request: string, + parent: NodeModule | undefined, + isMain: boolean + ): NodeModule + _cache: Record +} + +/** + * Predicate part of loader opts which specifies how to determine if a module should be reloaded + * even though it could be loaded from a cache. + * + * @category Loader + */ +export type ModuleNeedsReload = ( + moduleId: string, + loadedModules: Set, + moduleCache: Record +) => boolean + +// ----------------- +// Transpilation +// ----------------- +/** + * Interface to the cache used to store/retrieve transpiled TypeScript + * + * This interface matches DirtSimpleFileCache + * + * @category Transpilation */ +export interface TranspileCache { + get(fullPath: string): string | undefined + addAsync(origFullPath: string, convertedContent: string): Promise + add(origFullPath: string, convertedContent: string): void + clearSync(): void +} + +/** @category Transpilation */ +export type TranspileCacheOpts = { + cacheDir: string + keepInMemoryCache: boolean +} + +/** + * Function that packherd calls in order to initialize the {@link TranspileCache}. + * + * @category Transpilation + */ +export type InitTranspileCache = ( + projectBasedir: string, + opts?: Partial +) => TranspileCache | undefined + +/** + * Transpile options + * + * @property tsconfig: passed to esbuild + * @property supportTS: when `true` Typescript will be transpiled, otherwise not + * @property initTranspileCache: called by packherd to init transpile cache + * + * @category Transpilation + */ +export type PackherdTranspileOpts = { + tsconfig?: TransformOptions['tsconfigRaw'] + supportTS?: boolean + initTranspileCache?: InitTranspileCache +} + +// ----------------- +// SourcemapSupport +// ----------------- +/** + * @private + * @category Sourcemap + */ +export type UrlAndMap = { url: string | null, map: SourceMapConsumer | null } + +/** + * @category Sourcemap + */ +export type MapAndSourceContent = { + url: string + map: SourceMapConsumer + sourceContent: string +} diff --git a/packages/packherd-require/test/.mocharc.js b/packages/packherd-require/test/.mocharc.js new file mode 100644 index 0000000000..9720d8a75c --- /dev/null +++ b/packages/packherd-require/test/.mocharc.js @@ -0,0 +1,9 @@ +module.exports = { + require: '@packages/ts/register', + reporter: 'mocha-multi-reporters', + reporterOptions: { + configFile: '../../mocha-reporter-config.json', + }, + spec: 'test/**/*.spec.ts', + watchFiles: ['test/**/*.ts', 'src/**/*.ts'], +} diff --git a/packages/packherd-require/test/circular-dependency.spec.ts b/packages/packherd-require/test/circular-dependency.spec.ts new file mode 100644 index 0000000000..c319534c9e --- /dev/null +++ b/packages/packherd-require/test/circular-dependency.spec.ts @@ -0,0 +1,12 @@ +import { expect } from 'chai' + +// NOTE: these relative paths only work from the ./dist folder +require('../test/fixtures/circular-deps/hook-require') +const result = require('../test/fixtures/circular-deps/lib/entry') + +describe('Circular Dependency', () => { + it('is properly processed', () => { + expect(result.origin).to.equal('definitions') + expect(result.result).to.equal(4) + }) +}) diff --git a/packages/packherd-require/test/fixtures/circular-deps/definitions.js b/packages/packherd-require/test/fixtures/circular-deps/definitions.js new file mode 100644 index 0000000000..a8efa21e2e --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/definitions.js @@ -0,0 +1,26 @@ +'use strict' + +function foo(exports, module, __filename, __dirname, require) { + const bar = require('./bar') + exports.value = 1 + exports.sum = bar + exports.value +} + +function bar(exports, module, __filename, __dirname, require) { + const { value } = require('./foo') + if (value > 1) { + console.log('value of foo is too high') + } + module.exports = 1 +} + +function entry(exports, module, __filename, __dirname, require) { + const { sum } = require('./foo') + module.exports = { result: sum + sum, origin: 'definitions' } +} + +module.exports = { + './foo.js': foo, + './bar.js': bar, + './entry.js': entry, +} diff --git a/packages/packherd-require/test/fixtures/circular-deps/hook-require.js b/packages/packherd-require/test/fixtures/circular-deps/hook-require.js new file mode 100644 index 0000000000..b49b7713be --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/hook-require.js @@ -0,0 +1,26 @@ +const debug = require('debug') +const path = require('path') +const definitions = require('./definitions') +const { packherdRequire } = require('../../../') +const entryFile = require.resolve('./lib/entry') + +const logDebug = debug('packherd:debug') + +function getModuleKey({ moduleUri, baseDir }) { + const moduleRelativePath = path.isAbsolute(moduleUri) + ? path.relative(baseDir, moduleUri) + : moduleUri + + logDebug({ baseDir, moduleUri, moduleRelativePath }) + return { + moduleKey: moduleUri, + moduleRelativePath, + } +} + +const projectBaseDir = path.dirname(entryFile) +packherdRequire(projectBaseDir, { + diagnosticsEnabled: true, + moduleDefinitions: definitions, + getModuleKey, +}) diff --git a/packages/packherd-require/test/fixtures/circular-deps/lib/bar.js b/packages/packherd-require/test/fixtures/circular-deps/lib/bar.js new file mode 100644 index 0000000000..96b32de0e0 --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/lib/bar.js @@ -0,0 +1,5 @@ +const { value } = require('./foo') +if (value > 1) { + console.log('value of foo is too high') +} +module.exports = 1 diff --git a/packages/packherd-require/test/fixtures/circular-deps/lib/entry.js b/packages/packherd-require/test/fixtures/circular-deps/lib/entry.js new file mode 100644 index 0000000000..8887a89cb9 --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/lib/entry.js @@ -0,0 +1,2 @@ +const { sum } = require('./foo') +module.exports = { result: sum + sum, origin: 'file' } diff --git a/packages/packherd-require/test/fixtures/circular-deps/lib/foo.js b/packages/packherd-require/test/fixtures/circular-deps/lib/foo.js new file mode 100644 index 0000000000..5f33b92ef1 --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/lib/foo.js @@ -0,0 +1,3 @@ +const bar = require('./bar') +exports.value = 1 +exports.sum = bar + exports.value diff --git a/packages/packherd-require/test/fixtures/circular-deps/main.js b/packages/packherd-require/test/fixtures/circular-deps/main.js new file mode 100644 index 0000000000..a9c10fbb71 --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/main.js @@ -0,0 +1 @@ +console.log(require('./lib/entry')) diff --git a/packages/packherd-require/test/fixtures/circular-deps/package.json b/packages/packherd-require/test/fixtures/circular-deps/package.json new file mode 100644 index 0000000000..55e5949611 --- /dev/null +++ b/packages/packherd-require/test/fixtures/circular-deps/package.json @@ -0,0 +1,12 @@ +{ + "name": "circular-deps", + "private": true, + "version": "0.0.0", + "description": "Example with circular module dependencies.", + "scripts": { + "start": "node -r ./hook-require.js main", + "debug": "node --inspect-brk -r ./hook-require.js main", + "ndb": "ndb -r ./hook-require.js main" + }, + "license": "MIT" +} diff --git a/packages/packherd-require/test/fixtures/normal-deps/definitions.js b/packages/packherd-require/test/fixtures/normal-deps/definitions.js new file mode 100644 index 0000000000..efb8c17ab3 --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/definitions.js @@ -0,0 +1,22 @@ +'use strict' + +function foo(exports, module, __filename, __dirname, require) { + const bar = require('./bar') + exports.value = 1 + exports.sum = bar + exports.value +} + +function bar(exports, module, __filename, __dirname, require) { + module.exports = 1 +} + +function entry(exports, module, __filename, __dirname, require) { + const { sum } = require('./foo') + module.exports = { result: sum + sum, origin: 'definitions' } +} + +module.exports = { + './foo.js': foo, + './bar.js': bar, + './entry.js': entry, +} diff --git a/packages/packherd-require/test/fixtures/normal-deps/hook-require.js b/packages/packherd-require/test/fixtures/normal-deps/hook-require.js new file mode 100644 index 0000000000..b49b7713be --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/hook-require.js @@ -0,0 +1,26 @@ +const debug = require('debug') +const path = require('path') +const definitions = require('./definitions') +const { packherdRequire } = require('../../../') +const entryFile = require.resolve('./lib/entry') + +const logDebug = debug('packherd:debug') + +function getModuleKey({ moduleUri, baseDir }) { + const moduleRelativePath = path.isAbsolute(moduleUri) + ? path.relative(baseDir, moduleUri) + : moduleUri + + logDebug({ baseDir, moduleUri, moduleRelativePath }) + return { + moduleKey: moduleUri, + moduleRelativePath, + } +} + +const projectBaseDir = path.dirname(entryFile) +packherdRequire(projectBaseDir, { + diagnosticsEnabled: true, + moduleDefinitions: definitions, + getModuleKey, +}) diff --git a/packages/packherd-require/test/fixtures/normal-deps/lib/bar.js b/packages/packherd-require/test/fixtures/normal-deps/lib/bar.js new file mode 100644 index 0000000000..96b32de0e0 --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/lib/bar.js @@ -0,0 +1,5 @@ +const { value } = require('./foo') +if (value > 1) { + console.log('value of foo is too high') +} +module.exports = 1 diff --git a/packages/packherd-require/test/fixtures/normal-deps/lib/entry.js b/packages/packherd-require/test/fixtures/normal-deps/lib/entry.js new file mode 100644 index 0000000000..8887a89cb9 --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/lib/entry.js @@ -0,0 +1,2 @@ +const { sum } = require('./foo') +module.exports = { result: sum + sum, origin: 'file' } diff --git a/packages/packherd-require/test/fixtures/normal-deps/lib/foo.js b/packages/packherd-require/test/fixtures/normal-deps/lib/foo.js new file mode 100644 index 0000000000..5f33b92ef1 --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/lib/foo.js @@ -0,0 +1,3 @@ +const bar = require('./bar') +exports.value = 1 +exports.sum = bar + exports.value diff --git a/packages/packherd-require/test/fixtures/normal-deps/main.js b/packages/packherd-require/test/fixtures/normal-deps/main.js new file mode 100644 index 0000000000..a9c10fbb71 --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/main.js @@ -0,0 +1 @@ +console.log(require('./lib/entry')) diff --git a/packages/packherd-require/test/fixtures/normal-deps/package.json b/packages/packherd-require/test/fixtures/normal-deps/package.json new file mode 100644 index 0000000000..feee66fe9b --- /dev/null +++ b/packages/packherd-require/test/fixtures/normal-deps/package.json @@ -0,0 +1,12 @@ +{ + "name": "normal-deps", + "private": true, + "version": "0.0.0", + "description": "Example with circular module dependencies.", + "scripts": { + "start": "node -r ./hook-require.js main", + "debug": "node --inspect-brk -r ./hook-require.js main", + "ndb": "ndb -r ./hook-require.js main" + }, + "license": "MIT" +} diff --git a/packages/packherd-require/test/normal-dependency.spec.ts b/packages/packherd-require/test/normal-dependency.spec.ts new file mode 100644 index 0000000000..64f522113b --- /dev/null +++ b/packages/packherd-require/test/normal-dependency.spec.ts @@ -0,0 +1,12 @@ +import { expect } from 'chai' + +// NOTE: these relative paths only work from the ./dist folder +require('../test/fixtures/normal-deps/hook-require') +const result = require('../test/fixtures/normal-deps/lib/entry') + +describe('Normal Dependency', () => { + it('is properly processed', () => { + expect(result.origin).to.equal('definitions') + expect(result.result).to.equal(4) + }) +}) diff --git a/packages/packherd-require/tsconfig.json b/packages/packherd-require/tsconfig.json new file mode 100644 index 0000000000..455e685e26 --- /dev/null +++ b/packages/packherd-require/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../ts/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "lib": ["esnext"], + "outDir": "./dist", + }, +} diff --git a/packages/proxy/package.json b/packages/proxy/package.json index ac883fc52b..d3b7f0f6c1 100644 --- a/packages/proxy/package.json +++ b/packages/proxy/package.json @@ -8,9 +8,9 @@ "clean": "rimraf 'lib/**/*.js'", "clean-deps": "rimraf node_modules", "run-mocha": "mocha -r @packages/ts/register -r test/pretest.ts --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json", - "test": "yarn run-mocha \"test/integration/*.spec.ts\" \"test/unit/**/*.spec.ts\"", - "test-integration": "yarn run-mocha \"test/integration/*.spec.ts\"", - "test-unit": "yarn run-mocha \"test/unit/**/*.spec.ts\"" + "test": "CYPRESS_INTERNAL_ENV=test yarn run-mocha \"test/integration/*.spec.ts\" \"test/unit/**/*.spec.ts\"", + "test-integration": "CYPRESS_INTERNAL_ENV=test yarn run-mocha \"test/integration/*.spec.ts\"", + "test-unit": "CYPRESS_INTERNAL_ENV=test yarn run-mocha \"test/unit/**/*.spec.ts\"" }, "dependencies": { "bluebird": "3.5.3", diff --git a/packages/rewriter/script/worker-shim.js b/packages/rewriter/script/worker-shim.js index 4ee39b3b16..2a61bf6482 100644 --- a/packages/rewriter/script/worker-shim.js +++ b/packages/rewriter/script/worker-shim.js @@ -3,5 +3,13 @@ if (process.env.CYPRESS_INTERNAL_ENV === 'production') { throw new Error(`${__filename} should only run outside of prod`) } -require('@packages/ts/register') +if (require.name !== 'customRequire') { + // Purposefully make this a dynamic require so that it doesn't have the potential to get picked up by snapshotting mechanism + const hook = './hook' + + const { hookRequire } = require(`@packages/server/${hook}-require`) + + hookRequire(true) +} + require('../lib/threads/worker.ts') diff --git a/packages/scaffold-config/package.json b/packages/scaffold-config/package.json index e595016c6d..4b54b05cf1 100644 --- a/packages/scaffold-config/package.json +++ b/packages/scaffold-config/package.json @@ -10,7 +10,7 @@ "clean": "rimraf ./src/*.js ./src/**/*.js ./src/**/**/*.js ./test/**/*.js || echo 'cleaned'", "clean-deps": "rimraf node_modules", "test": "yarn test-unit", - "test-unit": "mocha -r @packages/ts/register 'test/unit/**' --config ./test/.mocharc.js --exit" + "test-unit": "mocha -r @packages/ts/register 'test/unit/**' --config ./test/.mocharc.js --exit --reporter mocha-multi-reporters --reporter-options configFile=../../mocha-reporter-config.json" }, "dependencies": { "compare-versions": "4.1.3", diff --git a/packages/server/README.md b/packages/server/README.md index dc135948d5..3316714e5c 100644 --- a/packages/server/README.md +++ b/packages/server/README.md @@ -76,3 +76,9 @@ Prepend `SNAPSHOT_UPDATE=1` to any test command. See [`snap-shot-it` instruction SNAPSHOT_UPDATE=1 yarn test test/unit/api_spec.js SNAPSHOT_UPDATE=1 yarn test test/integration/cli_spec.js ``` + +### V8 Snapshots + +In order to improve start up time, Cypress uses [electron mksnapshot](https://github.com/electron/mksnapshot) for generating [v8 snapshots](https://v8.dev/blog/custom-startup-snapshots) for both development and production. + +Cypress code is automatically set up to run using snapshots. If you want to run Cypress in development without the v8 snapshot (for debugging purposes or to see if there's a problem with the snapshot or the code itself) you can set the environment variable `DISABLE_SNAPSHOT_REQUIRE` to 1 or true. diff --git a/packages/server/config/app.json b/packages/server/config/app.json new file mode 100644 index 0000000000..5136054b11 --- /dev/null +++ b/packages/server/config/app.json @@ -0,0 +1,14 @@ +{ + "development": { + "api_url": "http://localhost:1234/" + }, + "test": { + "api_url": "http://localhost:1234/" + }, + "staging": { + "api_url": "https://api-staging.cypress.io/" + }, + "production": { + "api_url": "https://api.cypress.io/" + } +} diff --git a/packages/server/config/app.yml b/packages/server/config/app.yml deleted file mode 100644 index 4ac4cbe278..0000000000 --- a/packages/server/config/app.yml +++ /dev/null @@ -1,21 +0,0 @@ -default: - cdn_url: "https://cdn.cypress.io" - desktop_url: "https://download.cypress.io/desktop" - desktop_manifest_url: https://download.cypress.io/desktop.json - chromium_url: https://download.cypress.io/chromium - chromium_manifest_url: https://download.cypress.io/chromium.json - -development: &development - api_url: "http://localhost:1234/" - on_url: "http://localhost:8080/" - -test: - <<: *development - -staging: - api_url: "https://api-staging.cypress.io/" - on_url: "https://on.cypress.io/" - -production: - api_url: "https://api.cypress.io/" - on_url: "https://on.cypress.io/" diff --git a/packages/server/hook-require.js b/packages/server/hook-require.js new file mode 100644 index 0000000000..a328364fab --- /dev/null +++ b/packages/server/hook-require.js @@ -0,0 +1,43 @@ +const path = require('path') +const env = process.env.CYPRESS_INTERNAL_ENV === 'production' ? 'prod' : 'dev' + +process.env.PROJECT_BASE_DIR = process.env.PROJECT_BASE_DIR ?? path.join(__dirname, '..', '..') + +const isDev = env === 'dev' + +function runWithSnapshot (forceTypeScript) { + const { snapshotRequire } = require('@packages/v8-snapshot-require') + const projectBaseDir = process.env.PROJECT_BASE_DIR + + const supportTS = forceTypeScript || typeof global.snapshotResult === 'undefined' || global.supportTypeScript + + snapshotRequire(projectBaseDir, { + diagnosticsEnabled: isDev, + useCache: true, + transpileOpts: { + supportTS, + initTranspileCache: supportTS + ? () => require('dirt-simple-file-cache').DirtSimpleFileCache.initSync(projectBaseDir, { cacheDir: path.join(projectBaseDir, 'node_modules', '.dsfc'), keepInMemoryCache: true }) + : undefined, + tsconfig: { + compilerOptions: { + useDefineForClassFields: false, // default + importsNotUsedAsValues: 'remove', // default + }, + }, + }, + + }) +} + +const hookRequire = (forceTypeScript) => { + if (['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE) || typeof snapshotResult === 'undefined') { + require('@packages/ts/register') + } else { + runWithSnapshot(forceTypeScript) + } +} + +module.exports = { + hookRequire, +} diff --git a/packages/server/index.js b/packages/server/index.js index 4fe98b6613..ad10f8c50a 100644 --- a/packages/server/index.js +++ b/packages/server/index.js @@ -1,46 +1,18 @@ -// if running in production mode (CYPRESS_INTERNAL_ENV) -// all transpile should have been done already -// and these calls should do nothing -require('@packages/ts/register') +const { initializeStartTime } = require('./lib/util/performance_benchmark') -const { patchFs } = require('./lib/util/patch-fs') -const fs = require('fs') +const run = async () => { + initializeStartTime() -// prevent EMFILE errors -patchFs(fs) + if (require.name !== 'customRequire') { + // Purposefully make this a dynamic require so that it doesn't have the potential to get picked up by snapshotting mechanism + const hook = './hook' -// override tty if we're being forced to -require('./lib/util/tty').override() + const { hookRequire } = require(`${hook}-require`) -const electronApp = require('./lib/util/electron-app') + hookRequire(false) + } -// are we in the main node process or the electron process? -const isRunningElectron = electronApp.isRunning() - -if (process.env.CY_NET_PROFILE && isRunningElectron) { - const netProfiler = require('./lib/util/net_profiler')() - - process.stdout.write(`Network profiler writing to ${netProfiler.logPath}\n`) + await require('./server-entry') } -require('./lib/unhandled_exceptions').handle() - -process.env.UV_THREADPOOL_SIZE = 128 - -if (isRunningElectron) { - require('./lib/util/process_profiler').start() -} - -// warn when deprecated callback apis are used in electron -// https://github.com/electron/electron/blob/master/docs/api/process.md#processenablepromiseapis -process.enablePromiseAPIs = process.env.CYPRESS_INTERNAL_ENV !== 'production' - -// don't show any electron deprecation warnings in prod -process.noDeprecation = process.env.CYPRESS_INTERNAL_ENV === 'production' - -// always show stack traces for Electron deprecation warnings -process.traceDeprecation = true - -require('./lib/util/suppress_warnings').suppress() - -module.exports = require('./lib/cypress').start(process.argv) +module.exports = run() diff --git a/packages/server/lib/cloud/api.ts b/packages/server/lib/cloud/api.ts index d7514ab336..9a084d82b9 100644 --- a/packages/server/lib/cloud/api.ts +++ b/packages/server/lib/cloud/api.ts @@ -19,9 +19,7 @@ const THIRTY_SECONDS = humanInterval('30 seconds') const SIXTY_SECONDS = humanInterval('60 seconds') const TWO_MINUTES = humanInterval('2 minutes') -let intervals - -let DELAYS = [ +const DELAYS = process.env.API_RETRY_INTERVALS ? process.env.API_RETRY_INTERVALS.split(',').map(_.toNumber) : [ THIRTY_SECONDS, SIXTY_SECONDS, TWO_MINUTES, @@ -34,16 +32,6 @@ const runnerCapabilities = { let responseCache = {} -intervals = process.env.API_RETRY_INTERVALS - -if (intervals) { - DELAYS = _ - .chain(intervals) - .split(',') - .map(_.toNumber) - .value() -} - const rp = request.defaults((params, callback) => { let resp diff --git a/packages/server/lib/cloud/routes.ts b/packages/server/lib/cloud/routes.ts index 690ae5a2c9..0e69c9f3d2 100644 --- a/packages/server/lib/cloud/routes.ts +++ b/packages/server/lib/cloud/routes.ts @@ -1,9 +1,9 @@ import _ from 'lodash' - import UrlParse from 'url-parse' -import konfig from '../konfig' -const apiUrl = konfig('api_url') +const app_config = require('../../config/app.json') +const apiUrl = app_config[process.env.CYPRESS_CONFIG_ENV || process.env.CYPRESS_INTERNAL_ENV || 'development'].api_url + const DASHBOARD_ENDPOINTS = { api: '', auth: 'auth', diff --git a/packages/server/lib/html/get-local-storage.html b/packages/server/lib/html/get-local-storage.html new file mode 100644 index 0000000000..e6ad9d6955 --- /dev/null +++ b/packages/server/lib/html/get-local-storage.html @@ -0,0 +1,27 @@ + + + + + diff --git a/packages/server/lib/html/set-local-storage.html b/packages/server/lib/html/set-local-storage.html new file mode 100644 index 0000000000..d3cf992105 --- /dev/null +++ b/packages/server/lib/html/set-local-storage.html @@ -0,0 +1,36 @@ + + + + + diff --git a/packages/server/lib/konfig.js b/packages/server/lib/konfig.js deleted file mode 100644 index d50983eb5f..0000000000 --- a/packages/server/lib/konfig.js +++ /dev/null @@ -1,36 +0,0 @@ -const path = require('path') - -require('./environment') - -const konfig = require('konfig') - -const pathToConfigDir = path.resolve(__dirname, '..', 'config') - -const getConfig = function () { - const { env } = process - - // backup previous env - const previousNodeEnv = env.NODE_ENV - const previousNodeEnvExisted = env.hasOwnProperty('NODE_ENV') - - // we want to set node env to cypress env - // and then restore it back to the previous - env.NODE_ENV = env.CYPRESS_KONFIG_ENV || env.CYPRESS_INTERNAL_ENV - - // get the config values - const config = konfig({ path: pathToConfigDir }).app - - // restore NODE_ENV to previous state - if (previousNodeEnvExisted) { - env.NODE_ENV = previousNodeEnv - } else { - delete env.NODE_ENV - } - - // return the config getter function - return (getter) => { - return config[getter] - } -} - -module.exports = getConfig() diff --git a/packages/server/lib/modes/interactive.ts b/packages/server/lib/modes/interactive.ts index 72e0a8c2b9..1f8848f83b 100644 --- a/packages/server/lib/modes/interactive.ts +++ b/packages/server/lib/modes/interactive.ts @@ -13,6 +13,8 @@ import { globalPubSub, getCtx, clearCtx } from '@packages/data-context' import type { WebContents } from 'electron' import type { LaunchArgs, Preferences } from '@packages/types' +import { debugElapsedTime } from '../util/performance_benchmark' + import debugLib from 'debug' import { getPathToDesktopIndex } from '@packages/resolve-dist' @@ -192,6 +194,8 @@ export = { }) }) + debugElapsedTime('open mode ready') + return this.ready(options, port) }, } diff --git a/packages/server/lib/modes/run.ts b/packages/server/lib/modes/run.ts index 9e6de9c1c6..3190688499 100644 --- a/packages/server/lib/modes/run.ts +++ b/packages/server/lib/modes/run.ts @@ -24,6 +24,7 @@ import * as objUtils from '../util/obj_utils' import type { SpecWithRelativeRoot, SpecFile, TestingType, OpenProjectLaunchOpts, FoundBrowser, BrowserVideoController, VideoRecording, ProcessOptions } from '@packages/types' import type { Cfg } from '../project-base' import type { Browser } from '../browsers/types' +import { debugElapsedTime } from '../util/performance_benchmark' import * as printResults from '../util/print-run' type SetScreenshotMetadata = (data: TakeScreenshotProps) => void @@ -1058,10 +1059,12 @@ export async function run (options, loading: Promise) { debug('all BrowserWindows closed, not exiting') }) + debugElapsedTime('run mode ready') await app.whenReady() } await loading + try { return ready(options) } catch (e) { diff --git a/packages/server/lib/reporter.js b/packages/server/lib/reporter.js index 901f774007..eb046cd475 100644 --- a/packages/server/lib/reporter.js +++ b/packages/server/lib/reporter.js @@ -237,11 +237,6 @@ const events = { 'test:before:run': mergeRunnable('test:before:run'), // our own custom event } -const reporters = { - teamcity: 'mocha-teamcity-reporter', - junit: 'mocha-junit-reporter', -} - class Reporter { constructor (reporterName = 'spec', reporterOptions = {}, projectRoot) { if (!(this instanceof Reporter)) { @@ -498,16 +493,22 @@ class Reporter { } static loadReporter (reporterName, projectRoot) { - let p; let r + let p debug('trying to load reporter:', reporterName) - r = reporters[reporterName] - - if (r) { + // Explicitly require this here (rather than dynamically) so that it gets included in the v8 snapshot + if (reporterName === 'teamcity') { debug(`${reporterName} is built-in reporter`) - return require(r) + return require('mocha-teamcity-reporter') + } + + // Explicitly require this here (rather than dynamically) so that it gets included in the v8 snapshot + if (reporterName === 'junit') { + debug(`${reporterName} is built-in reporter`) + + return require('mocha-junit-reporter') } if (mochaReporters[reporterName]) { diff --git a/packages/server/lib/routes-e2e.ts b/packages/server/lib/routes-e2e.ts index fd31e0afd8..409a3e5d23 100644 --- a/packages/server/lib/routes-e2e.ts +++ b/packages/server/lib/routes-e2e.ts @@ -58,72 +58,16 @@ export const createRoutesE2E = ({ }) routesE2E.get(`/${config.namespace}/automation/getLocalStorage`, (req, res) => { - // gathers and sends localStorage and sessionStorage via postMessage to the Cypress frame - // detect existence of local/session storage with JSON.stringify(...).length since localStorage.length may not be accurate - res.send(``) + res.sendFile(path.join(__dirname, './html/get-local-storage.html')) }) - /* eslint-disable no-undef */ routesE2E.get(`/${config.namespace}/automation/setLocalStorage`, (req, res) => { const origin = req.originalUrl.slice(req.originalUrl.indexOf('?') + 1) networkProxy.http.getRenderedHTMLOrigins()[origin] = true - res.send(``) + res.sendFile(path.join(__dirname, './html/set-local-storage.html')) }) - /* eslint-enable no-undef */ routesE2E.get(`/${config.namespace}/source-maps/:id.map`, (req, res) => { networkProxy.handleSourceMapRequest(req, res) diff --git a/packages/server/lib/socket-base.ts b/packages/server/lib/socket-base.ts index 157007ae28..5db24b07dd 100644 --- a/packages/server/lib/socket-base.ts +++ b/packages/server/lib/socket-base.ts @@ -552,8 +552,11 @@ export class SocketBase { }) if (this.supportsRunEvents) { - socket.on('plugins:before:spec', async (spec) => { - await runEvents.execute('before:spec', {}, spec) + socket.on('plugins:before:spec', (spec) => { + runEvents.execute('before:spec', {}, spec).catch((error) => { + socket.disconnect() + throw error + }) }) } diff --git a/packages/server/lib/util/app_data.js b/packages/server/lib/util/app_data.js index 340887a6f1..efe9cb21f1 100644 --- a/packages/server/lib/util/app_data.js +++ b/packages/server/lib/util/app_data.js @@ -92,7 +92,7 @@ module.exports = { 'expected CYPRESS_INTERNAL_ENV, found', env.CYPRESS_INTERNAL_ENV) // allow overriding the app_data folder - let folder = env.CYPRESS_KONFIG_ENV || env.CYPRESS_INTERNAL_ENV + let folder = env.CYPRESS_CONFIG_ENV || env.CYPRESS_INTERNAL_ENV if (process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF) { folder = `${folder}-e2e-test` diff --git a/packages/server/lib/util/performance_benchmark.js b/packages/server/lib/util/performance_benchmark.js new file mode 100644 index 0000000000..4585fab6c6 --- /dev/null +++ b/packages/server/lib/util/performance_benchmark.js @@ -0,0 +1,24 @@ +const Debug = require('debug') + +const debug = Debug('cypress:server:performance-benchmark') + +function threeDecimals (n) { + return Math.round(n * 1000) / 1000 +} + +const initializeStartTime = () => { + // This needs to be a global since this file is included inside of and outside of the v8 snapshot + global.cypressServerStartTime = performance.now() +} + +const debugElapsedTime = (event) => { + const now = performance.now() + const delta = now - global.cypressServerStartTime + + debug(`elapsed time at ${event}: ${threeDecimals(delta)}ms`) +} + +module.exports = { + initializeStartTime, + debugElapsedTime, +} diff --git a/packages/server/package.json b/packages/server/package.json index cdff7136b8..6cd8b927d0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -38,7 +38,6 @@ "black-hole-stream": "0.0.1", "bluebird": "3.7.2", "bundle-require": "3.0.4", - "chai": "1.10.0", "chalk": "2.4.2", "check-more-types": "2.24.0", "chokidar": "3.5.1", @@ -55,6 +54,7 @@ "data-uri-to-buffer": "2.0.1", "dayjs": "^1.9.3", "debug": "^4.3.2", + "dirt-simple-file-cache": "^0.4.0", "duplexify": "4.1.1", "electron-context-menu": "3.1.1", "errorhandler": "1.5.1", @@ -77,7 +77,6 @@ "is-html": "2.0.0", "jimp": "0.14.0", "jsonlint": "1.6.3", - "konfig": "0.2.1", "launch-editor": "2.3.0", "lazy-ass": "1.6.0", "lockfile": "1.0.4", @@ -154,6 +153,7 @@ "@types/mime": "3.0.1", "@types/node": "14.14.31", "babel-loader": "8.1.0", + "chai": "1.10.0", "chai-as-promised": "7.1.1", "chai-subset": "1.6.0", "chai-uuid": "1.0.6", @@ -193,7 +193,9 @@ "files": [ "config", "lib", - "patches" + "patches", + "server-entry.js", + "hook-require.js" ], "types": "index.d.ts", "productName": "Cypress", diff --git a/packages/server/server-entry.js b/packages/server/server-entry.js new file mode 100644 index 0000000000..3ff035cc67 --- /dev/null +++ b/packages/server/server-entry.js @@ -0,0 +1,41 @@ +const { patchFs } = require('./lib/util/patch-fs') +const fs = require('fs') + +// prevent EMFILE errors +patchFs(fs) + +// override tty if we're being forced to +require('./lib/util/tty').override() + +const electronApp = require('./lib/util/electron-app') + +// are we in the main node process or the electron process? +const isRunningElectron = electronApp.isRunning() + +if (process.env.CY_NET_PROFILE && isRunningElectron) { + const netProfiler = require('./lib/util/net_profiler')() + + process.stdout.write(`Network profiler writing to ${netProfiler.logPath}\n`) +} + +require('./lib/unhandled_exceptions').handle() + +process.env.UV_THREADPOOL_SIZE = 128 + +if (isRunningElectron) { + require('./lib/util/process_profiler').start() +} + +// warn when deprecated callback apis are used in electron +// https://github.com/electron/electron/blob/master/docs/api/process.md#processenablepromiseapis +process.enablePromiseAPIs = process.env.CYPRESS_INTERNAL_ENV !== 'production' + +// don't show any electron deprecation warnings in prod +process.noDeprecation = process.env.CYPRESS_INTERNAL_ENV === 'production' + +// always show stack traces for Electron deprecation warnings +process.traceDeprecation = true + +require('./lib/util/suppress_warnings').suppress() + +module.exports = require('./lib/cypress').start(process.argv) diff --git a/packages/server/test/unit/cloud/routes_spec.js b/packages/server/test/unit/cloud/routes_spec.js index a90961025c..6b1106ebbe 100644 --- a/packages/server/test/unit/cloud/routes_spec.js +++ b/packages/server/test/unit/cloud/routes_spec.js @@ -1,9 +1,15 @@ require('../../spec_helper') -const { apiRoutes } = require('../../../lib/cloud/routes') - describe('lib/cloud/routes', () => { + const routes = () => { + delete require.cache[require.resolve(`../../../lib/cloud/routes`)] + + return require(`../../../lib/cloud/routes`) + } + describe('api routes', () => { + const apiRoutes = routes().apiRoutes + it('api', () => { expect(apiRoutes.api()).to.eq('http://localhost:1234/') }) @@ -44,4 +50,54 @@ describe('lib/cloud/routes', () => { expect(apiRoutes.exceptions()).to.eq('http://localhost:1234/exceptions') }) }) + + describe('api url', () => { + let oldCypressInternalEnv + + beforeEach(() => { + oldCypressInternalEnv = process.env.CYPRESS_INTERNAL_ENV + }) + + afterEach(() => { + process.env.CYPRESS_INTERNAL_ENV = oldCypressInternalEnv + }) + + it('supports development environment', () => { + process.env.CYPRESS_INTERNAL_ENV = 'development' + + expect(routes().apiRoutes.api()).to.eq('http://localhost:1234/') + }) + + it('supports staging environment', () => { + process.env['CYPRESS_INTERNAL_ENV'] = 'staging' + + expect(routes().apiRoutes.api()).to.eq('https://api-staging.cypress.io/') + }) + + it('supports production environment', () => { + process.env.CYPRESS_INTERNAL_ENV = 'production' + + expect(routes().apiRoutes.api()).to.eq('https://api.cypress.io/') + }) + + it('supports test environment', () => { + process.env.CYPRESS_INTERNAL_ENV = 'test' + + expect(routes().apiRoutes.api()).to.eq('http://localhost:1234/') + }) + + it('defaults to development', () => { + process.env.CYPRESS_CONFIG_ENV = undefined + process.env.CYPRESS_INTERNAL_ENV = undefined + + expect(routes().apiRoutes.api()).to.eq('http://localhost:1234/') + }) + + it('honors CYPRESS_CONFIG_ENV', () => { + process.env.CYPRESS_CONFIG_ENV = 'staging' + process.env.CYPRESS_INTERNAL_ENV = 'test' + + expect(routes().apiRoutes.api()).to.eq('https://api-staging.cypress.io/') + }) + }) }) diff --git a/packages/server/test/unit/konfig_spec.js b/packages/server/test/unit/konfig_spec.js deleted file mode 100644 index c0d5fad15b..0000000000 --- a/packages/server/test/unit/konfig_spec.js +++ /dev/null @@ -1,84 +0,0 @@ -require('../spec_helper') - -describe('lib/konfig', () => { - beforeEach(function () { - this.env = process.env['CYPRESS_INTERNAL_ENV'] - - this.setup = (env) => { - process.env['CYPRESS_INTERNAL_ENV'] = env - - this.konfig = require(`../../lib/konfig`) - - this.eq = (key, val) => { - expect(this.konfig(key)).to.eq(val) - } - } - }) - - afterEach(function () { - process.env['CYPRESS_INTERNAL_ENV'] = this.env - - return delete require.cache[require.resolve(`../../lib/konfig`)] - }) - - it('does not set global.config', () => { - delete global.config - delete require.cache[require.resolve(`../../lib/konfig`)] - - require(`../../lib/konfig`) - - expect(global.config).not.to.be.ok - }) - - it('memoizes the result', () => { - process.env['NODE_ENV'] = 'development' - const config = require(`../../lib/konfig`) - - process.env['NODE_ENV'] = 'test' - const config2 = require(`../../lib/konfig`) - - expect(config).to.eq(config2) - }) - - it('does not add NODE_ENV to process env if input env did not contain one', () => { - const env = process.env['NODE_ENV'] - - delete process.env['NODE_ENV'] - delete require.cache[require.resolve(`../../lib/konfig`)] - expect(process.env.hasOwnProperty('NODE_ENV')).to.eq(false) - require(`../../lib/konfig`) - - expect(process.env.hasOwnProperty('NODE_ENV')).to.eq(false) - process.env['NODE_ENV'] = env - }) - - context('development', () => { - beforeEach(function () { - return this.setup('development') - }) - - it('api_url', function () { - return this.eq('api_url', 'http://localhost:1234/') - }) - }) - - context('test', () => { - beforeEach(function () { - return this.setup('test') - }) - - it('api_url', function () { - return this.eq('api_url', 'http://localhost:1234/') - }) - }) - - context('production', () => { - beforeEach(function () { - return this.setup('production') - }) - - it('api_url', function () { - return this.eq('api_url', 'https://api.cypress.io/') - }) - }) -}) diff --git a/packages/ts/registerDir.js b/packages/ts/registerDir.js index 715f07d481..51800a1634 100644 --- a/packages/ts/registerDir.js +++ b/packages/ts/registerDir.js @@ -7,34 +7,38 @@ const path = require('path') // built Electron app without ts-node hook. Assume the // build has been done correctly module.exports = function (scopeDir) { - try { + // Only set up ts-node if we're not using the snapshot + // @ts-ignore snapshotResult is a global defined in the v8 snapshot + if (['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE) || typeof snapshotResult === 'undefined') { + try { // Prevent double-compiling if we're testing the app and already have ts-node hook installed // TODO(tim): e2e testing does not like this, I guess b/c it's currently using the tsconfig // for the app project? - if (!process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF) { - debug('registering ts-node on directory', scopeDir) - const tsNode = require('ts-node') - // register TypeScript Node require hook - // https://github.com/TypeStrong/ts-node#programmatic-usage - const project = require('path').join(__dirname, 'tsconfig.json') + if (!process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF) { + debug('registering ts-node on directory', scopeDir) + const tsNode = require('ts-node') + // register TypeScript Node require hook + // https://github.com/TypeStrong/ts-node#programmatic-usage + const project = require('path').join(__dirname, 'tsconfig.json') - process.env.TS_CACHED_TRANSPILE_CACHE = path.join(__dirname, 'node_modules', '.ts-cache') + process.env.TS_CACHED_TRANSPILE_CACHE = path.join(__dirname, 'node_modules', '.ts-cache') - tsNode.register({ - compiler: 'typescript-cached-transpile', - project, - transpileOnly: true, - preferTsExts: true, // Helps when the files are compiled locally, resolves the TS file - scope: Boolean(scopeDir), - scopeDir, - }) - } else { - debug('skipping ts-node registration while testing the app') + tsNode.register({ + compiler: 'typescript-cached-transpile', + project, + transpileOnly: true, + preferTsExts: true, // Helps when the files are compiled locally, resolves the TS file + scope: Boolean(scopeDir), + scopeDir, + }) + } else { + debug('skipping ts-node registration while testing the app') + } + + // do we need to prevent any other TypeScript hooks? + } catch (e) { + // continue running without TypeScript require hook + debug('Running without ts-node hook in environment "%s"', process.env.CYPRESS_INTERNAL_ENV) } - - // do we need to prevent any other TypeScript hooks? - } catch (e) { - // continue running without TypeScript require hook - debug('Running without ts-node hook in environment "%s"', process.env.CYPRESS_INTERNAL_ENV) } } diff --git a/packages/v8-snapshot-require/.gitignore b/packages/v8-snapshot-require/.gitignore new file mode 100644 index 0000000000..e934adfd1b --- /dev/null +++ b/packages/v8-snapshot-require/.gitignore @@ -0,0 +1 @@ +cache/ diff --git a/packages/v8-snapshot-require/README.md b/packages/v8-snapshot-require/README.md new file mode 100644 index 0000000000..3bf8b3adcb --- /dev/null +++ b/packages/v8-snapshot-require/README.md @@ -0,0 +1,89 @@ +## @packages/v8-snapshot-require + +Tool to load a snapshot for Electron applications that was created by `@tooling/v8-snapshot`. + +**Table of Contents** + +- [Features](#features) +- [Loading From Snapshot](#loading-from-snapshot) + - [Resolver Map](#resolver-map) +- [Examples](#examples) +- [Debugging and Diagnosing](#debugging-and-diagnosing) + +## Features + +`@packages/v8-snapshot-require` provides modules snapshotted by `@tooling/v8-snapshot` to `@packages/packherd-require` +and helps in locating modules to load from the snapshot by deriving their keys from information about each +module provided by packherd. + +## Loading From Snapshot + +In order to facilitate loading from the snapshot, `@packages/v8-snapshot-require` ties into the +`@packages/packherd-require` resolution mechanism in order to help it obtain the _key_ to locate +a fully initialized module _exports_ or its _definition_ from the snapshotted Object that +`@packages/v8-snapshot-require` also provides during `@packages/packherd-require` initialization +inside the [snapshot-require][snapshot-require] setup. + +It uses the [resolver-map][resolver-map] in order to resolve modules without querying the file +system. + +Once v8-snapshot provides this key to packherd it then tries to first load a fully initialized +version of the module, aka _exports_, falling back to a function which will initialize it, aka +_definitions_ and only finally loads it from the file system via Node.js. + +Most of that logic lives inside `@packages/packherd-require` and it is recommended to read its +documentation. + +### Resolver Map + +The resolver map is constructed from metadata that as [esbuild-snap][esbuild-snap] produces as +a side effect of bundling the application's dependencies and optionally the app's modules. + +The keys of this map are the directory relative to the project base dir, from which a module +was resolved, concatenated with the import request string (separated by `'***'`) and the value +the fully resolved path relative to the project base dir. + +This map is embedded into the snapshot and used fast module key resolution and used to resolve +a module's key via the [getModuleKey function][getModuleKey-code]. + +## Examples + +In order to learn how to orchestrate snapshot creation and loading please have a look at the +examples provided with this app, for instance: + +- [example-express/snapshot/install-snapshot.js](https://github.com/cypress-io/cypress/blob/develop/system-tests/projects/v8-snapshot/example-express/snapshot/install-snapshot.js) +- [example-express/app/hook-require.js](https://github.com/cypress-io/cypress/blob/develop/system-tests/projects/v8-snapshot/example-express/app/hook-require.js) + +## Debugging and Diagnosing + +In order to gain insight into how the modules are loaded please set the +`DEBUG=(cypress:pack|cypress:snap)*` which will cause the tool to emit a wealth of +information part of which will provide insight into how many modules were initialized +from the snapshot and which weren't. + +```js +cypress:packherd:debug { exportHits: 20, definitionHits: 8, misses: 3 } +``` + +It will also provide information about what it encountered inside the snapshot, namely the +number of: + +- `exports` modules that are fully initialized inside the snapshot +- `definitions` functions that will return `module.exports` when invoked + +NOTE: that `definitions` and `exports` overlap as a module's definition is always included even +if its export is included as well. + +Thus the below means that we have `12` modules that are included fully initialized and `6 (18 - 12)` that aren't. + +``` +exports: 12 +definitions: 18 +``` + +[getModuleKey-code]:https://github.com/cypress-io/cypress/blob/develop/packages/v8-snapshot-require/src/snapshot-require.ts#L45 + +[resolver-map]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/snapshot-generator.ts#L126 +[snapshot-require]:https://github.com/cypress-io/cypress/blob/develop/packages/v8-snapshot-require/src/snapshot-require.ts#L187 + +[esbuild-snap]:https://github.com/cypress-io/esbuild/tree/thlorenz/snap diff --git a/packages/v8-snapshot-require/package.json b/packages/v8-snapshot-require/package.json new file mode 100644 index 0000000000..4c68c313fa --- /dev/null +++ b/packages/v8-snapshot-require/package.json @@ -0,0 +1,32 @@ +{ + "name": "@packages/v8-snapshot-require", + "version": "0.0.0-development", + "description": "Various utils related to create v8 snapshots for electron apps.", + "private": true, + "main": "dist/snapshot-require.js", + "scripts": { + "build": "tsc", + "build-prod": "yarn build", + "check-ts": "tsc --noEmit && yarn -s tslint", + "clean-deps": "rimraf node_modules", + "clean": "rimraf dist", + "test": "yarn test-unit", + "test-unit": "mocha --config ./test/.mocharc.js", + "tslint": "tslint --config ../ts/tslint.json --project .", + "watch": "tsc --watch" + }, + "dependencies": { + "@packages/packherd-require": "0.0.0-development", + "debug": "^4.1.1", + "source-map-js": "^0.6.2" + }, + "devDependencies": { + "mocha": "7.0.1", + "rimraf": "^3.0.2" + }, + "files": [ + "dist", + "src/snapshot-require.ts" + ], + "types": "src/snapshot-require.ts" +} diff --git a/packages/v8-snapshot-require/src/constants.ts b/packages/v8-snapshot-require/src/constants.ts new file mode 100644 index 0000000000..e3488be638 --- /dev/null +++ b/packages/v8-snapshot-require/src/constants.ts @@ -0,0 +1,4 @@ +/** + * Name under which the snapshotted file will appear in tools like DevTools. + */ +export const EMBEDDED = '' diff --git a/packages/v8-snapshot-require/src/dependency-map.ts b/packages/v8-snapshot-require/src/dependency-map.ts new file mode 100644 index 0000000000..d52cf6c9b6 --- /dev/null +++ b/packages/v8-snapshot-require/src/dependency-map.ts @@ -0,0 +1,220 @@ +import path from 'path' +import type { DependencyMapArray, DependencyNode } from './types' +import { strict as assert } from 'assert' + +const resolvedPathCache = new Map() +const getResolvedPathForKey = (projectBaseDir: string, key: string) => { + let resolvedPath = resolvedPathCache.get(key) + + if (!resolvedPath) { + resolvedPath = path.resolve(projectBaseDir, key) + resolvedPathCache.set(key, resolvedPath) + } + + return resolvedPath +} + +/** + * Converts the array representation that was embedded into the snapshot back + * into a dependency map. + * + * @param arr array representation of the dependency map + * @param projectBaseDir the root of the project the map is for + */ +function dependencyArrayToResolvedMap ( + arr: DependencyMapArray, + projectBaseDir: string, +) { + // NOTE: using path.resolve here guarantees that map keys/values are native slashed + // even though the included dependency map array uses always forward slashes + const map: Map = new Map() + + for (const [k, { directDeps, allDeps }] of arr) { + const resolvedKey = getResolvedPathForKey(projectBaseDir, k) + const resolvedDirectDeps = directDeps.map((x) => { + return getResolvedPathForKey(projectBaseDir, x) + }) + const resolvedAllDeps = allDeps.map((x) => { + return getResolvedPathForKey(projectBaseDir, x) + }) + + map.set(resolvedKey, { + directDeps: new Set(resolvedDirectDeps), + allDeps: new Set(resolvedAllDeps), + }) + } + + return map +} + +/** + * Wraps a {@link Map} of dependencies and adds methods to query it. + */ +export class DependencyMap { + /** + * Creates an instance of a {@link DependencyMap}. + * + * @param dependencyMap the mapped dependencies + */ + constructor (private readonly dependencyMap: Map) {} + + /** + * Get all dependencies of a particular module. + * + * @param nodeId the id of the module + */ + allDepsOf (nodeId: string) { + const node = this.dependencyMap.get(nodeId) + + assert(node != null, `Node with ${nodeId} needs to be in map`) + + return Array.from(node.allDeps) + } + + /** + * Get all direct dependencies of a particular module, meaning the `import` + * or `require` for those deps are found inside the module. + * + * @param nodeId the id of the module + */ + directDepsOf (nodeId: string) { + const node = this.dependencyMap.get(nodeId) + + assert(node != null, `Node with ${nodeId} needs to be in map`) + + return Array.from(node.directDeps) + } + + /** + * Determines if a particular module is inside the set of loaded modules, but + * not inside the Node.js module cache. + * + * @param id the module id + * @param loaded the set of loaded modules + * @param cache the Node.js module cache + */ + loadedButNotCached ( + id: string, + loaded: Set, + cache: Record, + ) { + if (!loaded.has(id)) return false + + return cache[id] == null + } + + /** + * Determines if a critical dependency of the given module is inside the + * Node.js module cache, but not inside the loaded set. + * + * @param id the module id + * @param loaded the set of loaded modules + * @param cache the Node.js module cache + */ + criticalDependencyLoadedButNotCached ( + id: string, + loaded: Set, + cache: Record, + ) { + assert(cache[id] == null, 'Should not query for modules that are in cache') + + const node = this.dependencyMap.get(id) + + // Shouldn't be invoked for with a module that isn't in the snapshot, since then it wouldn't + // be in snapshot exports either + assert( + node != null, + `should not check dependencies that are not inside the snapshot: ${id}`, + ) + + // 1. Determine if any of direct deps should be reloaded + for (const childId of node.directDeps) { + if (this.loadedButNotCached(childId, loaded, cache)) return true + } + + // 2. Determine if any of the indirect deps of the module should be reloaded + + // Unfortunately this most likely case is also the most expensive. + const indirectsToReach: Set = new Set() + + for (const childId of node.allDeps) { + if (this.loadedButNotCached(childId, loaded, cache)) { + indirectsToReach.add(childId) + } + } + if (indirectsToReach.size > 0) { + const visited: Set = new Set() + + return this._reachableWithoutHittingCache( + node, + indirectsToReach, + loaded, + cache, + visited, + ) + } + + // 3. We determined that the module does not need to be reloaded + + // This is the most common case as we only return `true` above if the + // Node.js module cache has been modified. + // But unfortunately we're required to traverse all of a module's + // dependencies EVERY time to detect those few edge cases. + return false + } + + /** + * Determines if we can walk to a module following the dependency tree + * without hitting a module that is inside the Node.js module cache. + */ + private _reachableWithoutHittingCache ( + node: DependencyNode, + toReach: Set, + loaded: Set, + cache: Record, + visited: Set, + ) { + // Walk the tree until we either hit a module that is cached or is one of the modules we try to reach + for (const child of node.directDeps) { + if (visited.has(child)) continue + + visited.add(child) + if (toReach.has(child)) return true + + if (cache[child] == null) { + const childNode = this.dependencyMap.get(child) + + if ( + childNode != null && + this._reachableWithoutHittingCache( + childNode, + toReach, + loaded, + cache, + visited, + ) + ) { + return true + } + } + } + + return false + } + + /** + * Creates an instance of a {@link DependencyMap} from a dependency map + * {@link Array} representation that was embedded in the snapshot. + * + * @param arr the dependency map + * @param projectBaseDir the root of the project the map is for + */ + static fromDepArrayAndBaseDir ( + arr: DependencyMapArray, + projectBaseDir: string, + ) { + const map = dependencyArrayToResolvedMap(arr, projectBaseDir) + + return new DependencyMap(map) + } +} diff --git a/packages/v8-snapshot-require/src/snapshot-require.ts b/packages/v8-snapshot-require/src/snapshot-require.ts new file mode 100644 index 0000000000..c428425d5e --- /dev/null +++ b/packages/v8-snapshot-require/src/snapshot-require.ts @@ -0,0 +1,338 @@ +import debug from 'debug' +import path from 'path' +import type { + GetModuleKey, + GetModuleKeyOpts, + ModuleNeedsReload, + PackherdTranspileOpts, +} from '@packages/packherd-require' +import { packherdRequire } from '@packages/packherd-require' +import type { Snapshot, DependencyMapArray } from './types' +import { forwardSlash } from './utils' +import Module from 'module' +import { DependencyMap } from './dependency-map' + +export * from './types' + +const logInfo = debug('cypress:snapshot:info') +const logError = debug('cypress:snapshot:error') +const logDebug = debug('cypress:snapshot:debug') + +const RESOLVER_MAP_KEY_SEP = '***' + +/** + * Creates the function which tries to obtain the module key for a given module + * uri. + * + * @param resolverMap the {@link Map} of a map from directory to module key + * which was prepared during snapshotting and embedded into it + * @private + */ +function createGetModuleKey (resolverMap?: Record) { + /** + * Attempts to find the module key from the resolver map if we can find a key + * for the relative dir of the module importing the module uri. + * + * This requires that the `opts.path` or `opts.relPath` is provided (in this + * these paths represent the location of the module that is importing the + * uri). + * + * @param moduleUri expected to be forward slashed regardless of which OS + * we're running on as the resolver map also only includes forward slashed paths + * @param baseDir project base dir + * @param opts {@link GetModuleKeyOpts} + */ + const getModuleKey: GetModuleKey = ({ moduleUri, baseDir, opts }) => { + // We can only reliably resolve modules without the Node.js machinery if we can find it in the + // resolver map. For instance resolving `./util` involves probing the file system to resolve to + // either `util.js`, `util.json` or possibly `util/index.js` + // We could make an assumption that `./util.js` resolves to that file, but it could also refer + // to `./util.js/index.js` + // The same is true even if `path.isAbsolute` is given, i.e. `/Volumes/dev/util.js` could either be + // a file or a directory, so we still couldn't be sure. + if (resolverMap == null || opts == null) { + return { moduleKey: undefined, moduleRelativePath: undefined } + } + + // Wrap result in order to keep forward slashes going + const relParentDir = forwardSlash( + opts.relPath ?? path.relative(baseDir, opts.path), + ) + const resolverKey = `${relParentDir}${RESOLVER_MAP_KEY_SEP}${moduleUri}` + + const resolved = resolverMap[resolverKey] + + // Module cache prefixes with `./` while the resolver map doesn't + if (resolved != null) { + const moduleKey = `./${resolved}` + + return { moduleKey, moduleRelativePath: moduleKey } + } + + return { moduleKey: undefined, moduleRelativePath: undefined } + } + + return getModuleKey +} + +/** + * Creates the predicate that determines if a module needs to be reloaded or if + * it can be pulled from either the Node.js module cache or our exports cache, + * embedded in the snapshot. + * + * @param dependencyMapArray the dependency map embedded in the snapshot + * @param projectBaseDir the root of the project + * @private + */ +function createModuleNeedsReload ( + dependencyMapArray: DependencyMapArray, + projectBaseDir: string, +) { + const map = DependencyMap.fromDepArrayAndBaseDir( + dependencyMapArray, + projectBaseDir, + ) + + // NOTE: that all keys as well as moduleId are native slashed in order to normalize + // on Node.js Module._cache which is provided here as the `moduleCache` + /** + * Determines if a module needs to be reloaded. + * + * @param moduleId the id of the module + * @param loadedModules modules that we tracked as loaded + * @param moduleCache the Node.js module cache + */ + const moduleNeedsReload: ModuleNeedsReload = ( + moduleId: string, + loadedModules: Set, + moduleCache: Record, + ) => { + if (moduleCache[moduleId] != null) return false + + return ( + map.loadedButNotCached(moduleId, loadedModules, moduleCache) || + map.criticalDependencyLoadedButNotCached( + moduleId, + loadedModules, + moduleCache, + ) + ) + } + + return moduleNeedsReload +} + +/** + * Configures the setup of the require hook. + * + * @property useCache if `true` we use the cached module exports and definitions embedded in the snapshot + * @property diagnosticsEnabled toggles diagnosticsEnabled + * @property snapshotOverride if set overrides the exports and definitions + * embedded in the snapshot + * @property requireStatsFile if set require stats are written to this file + * @property transpileOpts configures {@link + * https://github.com/thlorenz/packherd | packherd} TypeScript transpilation + * @property alwaysHook if `true` we hook `Module._load` even if no embedded snapshot is found + */ +export type SnapshotRequireOpts = { + useCache?: boolean + diagnosticsEnabled?: boolean + snapshotOverride?: Snapshot + requireStatsFile?: string + transpileOpts?: PackherdTranspileOpts + alwaysHook?: boolean +} + +const DEFAULT_SNAPSHOT_REQUIRE_OPTS = { + useCache: true, + diagnosticsEnabled: false, + alwaysHook: true, +} + +/** + * Attempts to extract the exports and definitions from the snapshot + */ +function getCaches (sr: Snapshot | undefined, useCache: boolean) { + if (typeof sr !== 'undefined') { + return { + moduleExports: useCache ? sr.customRequire.exports : undefined, + moduleDefinitions: sr.customRequire.definitions, + } + } + + return { moduleExports: {}, moduleDefinitions: {} } +} + +/** + * Sets up the require hook to use assets embedded in the snapshot. + * + * @param projectBaseDir project root + * @param opts configure how the hook is setup and how it behaves + */ +export function snapshotRequire ( + projectBaseDir: string, + opts: SnapshotRequireOpts = {}, +) { + const { useCache, diagnosticsEnabled, alwaysHook } = Object.assign( + {}, + DEFAULT_SNAPSHOT_REQUIRE_OPTS, + opts, + ) + // 1. Assign snapshot which is a global if it was embedded + const sr: Snapshot = + opts.snapshotOverride || + // @ts-ignore global snapshotResult + (typeof snapshotResult !== 'undefined' ? snapshotResult : undefined) + + // If we have no snapshot we don't need to hook anything + if (sr != null || alwaysHook) { + // 2. Pull out our exports and definitions embedded inside the snapshot + const { moduleExports, moduleDefinitions } = getCaches(sr, useCache) + + // 3. Provide some info about what we found + const cacheKeys = Object.keys(moduleExports || {}) + const defKeys = Object.keys(moduleDefinitions) + + logInfo( + 'Caching %d, defining %d modules! %s cache', + cacheKeys.length, + defKeys.length, + useCache ? 'Using' : 'Not using', + ) + + logDebug('initializing packherd require') + + // 4. Attempt to pull out the resolver map as well as the dependency map + let resolverMap: Record | undefined + let moduleNeedsReload: ModuleNeedsReload | undefined + + // @ts-ignore global snapshotAuxiliaryData + if (typeof snapshotAuxiliaryData !== 'undefined') { + // @ts-ignore global snapshotAuxiliaryData + resolverMap = snapshotAuxiliaryData.resolverMap + const dependencyMapArray: DependencyMapArray = + // @ts-ignore global snapshotAuxiliaryData + snapshotAuxiliaryData.dependencyMapArray + + // 5. Setup the module needs reload predicate with the dependency map + if (dependencyMapArray != null) { + moduleNeedsReload = createModuleNeedsReload( + dependencyMapArray, + projectBaseDir, + ) + } + } + + // 6. Setup the module key resolver with the resolver map + const getModuleKey = createGetModuleKey(resolverMap) + + // 7. Use packherd to hook Node.js require and get hold of some callbacks + // to interact with packherd's module loading mechanism + const { resolve, shouldBypassCache, registerModuleLoad, tryLoad } = + packherdRequire(projectBaseDir, { + diagnosticsEnabled, + moduleExports, + moduleDefinitions, + getModuleKey, + requireStatsFile: opts.requireStatsFile, + transpileOpts: opts.transpileOpts, + moduleNeedsReload, + }) + + // @ts-ignore global snapshotResult + // 8. Ensure that the user passed the project base dir since the loader + // cannot resolve modules without it + if (typeof snapshotResult !== 'undefined') { + const projectBaseDir = process.env.PROJECT_BASE_DIR + + if (projectBaseDir == null) { + throw new Error( + 'Please provide the \'PROJECT_BASE_DIR\' env var.\n' + + 'This is the same used when creating the snapshot.\n' + + 'Example: PROJECT_BASE_DIR=`pwd` yarn dev', + ) + } + + // 9. Setup the path resolver that is used from inside the snapshot in + // order to resolve full paths of modules + const pathResolver = { + resolve (p: string) { + try { + return path.resolve(projectBaseDir, p) + } catch (err) { + logError(err) + // eslint-disable-next-line no-debugger + debugger + } + + return + }, + } + + // ----------------- + // Snapshot Globals + // ----------------- + // While creating the snapshot we use stubs for globals like process. + // When we execute code that is inside the snapshot we need to ensure + // that it is using the actual instances. We do this by swapping out the + // stubs with the those instances. + // For more info see ../blueprint/set-globals.js + + // 10. Prepare the globals we need to inject into the snapshot + + // The below aren't available in all environments + const checked_process: any = + typeof process !== 'undefined' ? process : undefined + const checked_window: any = + // @ts-ignore ignore window as it's something that will only be available at runtime + typeof window !== 'undefined' ? window : undefined + const checked_document: any = + // @ts-ignore ignore document as it's something that will only be available at runtime + typeof document !== 'undefined' ? document : undefined + + // 11. Inject those globals + + // @ts-ignore global snapshotResult + snapshotResult.setGlobals( + global, + checked_process, + checked_window, + checked_document, + console, + pathResolver, + require, + ) + + // 11. Setup the customRequire inside the snapshot + + // @ts-ignore private module var + require.cache = Module._cache + // @ts-ignore global snapshotResult + snapshotResult.customRequire.cache = require.cache + + // 12. Add some 'magic' functions that we can use from inside the + // snapshot in order to integrate module loading + // See ../blueprint/custom-require.js + + // @ts-ignore custom method on require + require._tryLoad = tryLoad + const oldRequireResolve = require.resolve + + // @ts-ignore opts not exactly matching + require.resolve = function (id: string, opts: GetModuleKeyOpts & { paths?: string[] | undefined } | undefined) { + if (opts?.fromSnapshot) { + return resolve(id, opts) + } + + return oldRequireResolve(id, opts) + } + + // @ts-ignore custom method on require + require.shouldBypassCache = shouldBypassCache + // @ts-ignore custom method on require + require.registerModuleLoad = registerModuleLoad + // @ts-ignore custom property on require + require.builtInModules = new Set(Module.builtinModules) + } + } +} diff --git a/packages/v8-snapshot-require/src/types.ts b/packages/v8-snapshot-require/src/types.ts new file mode 100644 index 0000000000..7e5b7a5586 --- /dev/null +++ b/packages/v8-snapshot-require/src/types.ts @@ -0,0 +1,206 @@ +import type { CreateBundleResult } from '@tooling/packherd' +import type { RawSourceMap } from 'source-map-js' + +type NodeRequireFunction = typeof require + +export type Entries = { + [K in keyof T]: [K, T[K]] +}[keyof T][] + +/** + * esbuild metadata {@link https://esbuild.github.io/api/#metafile} with extra + * properties that is included by the snapshot esbuild + * + * Namely it includes a `resolverMap` property which is embedded into the + * snapshot in order to resolve modules without having to query the file system + * + * @category snapshot + */ +export type Metadata = CreateBundleResult['metafile'] & { + inputs: Record< + string, + { + bytes: number + fileInfo: { + fullPath: string + } + imports: { + path: string + kind: 'require-call' + }[] + } + > + resolverMap: Record +} + +/** + * Configures how the bundle to be snapshotted is generated. + * + * @property baseDirPath root of the project which we are snapshotting + * + * @property entryFilePath file we use as the entry-point and from which all + * modules to be snapshotted are reachable + * + * @property bundlerPath the esbuild bundler binary to use, if not provided it + * falls back to the installed one + * + * @property nodeModulesOnly if `true` only node_modules are included in the + * snapshot, i.e. application files are not + * + * @property deferred you should provide any modules here that you know need + * to be deferred in order to speed up the doctor step + * + * @property norewrite you should provide any modules here that you know + * should not be rewritten in order to speed up the doctor step and to work + * around issues due to invalid rewrites + * + * @property includeStrictVerifiers if `true` the bundle will be more strictly + * checked when validated inside the Node.js VM + * This should be set when running the doctor and unset when building the + * bundle to be snapshotted + * + * @property sourcemap if `true` then a sourcemap will be generated for the + * bundled files + * + * @property sourcemapExternalPath the file to write the generated sourcemap + * to if that is desired + * + * @property sourcemapEmbed when `true` the sourcemap is embedded in the + * snapshot + * + * @property sourcemapInline when `true` the sourcemap is inlined at the + * bottom of the bundled file that is snapshotted + * + * @category snapshot + */ +export type CreateBundleOpts = { + baseDirPath: string + entryFilePath: string + bundlerPath: string + nodeModulesOnly: boolean + deferred?: string[] + norewrite?: string[] + includeStrictVerifiers?: boolean + sourcemap?: boolean + sourcemapExternalPath?: string + sourcemapEmbed: boolean + sourcemapInline: boolean +} + +/** + * Adds Snapshot specific opts to the {@link CreateBundleOpts}. + * + * @property resolverMap the map that should be embedded in the snapshot in + * order to resolve module import requests without querying the file system + * + * @property auxiliaryData any extra data that should be embedded in the + * snapshot + * + * @property nodeEnv `process.env.NODE_ENV` will be set to this value during + * snapshot creation, see src/blueprint.ts:88 + * + * @category snapshot + */ +export type CreateSnapshotScriptOpts = CreateBundleOpts & { + resolverMap?: Record + auxiliaryData?: Record + nodeEnv: string +} + +/** + * Used to configure the workers that are processing a snapshot script in parallel + * @category snapshot + */ +export type ProcessScriptOpts = { + bundleHash: string + bundlePath: string + + baseDirPath: string + entryFilePath: string + entryPoint: string + + nodeEnv: string +} + +/** + * Possible outcomes of processing a snapshot script. + * + * - 'failed:assembleScript' means that the bundler generated a proper bundle + * but it couldn't be included in the snapshot script + * - 'failed:verifyScript' means that the script was assembled fine, but some + * violation was detected during the verification phase which indicates that it + * couldn't be snapshotted as is + * - 'completed' all went fine the script could be snapshotted as is + * + * @category snapshot + */ +export type ProcessScriptResult = { + outcome: 'failed:assembleScript' | 'failed:verifyScript' | 'completed' + error?: Error +} + +/** Specifies the signature of the function that represents a module definition + * and when invoked returns a Node.js `module`. + * + * Note that an `exports` parameter which is the same instance as the + * `module.exports` field. The module either mutates the `exports` directly or + * reassigns `module.exports`. After invoking it, the `module.exports` are + * considered the exports of the module. + * + * These definitions are embedded into the snapshot and invoked at runtime. + * They are used instead of full-fledged exports when snapshotting would fail + * were we to initialize them during the snapshot phase. + * + * @category snapshot + * @category loader + */ +export type ModuleDefinition = ( + exports: NodeModule['exports'], + module: { + exports: NodeModule['exports'] + }, + __filename: string, + __dirname: string, + require: NodeRequireFunction +) => NodeModule + +/** + * The result of snapshotting a snapshot script. Namely it has the + * `customRequire` function which also references the `exports` containing fully + * initialized modules as well as `definitions` {@link ModuleDefinition}.. + * + * @category snapshot + */ +export type Snapshot = { + customRequire: { + definitions: Record + exports: Record + // Module._cache === require.cache + cache: Record + } +} + +/** + * Extra data we include in the snapshot, namely the embedded `sourceMap`. + * @category snapshot + */ +export type SnapshotAuxiliaryData = { + sourceMap?: RawSourceMap +} + +/** + * Represents dependencies of a module. + * + * @property directDeps are all dependencies which are directly imported by the module + * @property allDeps are all dependencies imported by the module as well as by + * its dependencies transitively + */ +export type DependencyNode = { directDeps: Set, allDeps: Set } + +/** + * The array representation of the dependency map which is used to embed it + * into the snapshot. + */ +export type DependencyMapArray = Array< + [string, { directDeps: string[], allDeps: string[] }] +> diff --git a/packages/v8-snapshot-require/src/utils.ts b/packages/v8-snapshot-require/src/utils.ts new file mode 100644 index 0000000000..e9e8302894 --- /dev/null +++ b/packages/v8-snapshot-require/src/utils.ts @@ -0,0 +1,12 @@ +import path from 'path' + +/** + * Normalizes the given path to have forward slashes at all times. + * This is used to resolve modules from the snapshot as they are always stored + * with forward slashes there. + * @category loader + */ +export const forwardSlash = + path.sep === path.posix.sep + ? (p: string) => p + : (p: string) => p.replace(/(\\)+/g, '/') diff --git a/packages/v8-snapshot-require/test/.mocharc.js b/packages/v8-snapshot-require/test/.mocharc.js new file mode 100644 index 0000000000..9720d8a75c --- /dev/null +++ b/packages/v8-snapshot-require/test/.mocharc.js @@ -0,0 +1,9 @@ +module.exports = { + require: '@packages/ts/register', + reporter: 'mocha-multi-reporters', + reporterOptions: { + configFile: '../../mocha-reporter-config.json', + }, + spec: 'test/**/*.spec.ts', + watchFiles: ['test/**/*.ts', 'src/**/*.ts'], +} diff --git a/packages/v8-snapshot-require/test/dependency-map.circular.spec.ts b/packages/v8-snapshot-require/test/dependency-map.circular.spec.ts new file mode 100644 index 0000000000..adf467349e --- /dev/null +++ b/packages/v8-snapshot-require/test/dependency-map.circular.spec.ts @@ -0,0 +1,101 @@ +import { buildDependencyMap } from '@tooling/v8-snapshot' +import { DependencyMap } from '../src/dependency-map' +import type { Metadata } from '../src/types' +import { expect } from 'chai' + +const ROOT = 'lib/root.js' +const FOO = 'lib/foo.js' +const BAR = 'lib/bar.js' +const BAZ = 'lib/baz.js' +const FOZ = 'lib/foz.js' + +/* + * + ROOT + * | + * +---- FOO + * | + * + --- BAR + * | + * +--- BAZ + * | + * + --- FOZ + * | + * | + * + --- FOO (circular ref) + * + */ + +const ALL_ROOT = [FOO, BAR, BAZ, FOZ] +const ALL_FOO = [BAR, BAZ, FOZ] +const ALL_BAR = [BAZ, FOZ, FOO] +const ALL_BAZ = [FOZ, FOO, BAR] +const ALL_FOZ: string[] = [] + +const DIRECT_ROOT = [FOO] +const DIRECT_FOO = [BAR] +const DIRECT_BAR = [BAZ] +const DIRECT_BAZ = [FOZ, FOO] +const DIRECT_FOZ: string[] = [] + +const inputs: Metadata['inputs'] = { + [ROOT]: { + imports: [ + { + path: FOO, + kind: 'require-call', + }, + ], + }, + [FOO]: { + imports: [ + { + path: BAR, + kind: 'require-call', + }, + ], + }, + [BAR]: { + imports: [ + { + path: BAZ, + kind: 'require-call', + }, + ], + }, + [BAZ]: { + imports: [ + { + path: FOZ, + kind: 'require-call', + }, + { + path: FOO, + kind: 'require-call', + }, + ], + }, + [FOZ]: { + imports: [], + }, +} as unknown as Metadata['inputs'] + +const map = buildDependencyMap(inputs) +const dp = new DependencyMap(map) + +describe('dependency map: circular', () => { + it('creates a map with circular dep - all deps ', () => { + expect(dp.allDepsOf(ROOT)).to.deep.equal(ALL_ROOT) + expect(dp.allDepsOf(FOO)).to.deep.equal(ALL_FOO) + expect(dp.allDepsOf(BAR)).to.deep.equal(ALL_BAR) + expect(dp.allDepsOf(BAZ)).to.deep.equal(ALL_BAZ) + expect(dp.allDepsOf(FOZ)).to.deep.equal(ALL_FOZ) + }) + + it('creates a map with circular dep - direct deps ', () => { + expect(dp.directDepsOf(ROOT)).to.deep.equal(DIRECT_ROOT) + expect(dp.directDepsOf(FOO)).to.deep.equal(DIRECT_FOO) + expect(dp.directDepsOf(BAR)).to.deep.equal(DIRECT_BAR) + expect(dp.directDepsOf(BAZ)).to.deep.equal(DIRECT_BAZ) + expect(dp.directDepsOf(FOZ)).to.deep.equal(DIRECT_FOZ) + }) +}) diff --git a/packages/v8-snapshot-require/test/dependency-map.spec.ts b/packages/v8-snapshot-require/test/dependency-map.spec.ts new file mode 100644 index 0000000000..cfdebbee80 --- /dev/null +++ b/packages/v8-snapshot-require/test/dependency-map.spec.ts @@ -0,0 +1,126 @@ +import { buildDependencyMap } from '@tooling/v8-snapshot' +import { DependencyMap } from '../src/dependency-map' +import type { Metadata } from '../src/types' +import { expect } from 'chai' + +const NO_DEPS = 'lib/fixtures/no-deps.js' +const SYNC_DEPS = 'lib/fixtures/sync-deps.js' +const DEEP_SYNC_DEPS = 'lib/fixtures/deep-sync-deps.js' +const KEEP_JS = 'lib/keep.js' + +const allIds = [NO_DEPS, SYNC_DEPS, DEEP_SYNC_DEPS, KEEP_JS] + +/* + * + KEEP_JS + * | + * +---- DEEP_SYNC_DEPS + * | | + * | | + * | + --- SYNC_DEPS + * | | + * | +--- NO_DEPS + * | + * +--- SYNC_DEPS + * | + * +--- NO_DEPS + */ + +const inputs: Metadata['inputs'] = { + 'lib/fixtures/no-deps.js': { + imports: [], + }, + 'lib/fixtures/sync-deps.js': { + imports: [ + { + path: 'lib/fixtures/no-deps.js', + kind: 'require-call', + }, + ], + }, + 'lib/fixtures/deep-sync-deps.js': { + imports: [ + { + path: 'lib/fixtures/sync-deps.js', + kind: 'require-call', + }, + ], + }, + 'lib/keep.js': { + imports: [ + { + path: 'lib/fixtures/deep-sync-deps.js', + kind: 'require-call', + }, + { + path: 'lib/fixtures/sync-deps.js', + kind: 'require-call', + }, + ], + }, +} as unknown as Metadata['inputs'] + +const map = buildDependencyMap(inputs) +const dp = new DependencyMap(map) + +describe('dependency map', () => { + it('creates a map that is loaded but not cached', () => { + const loaded: Set = new Set() + const cache: Record = {} + + for (const id of allIds) { + expect(dp.loadedButNotCached(id, loaded, cache), `${id} not 'loaded but not cached'`).to.be.false + } + + for (const id of allIds) { + cache[id] = {} as NodeModule + loaded.add(id) + } + for (const id of allIds) { + expect(dp.loadedButNotCached(id, loaded, cache), `${id} not 'loaded but not cached'`).to.be.false + } + + delete cache[NO_DEPS] + + for (const id of allIds) { + const res = id === NO_DEPS + + expect(dp.loadedButNotCached(id, loaded, cache)).to.equal(res, `${id} ${res ? '' : 'not '} 'loaded but not cached'`) + } + + delete cache[SYNC_DEPS] + + for (const id of allIds) { + const res = id === NO_DEPS || id === SYNC_DEPS + + expect(dp.loadedButNotCached(id, loaded, cache)).to.equal(res, `${id} ${res ? '' : 'not '} 'loaded but not cached'`) + } + }) + + it('creates a map with a critical dependency loaded but not cached', () => { + const loaded: Set = new Set() + const cache: Record = {} + + const load = (id: string) => { + cache[id] = {} as NodeModule + loaded.add(id) + } + + load(NO_DEPS) + + expect(dp.criticalDependencyLoadedButNotCached(SYNC_DEPS, loaded, cache), 'SYNC_DEPS needs no reload').to.be.false + + delete cache[NO_DEPS] + + expect(dp.criticalDependencyLoadedButNotCached(SYNC_DEPS, loaded, cache), 'SYNC_DEPS needs reload since not in cache and NO_DEPS is direct dep').to.be.true + + expect(dp.criticalDependencyLoadedButNotCached(DEEP_SYNC_DEPS, loaded, cache), 'DEEP_SYNC_DEPS needs reload since a cache free path to NO_DEPS exists').to.be.true + + expect(dp.criticalDependencyLoadedButNotCached(KEEP_JS, loaded, cache), 'KEEP_JS needs reload since a cache free path to NO_DEPS exists').to.be.true + + load(SYNC_DEPS) + + expect(dp.criticalDependencyLoadedButNotCached(DEEP_SYNC_DEPS, loaded, cache), 'DEEP_SYNC_DEPS needs no reload since no cache free path to NO_DEPS exists').to.be.false + + expect(dp.criticalDependencyLoadedButNotCached(KEEP_JS, loaded, cache), 'KEEP_JS needs no reload since no cache free path to NO_DEPS exists').to.be.false + }) +}) diff --git a/packages/v8-snapshot-require/tsconfig.json b/packages/v8-snapshot-require/tsconfig.json new file mode 100644 index 0000000000..cc93411622 --- /dev/null +++ b/packages/v8-snapshot-require/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../ts/tsconfig.json", + "include": ["src", "scripts/snapshot-generate-entry-via-deps.ts"], + "compilerOptions": { + "lib": ["esnext"], + "outDir": "./dist", + "allowJs": true, + }, +} diff --git a/scripts/after-pack-hook.js b/scripts/after-pack-hook.js index 28720c55e3..239314877b 100644 --- a/scripts/after-pack-hook.js +++ b/scripts/after-pack-hook.js @@ -4,6 +4,9 @@ const { join } = require('path') const glob = require('glob') const os = require('os') const path = require('path') +const { setupV8Snapshots } = require('@tooling/v8-snapshot') +const { flipFuses, FuseVersion, FuseV1Options } = require('@electron/fuses') +const { cleanup } = require('./binary/binary-cleanup') module.exports = async function (params) { console.log('****************************') @@ -44,4 +47,23 @@ module.exports = async function (params) { await fs.copy(distNodeModules, appNodeModules) console.log('all node_modules subfolders copied to', outputFolder) + + const exePathPerPlatform = { + darwin: join(params.appOutDir, 'Cypress.app', 'Contents', 'MacOS', 'Cypress'), + linux: join(params.appOutDir, 'Cypress'), + win32: join(params.appOutDir, 'Cypress.exe'), + } + + if (!['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE)) { + await flipFuses( + exePathPerPlatform[os.platform()], + { + version: FuseVersion.V1, + [FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true, + }, + ) + + await setupV8Snapshots(params.appOutDir) + await cleanup(outputFolder) + } } diff --git a/scripts/binary/binary-cleanup.js b/scripts/binary/binary-cleanup.js new file mode 100644 index 0000000000..47ac4c6867 --- /dev/null +++ b/scripts/binary/binary-cleanup.js @@ -0,0 +1,191 @@ +const fs = require('fs-extra') +const path = require('path') +const { consolidateDeps } = require('@tooling/v8-snapshot') +const del = require('del') +const esbuild = require('esbuild') +const snapshotMetadata = require('@tooling/v8-snapshot/cache/prod-darwin/snapshot-meta.cache.json') +const tempDir = require('temp-dir') +const workingDir = path.join(tempDir, 'binary-cleanup-workdir') + +fs.ensureDirSync(workingDir) + +async function removeEmptyDirectories (directory) { + // lstat does not follow symlinks (in contrast to stat) + const fileStats = await fs.lstat(directory) + + if (!fileStats.isDirectory()) { + return + } + + let fileNames = await fs.readdir(directory) + + if (fileNames.length > 0) { + const recursiveRemovalPromises = fileNames.map( + (fileName) => removeEmptyDirectories(path.join(directory, fileName)), + ) + + await Promise.all(recursiveRemovalPromises) + + // re-evaluate fileNames; after deleting subdirectory + // we may have parent directory empty now + fileNames = await fs.readdir(directory) + } + + if (fileNames.length === 0) { + await fs.rmdir(directory) + } +} + +const getDependencyPathsToKeep = async () => { + let entryPoints = new Set([ + // This is the entry point for the server bundle. It will not have access to the snapshot yet. It needs to be kept in the binary + require.resolve('@packages/server/index.js'), + // This is a dynamic import that is used to load the snapshot require logic. It will not have access to the snapshot yet. It needs to be kept in the binary + require.resolve('@packages/server/hook-require.js'), + // These dependencies are started in a new process or thread and will not have access to the snapshot. They need to be kept in the binary + require.resolve('@packages/server/lib/plugins/child/require_async_child.js'), + require.resolve('@packages/server/lib/plugins/child/register_ts_node.js'), + require.resolve('@packages/rewriter/lib/threads/worker.ts'), + // These dependencies use the `require.resolve(, { paths: [] })` pattern where is a path within the cypress monorepo. These will not be + // pulled in by esbuild but still need to be kept in the binary. + require.resolve('webpack'), + require.resolve('webpack-dev-server', { paths: [path.join(__dirname, '..', '..', 'npm', 'webpack-dev-server')] }), + require.resolve('html-webpack-plugin-4', { paths: [path.join(__dirname, '..', '..', 'npm', 'webpack-dev-server')] }), + require.resolve('html-webpack-plugin-5', { paths: [path.join(__dirname, '..', '..', 'npm', 'webpack-dev-server')] }), + // These dependencies are completely dynamic using the pattern `require(`./${name}`)` and will not be pulled in by esbuild but still need to be kept in the binary. + ...['ibmi', + 'sunos', + 'android', + 'darwin', + 'freebsd', + 'linux', + 'openbsd', + 'sunos', + 'win32'].map((platform) => require.resolve(`default-gateway/${platform}`)), + ]) + let esbuildResult + let newEntryPointsFound = true + + // The general idea here is to run esbuild on entry points that are used outside of the snapshot. If, during the process, + // we find places where we do a require.resolve on a module, that should be treated as an additional entry point and we run + // esbuild again. We do this until we no longer find any new entry points. The resulting metafile inputs are + // the dependency paths that we need to ensure stay in the snapshot. + while (newEntryPointsFound) { + esbuildResult = await esbuild.build({ + entryPoints: [...entryPoints], + bundle: true, + outdir: workingDir, + platform: 'node', + metafile: true, + external: [ + './packages/server/server-entry', + 'fsevents', + 'pnpapi', + '@swc/core', + 'emitter', + ], + }) + + newEntryPointsFound = false + esbuildResult.warnings.forEach((warning) => { + const matches = warning.text.match(/"(.*)" should be marked as external for use with "require.resolve"/) + const warningSubject = matches && matches[1] + + if (warningSubject) { + let entryPoint + + if (warningSubject.startsWith('.')) { + entryPoint = path.join(__dirname, '..', '..', path.dirname(warning.location.file), warningSubject) + } else { + entryPoint = require.resolve(warningSubject) + } + + if (path.extname(entryPoint) !== '' && !entryPoints.has(entryPoint)) { + newEntryPointsFound = true + entryPoints.add(entryPoint) + } + } + }) + } + + return [...Object.keys(esbuildResult.metafile.inputs), ...entryPoints] +} + +const cleanup = async (buildAppDir) => { + // 1. Retrieve all dependencies that still need to be kept in the binary. In theory, we could use the bundles generated here as single files within the binary, + // but for now, we just track on the dependencies that get pulled in + const keptDependencies = [...await getDependencyPathsToKeep(), 'package.json', 'packages/server/server-entry.js'] + + // 2. Gather the dependencies that could potentially be removed from the binary due to being in the snapshot + const potentiallyRemovedDependencies = [...snapshotMetadata.healthy, ...snapshotMetadata.deferred, ...snapshotMetadata.norewrite] + + // 3. Remove all dependencies that are in the snapshot but not in the list of kept dependencies from the binary + await Promise.all(potentiallyRemovedDependencies.map(async (dependency) => { + // marionette-client requires all of its dependencies in a very non-standard dynamic way. We will keep anything in marionette-client + if (!keptDependencies.includes(dependency.slice(2)) && !dependency.includes('marionette-client')) { + await fs.remove(path.join(buildAppDir, dependency.replace(/.ts$/, '.js'))) + } + })) + + // 4. Consolidate dependencies that are safe to consolidate (`lodash` and `bluebird`) + await consolidateDeps({ projectBaseDir: buildAppDir }) + + // 5. Remove various unnecessary files from the binary to further clean things up. Likely, there is additional work that can be done here + await del([ + // Remove test files + path.join(buildAppDir, '**', 'test'), + path.join(buildAppDir, '**', 'tests'), + // What we need of prettier is entirely encapsulated within the v8 snapshot, but has a few leftover large files + path.join(buildAppDir, '**', 'prettier', 'esm'), + path.join(buildAppDir, '**', 'prettier', 'standalone.js'), + path.join(buildAppDir, '**', 'prettier', 'bin-prettier.js'), + // ESM files are mostly not needed currently + path.join(buildAppDir, '**', '@babel', '**', 'esm'), + path.join(buildAppDir, '**', 'ramda', 'es'), + path.join(buildAppDir, '**', 'jimp', 'es'), + path.join(buildAppDir, '**', '@jimp', '**', 'es'), + path.join(buildAppDir, '**', 'nexus', 'dist-esm'), + path.join(buildAppDir, '**', '@graphql-tools', '**', '*.mjs'), + path.join(buildAppDir, '**', 'graphql', '**', '*.mjs'), + // We currently do not use any map files + path.join(buildAppDir, '**', '*js.map'), + // License files need to be kept + path.join(buildAppDir, '**', '!(LICENSE|license|License).md'), + // These are type related files that are not used within the binary + path.join(buildAppDir, '**', '*.d.ts'), + path.join(buildAppDir, '**', 'ajv', 'lib', '**', '*.ts'), + path.join(buildAppDir, '**', '*.flow'), + // Example files are not needed + path.join(buildAppDir, '**', 'jimp', 'browser', 'examples'), + // Documentation files are not needed + path.join(buildAppDir, '**', 'JSV', 'jsdoc-toolkit'), + path.join(buildAppDir, '**', 'JSV', 'docs'), + path.join(buildAppDir, '**', 'fluent-ffmpeg', 'doc'), + // Files used as part of prebuilding are not necessary + path.join(buildAppDir, '**', 'registry-js', 'prebuilds'), + path.join(buildAppDir, '**', '*.cc'), + path.join(buildAppDir, '**', '*.o'), + path.join(buildAppDir, '**', '*.c'), + path.join(buildAppDir, '**', '*.h'), + // Remove distributions that are not needed in the binary + path.join(buildAppDir, '**', 'ramda', 'dist'), + path.join(buildAppDir, '**', 'jimp', 'browser'), + path.join(buildAppDir, '**', '@jimp', '**', 'src'), + path.join(buildAppDir, '**', 'nexus', 'src'), + path.join(buildAppDir, '**', 'source-map', 'dist'), + path.join(buildAppDir, '**', 'source-map-js', 'dist'), + path.join(buildAppDir, '**', 'pako', 'dist'), + path.join(buildAppDir, '**', 'node-forge', 'dist'), + path.join(buildAppDir, '**', 'pngjs', 'browser.js'), + path.join(buildAppDir, '**', 'plist', 'dist'), + // Remove yarn locks + path.join(buildAppDir, '**', 'yarn.lock'), + ], { force: true }) + + // 6. Remove any empty directories as a result of the rest of the cleanup + await removeEmptyDirectories(buildAppDir) +} + +module.exports = { + cleanup, +} diff --git a/scripts/binary/build.ts b/scripts/binary/build.ts index 08b82b7a29..5b39e33f5c 100644 --- a/scripts/binary/build.ts +++ b/scripts/binary/build.ts @@ -18,6 +18,7 @@ import { transformRequires } from './util/transform-requires' import execa from 'execa' import { testStaticAssets } from './util/testStaticAssets' import performanceTracking from '../../system-tests/lib/performance' +import verify from '../../cli/lib/tasks/verify' const globAsync = promisify(glob) @@ -173,6 +174,10 @@ export async function buildCypressApp (options: BuildCypressAppOpts) { }, { spaces: 2 }) fs.writeFileSync(meta.distDir('index.js'), `\ +${!['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE) ? +`if (!global.snapshotResult && process.versions?.electron) { + throw new Error('global.snapshotResult is not defined. This binary has been built incorrectly.') +}` : ''} process.env.CYPRESS_INTERNAL_ENV = process.env.CYPRESS_INTERNAL_ENV || 'production' require('./packages/server')\ `) @@ -196,8 +201,8 @@ require('./packages/server')\ await transformRequires(meta.distDir()) - log(`#testVersion ${meta.distDir()}`) - await testVersion(meta.distDir(), version) + log(`#testDistVersion ${meta.distDir()}`) + await testDistVersion(meta.distDir(), version) log('#testStaticAssets') await testStaticAssets(meta.distDir()) @@ -249,9 +254,18 @@ require('./packages/server')\ console.log('electron-builder arguments:') console.log(args.join(' ')) + // Update the root package.json with the next app version so that it is snapshot properly + fs.writeJSONSync(path.join(CY_ROOT_DIR, 'package.json'), { + ...jsonRoot, + version, + }, { spaces: 2 }) + try { await execa('electron-builder', args, { stdio: 'inherit', + env: { + NODE_OPTIONS: '--max_old_space_size=8192', + }, }) } catch (e) { if (!skipSigning) { @@ -259,6 +273,9 @@ require('./packages/server')\ } } + // Revert the root package.json so that subsequent steps will work properly + fs.writeJSONSync(path.join(CY_ROOT_DIR, 'package.json'), jsonRoot, { spaces: 2 }) + await checkMaxPathLength() // lsDistFolder @@ -268,9 +285,6 @@ require('./packages/server')\ console.log(stdout) - // testVersion(buildAppDir) - await testVersion(meta.buildAppDir(), version) - // runSmokeTests let usingXvfb = xvfb.isNeeded() @@ -279,6 +293,9 @@ require('./packages/server')\ await xvfb.start() } + log(`#testExecutableVersion ${meta.buildAppExecutable()}`) + await testExecutableVersion(meta.buildAppExecutable(), version) + const executablePath = meta.buildAppExecutable() await smoke.test(executablePath) @@ -358,23 +375,46 @@ function getIconFilename () { return iconFilename } -async function testVersion (dir: string, version: string) { +async function testDistVersion (distDir: string, version: string) { log('#testVersion') console.log('testing dist package version') console.log('by calling: node index.js --version') - console.log('in the folder %s', dir) + console.log('in the folder %s', distDir) const result = await execa('node', ['index.js', '--version'], { - cwd: dir, + cwd: distDir, }) la(result.stdout, 'missing output when getting built version', result) - console.log('app in %s', dir) + console.log('app in %s', distDir) console.log('built app version', result.stdout) - la(result.stdout === version, 'different version reported', + la(result.stdout.trim() === version.trim(), 'different version reported', result.stdout, 'from input version to build', version) console.log('✅ using node --version works') } + +async function testExecutableVersion (buildAppExecutable: string, version: string) { + log('#testVersion') + + console.log('testing built app executable version') + console.log(`by calling: ${buildAppExecutable} --version`) + + const args = ['--version'] + + if (verify.needsSandbox()) { + args.push('--no-sandbox') + } + + const result = await execa(buildAppExecutable, args) + + la(result.stdout, 'missing output when getting built version', result) + + console.log('built app version', result.stdout) + la(result.stdout.trim() === version.trim(), 'different version reported', + result.stdout, 'from input version to build', version) + + console.log('✅ using --version on the Cypress binary works') +} diff --git a/scripts/binary/get-config.js b/scripts/binary/get-config.js deleted file mode 100644 index 56a431bad2..0000000000 --- a/scripts/binary/get-config.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Safer konfig load for test code. The original konfig changes the - * current working directory, thus the tests might be affected - * unexpectedly. This function loads the konfig, but then - * restores the current working directory. - * - * The tests should use this function to get `konfig` function like - * - * @example - * const konfig = require('../binary/get-config')() - */ -const getConfig = () => { - const cwd = process.cwd() - const konfig = require('../../packages/server/lib/konfig') - - // restore previous cwd in case it was changed by loading "konfig" - process.chdir(cwd) - - return konfig -} - -module.exports = getConfig diff --git a/scripts/binary/smoke.js b/scripts/binary/smoke.js index 6d8034062e..72b17b2599 100644 --- a/scripts/binary/smoke.js +++ b/scripts/binary/smoke.js @@ -160,6 +160,47 @@ const runFailingProjectTest = function (buildAppExecutable, e2e) { .then(verifyScreenshots) } +const runV8SnapshotProjectTest = function (buildAppExecutable, e2e) { + if (shouldSkipProjectTest()) { + console.log('skipping failing project test') + + return Promise.resolve() + } + + console.log('running v8 snapshot project test') + + const spawn = () => { + return new Promise((resolve, reject) => { + const env = _.omit(process.env, 'CYPRESS_INTERNAL_ENV') + + const args = [ + `--run-project=${e2e}`, + `--spec=${e2e}/cypress/e2e/simple_v8_snapshot.cy.js`, + ] + + if (verify.needsSandbox()) { + args.push('--no-sandbox') + } + + const options = { + stdio: 'inherit', + env, + } + + return cp.spawn(buildAppExecutable, args, options) + .on('exit', (code) => { + if (code === 0) { + return resolve() + } + + return reject(new Error(`running project tests failed with: '${code}' errors.`)) + }) + }) + } + + return spawn() +} + const test = async function (buildAppExecutable) { await scaffoldCommonNodeModules() await Fixtures.scaffoldProject('e2e') @@ -168,6 +209,10 @@ const test = async function (buildAppExecutable) { await runSmokeTest(buildAppExecutable) await runProjectTest(buildAppExecutable, e2e) await runFailingProjectTest(buildAppExecutable, e2e) + if (!['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE)) { + await runV8SnapshotProjectTest(buildAppExecutable, e2e) + } + Fixtures.remove() } diff --git a/scripts/binary/util/upload.js b/scripts/binary/util/upload.js index 4f9005160f..ed5724541e 100644 --- a/scripts/binary/util/upload.js +++ b/scripts/binary/util/upload.js @@ -7,11 +7,12 @@ const os = require('os') const Promise = require('bluebird') const { fromSSO, fromEnv } = require('@aws-sdk/credential-providers') -const konfig = require('../get-config')() const { purgeCloudflareCache } = require('./purge-cloudflare-cache') +const CDN_URL = 'https://cdn.cypress.io' + const getUploadUrl = function () { - const url = konfig('cdn_url') + const url = CDN_URL la(check.url(url), 'could not get CDN url', url) diff --git a/scripts/gulp/gulpConstants.ts b/scripts/gulp/gulpConstants.ts index d6afba3859..4ab970a136 100644 --- a/scripts/gulp/gulpConstants.ts +++ b/scripts/gulp/gulpConstants.ts @@ -11,10 +11,10 @@ declare global { /** * Gulp is only used for running the application during development. At this point of starting the app, * process.env.CYPRESS_INTERNAL_ENV has not been set yet unless explicitly set on the command line. If not - * set on the command line, it is set to 'development' [here](https://github.com/cypress-io/cypress/blob/a5ec234005fead97f6cfdf611abf8d9f4ad0565d/packages/server/lib/environment.js#L22) + * set on the command line, it is set to 'development' [here](https://github.com/cypress-io/cypress/blob/develop/packages/server/lib/environment.js#L22) * * When running in a production build, a file is written out to set CYPRESS_INTERNAL_ENV to 'production' - * [here](https://github.com/cypress-io/cypress/blob/a5ec234005fead97f6cfdf611abf8d9f4ad0565d/scripts/binary/build.ts#L176). + * [here](https://github.com/cypress-io/cypress/blob/develop/scripts/binary/build.ts#L176). * However, running in production will not use the code in this file. */ @@ -34,14 +34,14 @@ export const ENV_VARS = { // Uses the "built" vite assets, not the served ones DEV_OPEN: { - CYPRESS_KONFIG_ENV: DEFAULT_INTERNAL_CLOUD_ENV, // TODO: Change this / remove konfig + CYPRESS_CONFIG_ENV: DEFAULT_INTERNAL_CLOUD_ENV, // TODO: Change this / remove config CYPRESS_INTERNAL_CLOUD_ENV: DEFAULT_INTERNAL_CLOUD_ENV, CYPRESS_INTERNAL_EVENT_COLLECTOR_ENV: DEFAULT_INTERNAL_EVENT_COLLECTOR_ENV, }, // Used when we're running Cypress in true "development" mode DEV: { - CYPRESS_KONFIG_ENV: DEFAULT_INTERNAL_CLOUD_ENV, // TODO: Change this / remove konfig + CYPRESS_CONFIG_ENV: DEFAULT_INTERNAL_CLOUD_ENV, // TODO: Change this / remove config CYPRESS_INTERNAL_CLOUD_ENV: DEFAULT_INTERNAL_CLOUD_ENV, CYPRESS_INTERNAL_EVENT_COLLECTOR_ENV: DEFAULT_INTERNAL_EVENT_COLLECTOR_ENV, }, diff --git a/scripts/gulp/monorepoPaths.ts b/scripts/gulp/monorepoPaths.ts index fb43eb7552..92fc9e4c84 100644 --- a/scripts/gulp/monorepoPaths.ts +++ b/scripts/gulp/monorepoPaths.ts @@ -21,6 +21,7 @@ export const monorepoPaths = { pkgLaunchpad: path.join(__dirname, '../../packages/launchpad'), pkgNetStubbing: path.join(__dirname, '../../packages/net-stubbing'), pkgNetwork: path.join(__dirname, '../../packages/network'), + pkgPackherdRequire: path.join(__dirname, '../../packages/packherd-require'), pkgProxy: path.join(__dirname, '../../packages/proxy'), pkgReporter: path.join(__dirname, '../../packages/reporter'), pkgResolveDist: path.join(__dirname, '../../packages/resolve-dist'), @@ -32,5 +33,6 @@ export const monorepoPaths = { pkgSocket: path.join(__dirname, '../../packages/socket'), pkgTs: path.join(__dirname, '../../packages/ts'), pkgTypes: path.join(__dirname, '../../packages/types'), + pkgV8SnapshotRequire: path.join(__dirname, '../../packages/v8-snapshot-require'), pkgWebConfig: path.join(__dirname, '../../packages/web-config') } as const diff --git a/scripts/run-postInstall.js b/scripts/run-postInstall.js index b590ac0aae..574e0c1e18 100644 --- a/scripts/run-postInstall.js +++ b/scripts/run-postInstall.js @@ -3,7 +3,7 @@ const { execSync } = require('child_process') const executionEnv = process.env.CI ? 'ci' : 'local' const postInstallCommands = { - local: 'patch-package && yarn-deduplicate --strategy=highest && yarn clean && gulp postinstall && yarn build', + local: 'patch-package && yarn-deduplicate --strategy=highest && yarn clean && gulp postinstall && yarn build && yarn build-v8-snapshot-dev', ci: 'patch-package && yarn clean && gulp postinstall', } diff --git a/scripts/unit/konfig-spec.js b/scripts/unit/konfig-spec.js deleted file mode 100644 index 346b417414..0000000000 --- a/scripts/unit/konfig-spec.js +++ /dev/null @@ -1,46 +0,0 @@ -const la = require('lazy-ass') -const is = require('check-more-types') -const { join } = require('path') - -/* eslint-env mocha */ -describe('konfig check', () => { - /* - script tests should NOT suddenly change the current working directory to - packages/server - otherwise the local path filenames might be all wrong - and unexpected. The current working directory changes when we - require `packages/server/lib/konfig` which in turn requires - `lib/cwd` which changes CWD. - - From the scripts unit tests we should not use `lib/konfig` directly, - instead we should use `binary/get-config` script to get the konfig function. - */ - - let cwd - - before(() => { - cwd = process.cwd() - la( - !cwd.includes(join('packages', 'server')), - 'process CWD is set to', - cwd, - 'for some reason', - ) - // if the above assertion breaks, it means some script in binary scripts - // loads "lib/konfig" directly, which unexpectedly changes the CWD. - }) - - it('does not change CWD on load', () => { - const konfig = require('../binary/get-config')() - const cwdAfter = process.cwd() - - la( - cwd === cwdAfter, - 'previous cwd', - cwd, - 'differs after loading konfig', - cwdAfter, - ) - - la(is.fn(konfig), 'expected konfig to be a function', konfig) - }) -}) diff --git a/scripts/unit/verify-mocha-results-spec.js b/scripts/unit/verify-mocha-results-spec.js index 225867546e..69ca8ff5aa 100644 --- a/scripts/unit/verify-mocha-results-spec.js +++ b/scripts/unit/verify-mocha-results-spec.js @@ -3,89 +3,79 @@ const sinon = require('sinon') const { expect } = require('chai') const { verifyMochaResults } = require('../verify-mocha-results') -describe('verify-mocha-results', () => { - let cachedEnv = { ...process.env } +if (process.platform !== 'win32') { + describe('verify-mocha-results', () => { + let cachedEnv = { ...process.env } - if (process.platform === 'win32') { - // skip the rest of the tests - return it('fails on windows', async () => { - try { - await verifyMochaResults() - throw new Error('should not reach') - } catch (err) { - expect(err.message).to.equal('verifyMochaResults not supported on Windows') - } + afterEach(() => { + sinon.restore() + Object.assign(process.env, cachedEnv) }) - } - afterEach(() => { - sinon.restore() - Object.assign(process.env, cachedEnv) - }) + beforeEach(() => { + process.env.CIRCLE_INTERNAL_CONFIG = '/foo.json' + sinon.stub(fs, 'readFile') + .withArgs('/foo.json').resolves(JSON.stringify({ + Dispatched: { TaskInfo: { Environment: { somekey: 'someval' } } }, + })) - beforeEach(() => { - process.env.CIRCLE_INTERNAL_CONFIG = '/foo.json' - sinon.stub(fs, 'readFile') - .withArgs('/foo.json').resolves(JSON.stringify({ - Dispatched: { TaskInfo: { Environment: { somekey: 'someval' } } }, - })) - - sinon.stub(fs, 'readdir').withArgs('/tmp/cypress/junit').resolves([ - 'report.xml', - ]) - }) - - it('does not fail with normal report', async () => { - fs.readFile - .withArgs('/tmp/cypress/junit/report.xml') - .resolves('') - - await verifyMochaResults() - }) - - context('env checking', () => { - it('checks for protected env and fails and removes results when found', async () => { - const spy = sinon.stub(fs, 'rm').withArgs('/tmp/cypress/junit', { recursive: true, force: true }) + sinon.stub(fs, 'readdir').withArgs('/tmp/cypress/junit').resolves([ + 'report.xml', + ]) + }) + it('does not fail with normal report', async () => { fs.readFile .withArgs('/tmp/cypress/junit/report.xml') - .resolves('someval') + .resolves('') - try { - await verifyMochaResults() - throw new Error('should not reach') - } catch (err) { - expect(err.message).to.include('somekey').and.not.include('someval') - expect(spy.getCalls().length).to.equal(1) - } + await verifyMochaResults() + }) + + context('env checking', () => { + it('checks for protected env and fails and removes results when found', async () => { + const spy = sinon.stub(fs, 'rm').withArgs('/tmp/cypress/junit', { recursive: true, force: true }) + + fs.readFile + .withArgs('/tmp/cypress/junit/report.xml') + .resolves('someval') + + try { + await verifyMochaResults() + throw new Error('should not reach') + } catch (err) { + expect(err.message).to.include('somekey').and.not.include('someval') + expect(spy.getCalls().length).to.equal(1) + } + }) + }) + + context('test result checking', () => { + it('checks for non-passing tests and fails when found', async () => { + fs.readFile + .withArgs('/tmp/cypress/junit/report.xml') + .resolves('') + + try { + await verifyMochaResults() + throw new Error('should not reach') + } catch (err) { + expect(err.message).to.include('Expected the number of failures to be equal to 0') + } + }) + + it('checks for 0 tests run and fails when found', async () => { + fs.readFile + .withArgs('/tmp/cypress/junit/report.xml') + .resolves('') + + try { + await verifyMochaResults() + throw new Error('should not reach') + } catch (err) { + expect(err.message).to.include('Expected the total number of tests to be >0') + } + }) }) }) - - context('test result checking', () => { - it('checks for non-passing tests and fails when found', async () => { - fs.readFile - .withArgs('/tmp/cypress/junit/report.xml') - .resolves('') - - try { - await verifyMochaResults() - throw new Error('should not reach') - } catch (err) { - expect(err.message).to.include('Expected the number of failures to be equal to 0') - } - }) - - it('checks for 0 tests run and fails when found', async () => { - fs.readFile - .withArgs('/tmp/cypress/junit/report.xml') - .resolves('') - - try { - await verifyMochaResults() - throw new Error('should not reach') - } catch (err) { - expect(err.message).to.include('Expected the total number of tests to be >0') - } - }) - }) -}) +} diff --git a/scripts/verify-mocha-results.js b/scripts/verify-mocha-results.js index e2eb33eea7..3637bb796b 100644 --- a/scripts/verify-mocha-results.js +++ b/scripts/verify-mocha-results.js @@ -95,8 +95,6 @@ async function checkReportFiles (filenames) { } async function verifyMochaResults () { - if (process.platform === 'win32') throw new Error('verifyMochaResults not supported on Windows') - try { const filenames = await fs.readdir(REPORTS_PATH) diff --git a/system-tests/__snapshots__/cdp_spec.ts.js b/system-tests/__snapshots__/cdp_spec.ts.js index d8c4a22ef1..ae59f97236 100644 --- a/system-tests/__snapshots__/cdp_spec.ts.js +++ b/system-tests/__snapshots__/cdp_spec.ts.js @@ -23,6 +23,4 @@ There was an error reconnecting to the Chrome DevTools protocol. Please restart Error: connect ECONNREFUSED 127.0.0.1:7777 [stack trace lines] - - ` diff --git a/system-tests/__snapshots__/non_root_read_only_fs_spec.ts.js b/system-tests/__snapshots__/non_root_read_only_fs_spec.ts.js index 53ede24f60..db275fd8c4 100644 --- a/system-tests/__snapshots__/non_root_read_only_fs_spec.ts.js +++ b/system-tests/__snapshots__/non_root_read_only_fs_spec.ts.js @@ -34,7 +34,6 @@ If you don't require screenshots or videos to be stored you can safely ignore th 1) fails: Error: EACCES: permission denied, mkdir '/foo/bar/.projects/read-only-project-root/cypress/screenshots' - diff --git a/system-tests/__snapshots__/reporters_spec.js b/system-tests/__snapshots__/reporters_spec.js index 7faea5f0e0..e296872898 100644 --- a/system-tests/__snapshots__/reporters_spec.js +++ b/system-tests/__snapshots__/reporters_spec.js @@ -9,18 +9,7 @@ We searched for the reporter in these paths: Learn more at https://on.cypress.io/reporters Error: Cannot find module '/foo/bar/.projects/e2e/node_modules/module-does-not-exist' -Require stack: -- lib/reporter.js -- lib/project-base.ts -- lib/open_project.ts -- lib/makeDataContext.ts -- lib/modes/index.ts -- lib/cypress.js -- index.js -- [stack trace lines] - - ` exports['e2e reporters supports junit reporter and reporter options 1'] = ` @@ -675,8 +664,6 @@ Learn more at https://on.cypress.io/reporters Error: this reporter threw an error [stack trace lines] - - ` exports['e2e reporters supports teamcity reporter and reporter options 1'] = ` diff --git a/system-tests/__snapshots__/web_security_spec.js b/system-tests/__snapshots__/web_security_spec.js index 63a1685e4a..0b96319482 100644 --- a/system-tests/__snapshots__/web_security_spec.js +++ b/system-tests/__snapshots__/web_security_spec.js @@ -255,7 +255,6 @@ This error will not alter the exit code. TimeoutError: operation timed out [stack trace lines] - (Results) ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ diff --git a/system-tests/lib/dep-installer/index.ts b/system-tests/lib/dep-installer/index.ts index 67babfbab1..460046b8f7 100644 --- a/system-tests/lib/dep-installer/index.ts +++ b/system-tests/lib/dep-installer/index.ts @@ -148,7 +148,15 @@ async function makeWorkspacePackagesAbsolute (pathToPkgJson: string): Promise { +export async function scaffoldProjectNodeModules ({ + project, + updateLockFile = !!process.env.UPDATE_LOCK_FILE, + forceCopyDependencies = false, +}: { + project: string + updateLockFile?: boolean + forceCopyDependencies?: boolean +}): Promise { const projectDir = projectPath(project) const relativePathToMonorepoRoot = path.relative( path.join(projects, project), @@ -195,7 +203,7 @@ export async function scaffoldProjectNodeModules (project: string, updateLockFil let persistCacheCb: () => Promise - if (hasYarnLock) { + if (hasYarnLock && !forceCopyDependencies) { await symlinkNodeModulesFromCache(tmpNodeModulesDir, cacheNodeModulesDir) } else { // due to an issue in NPM, we cannot have `node_modules` be a symlink. fall back to copying. @@ -300,7 +308,7 @@ export async function scaffoldCommonNodeModules () { ].map(symlinkNodeModule)) } -async function symlinkNodeModule (pkg) { +export async function symlinkNodeModule (pkg) { const from = path.join(cyTmpDir, 'node_modules', pkg) const to = pathToPackage(pkg) diff --git a/system-tests/lib/system-tests.ts b/system-tests/lib/system-tests.ts index f97f52c10c..0a7ced4f42 100644 --- a/system-tests/lib/system-tests.ts +++ b/system-tests/lib/system-tests.ts @@ -279,6 +279,7 @@ export type SpawnerResult = { on(event: 'error', cb: (err: Error) => void): void on(event: 'exit', cb: (exitCode: number) => void): void kill: ChildProcess['kill'] + pid: number } const cpSpawner: Spawner = (cmd, args, env, options) => { @@ -805,7 +806,7 @@ const systemTests = { // symlinks won't work via docker options.dockerImage || await DepInstaller.scaffoldCommonNodeModules() await Fixtures.scaffoldProject(options.project) - await DepInstaller.scaffoldProjectNodeModules(options.project) + await DepInstaller.scaffoldProjectNodeModules({ project: options.project }) } if (process.env.NO_EXIT) { diff --git a/system-tests/projects/e2e/cypress/e2e/simple_v8_snapshot.cy.js b/system-tests/projects/e2e/cypress/e2e/simple_v8_snapshot.cy.js new file mode 100644 index 0000000000..affa47bc99 --- /dev/null +++ b/system-tests/projects/e2e/cypress/e2e/simple_v8_snapshot.cy.js @@ -0,0 +1,6 @@ +describe('simple v8 snapshot spec', () => { + it('passes', () => { + // Snapshot result needs to be undefined in the renderer process + expect(window.snapshotResult).to.be.undefined + }) +}) diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/README.md b/system-tests/projects/v8-snapshot/deferred-from-healthy/README.md new file mode 100644 index 0000000000..e2c326aa2c --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/README.md @@ -0,0 +1,8 @@ +## v8-snapshot/deferred-from-healthy + +The goal of this project is to have a healthy dependency (healthy.js) that requires a deferred dependency (lib/deferred.js). First snapshot `entry.js`. You can then load up the +app by running: + +``` +electron -r ./hook-require.js ./app.js +``` diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/app.js b/system-tests/projects/v8-snapshot/deferred-from-healthy/app.js new file mode 100644 index 0000000000..3e4eda266b --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/app.js @@ -0,0 +1,5 @@ +const healthy = require('./healthy') + +// This entry invokes a function on healthy which would require a deferred module to be resolved. +// Therefore while healthy can be included in the snapshot, this entry module cannot. +console.log(JSON.stringify({ healthyCodeLen: healthy().length })) diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/entry.js b/system-tests/projects/v8-snapshot/deferred-from-healthy/entry.js new file mode 100644 index 0000000000..d550d81131 --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/entry.js @@ -0,0 +1,5 @@ +const healthy = require('./healthy') + +// This entry invokes a function on healthy which would require a deferred module to be resolved. +// Therefore while healthy can be included in the snapshot, this entry module cannot. +module.exports = healthy diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/healthy.js b/system-tests/projects/v8-snapshot/deferred-from-healthy/healthy.js new file mode 100644 index 0000000000..706172b6dd --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/healthy.js @@ -0,0 +1,9 @@ +// This module is inside the snapshot and requires one that is outside +// which means that the module negotiator has to resolve the relative path. +const deferred = require('./lib/deferred') + +function resolveDeferred () { + return deferred.toString() +} + +module.exports = resolveDeferred diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/hook-require.js b/system-tests/projects/v8-snapshot/deferred-from-healthy/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/lib/deferred.js b/system-tests/projects/v8-snapshot/deferred-from-healthy/lib/deferred.js new file mode 100644 index 0000000000..ab62ecfd39 --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/lib/deferred.js @@ -0,0 +1,7 @@ +const fs = require('fs') + +function accessfs () { + return fs.readFileSync(__filename) +} + +module.exports = accessfs() diff --git a/system-tests/projects/v8-snapshot/deferred-from-healthy/package.json b/system-tests/projects/v8-snapshot/deferred-from-healthy/package.json new file mode 100644 index 0000000000..053405bdf6 --- /dev/null +++ b/system-tests/projects/v8-snapshot/deferred-from-healthy/package.json @@ -0,0 +1,3 @@ +{ + "name": "deferred-from-healthy" +} diff --git a/system-tests/projects/v8-snapshot/esm/README.md b/system-tests/projects/v8-snapshot/esm/README.md new file mode 100644 index 0000000000..5c81c7883c --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/README.md @@ -0,0 +1,8 @@ +## v8-snapshot/esm + +The goal of this project is to load an esm module that in turn loads a lodash function. First snapshot `entry.mjs`. You can then load up the +app by running: + +``` +electron -r ./hook-require.js ./app.js +``` diff --git a/system-tests/projects/v8-snapshot/esm/app.js b/system-tests/projects/v8-snapshot/esm/app.js new file mode 100644 index 0000000000..ae62c663ae --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/app.js @@ -0,0 +1,3 @@ +const { start } = require('./entry.mjs') + +start() diff --git a/system-tests/projects/v8-snapshot/esm/entry.mjs b/system-tests/projects/v8-snapshot/esm/entry.mjs new file mode 100644 index 0000000000..6b9bbbcc3a --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/entry.mjs @@ -0,0 +1,11 @@ +import isObjectLike from 'lodash/isObjectLike' + +export function start() { + try { + const res = isObjectLike({ a: 1, b: 2 }) + console.log(JSON.stringify({ isObjectLike: res })) + } catch (err) { + console.error(err) + debugger + } +} diff --git a/system-tests/projects/v8-snapshot/esm/hook-require.js b/system-tests/projects/v8-snapshot/esm/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/esm/index.js b/system-tests/projects/v8-snapshot/esm/index.js new file mode 100644 index 0000000000..788a719e5a --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/index.js @@ -0,0 +1,32 @@ +'use strict' +exports.__esModule = true + +const { app, BrowserWindow } = require('electron') +const { start } = require('./entry.mjs') + +function createWindow () { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + }, + }) + + win.loadFile('index.html') + // @ts-ignore + win.toggleDevTools() + + const isObjectLike = require('lodash/isObjectLike') + const res = isObjectLike({ a: 1, b: 2 }) + + console.log(res) +} + +if (app != null) { + start() + app.whenReady().then(createWindow) +} else { + start() +} diff --git a/system-tests/projects/v8-snapshot/esm/package.json b/system-tests/projects/v8-snapshot/esm/package.json new file mode 100644 index 0000000000..801af12706 --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/package.json @@ -0,0 +1,9 @@ +{ + "name": "esm", + "dependencies": { + "lodash": "^4.17.21" + }, + "devDependencies": { + "@types/lodash": "^4.14.168" + } +} diff --git a/system-tests/projects/v8-snapshot/esm/yarn.lock b/system-tests/projects/v8-snapshot/esm/yarn.lock new file mode 100644 index 0000000000..43d44b8707 --- /dev/null +++ b/system-tests/projects/v8-snapshot/esm/yarn.lock @@ -0,0 +1,13 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/lodash@^4.14.168": + version "4.14.182" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== diff --git a/system-tests/projects/v8-snapshot/example-express/README.md b/system-tests/projects/v8-snapshot/example-express/README.md new file mode 100644 index 0000000000..113a4e937b --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/README.md @@ -0,0 +1,7 @@ +# express example + +This is a test project used to test generating `v8-snapshots` with an express dependency. You can generate the snapshot via: + +``` +node ./snapshot/install-snapshot.js +``` diff --git a/system-tests/projects/v8-snapshot/example-express/app/hook-require.js b/system-tests/projects/v8-snapshot/example-express/app/hook-require.js new file mode 100644 index 0000000000..e049a00b77 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/app/hook-require.js @@ -0,0 +1,9 @@ +// @ts-check +'use strict' + +const path = require('path') + +require('@packages/v8-snapshot-require').snapshotRequire(path.resolve(__dirname, '..'), { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/example-express/app/index.html b/system-tests/projects/v8-snapshot/example-express/app/index.html new file mode 100644 index 0000000000..59bb207143 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/app/index.html @@ -0,0 +1,11 @@ + + + + + Electron App + + +
+ + + diff --git a/system-tests/projects/v8-snapshot/example-express/app/index.js b/system-tests/projects/v8-snapshot/example-express/app/index.js new file mode 100644 index 0000000000..3f9a7a7598 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/app/index.js @@ -0,0 +1,54 @@ +const { app, BrowserWindow } = require('electron') + +let express + +function createWindow () { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + }, + }) + + win.loadFile('index.html') + win.toggleDevTools() + + loadExpress() + launchExpress() +} + +if (app != null) { + app.whenReady().then(createWindow) +} else { + loadExpress() + launchExpress() +} + +function loadExpress () { + console.time('init-express') + console.time('load-express') + express = require('express') + console.timeEnd('load-express') +} + +function launchExpress () { + // Requiring some module that is NOT inside the cache + // eslint-disable-next-line no-unused-vars + const router = require('express/lib/router/route.js') + // Requiring some module that IS inside the cache + // eslint-disable-next-line no-unused-vars + const accepts = require('accepts') + + const app = express() + + app.get('/', (req, res) => res.send('hello world')) + + const port = 3000 + + app.listen(port, () => { + console.log(`Example app listening at http://localhost:${port}`) + console.timeEnd('init-express') + }) +} diff --git a/system-tests/projects/v8-snapshot/example-express/app/renderer.js b/system-tests/projects/v8-snapshot/example-express/app/renderer.js new file mode 100644 index 0000000000..d2ff65b730 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/app/renderer.js @@ -0,0 +1,26 @@ +console.time('entire-startup') + +let express + +loadExpress() +launchExpress() + +function loadExpress () { + console.time('init-express') + console.time('load-express') + express = require('express') + console.timeEnd('load-express') +} + +function launchExpress () { + console.time('start-express-after-loaded') + const app = express() + const port = 3001 + + app.listen(port, () => { + console.log(`Example app listening at http://localhost:${port}`) + console.timeEnd('start-express-after-loaded') + console.timeEnd('init-express') + console.timeEnd('entire-startup') + }) +} diff --git a/system-tests/projects/v8-snapshot/example-express/package.json b/system-tests/projects/v8-snapshot/example-express/package.json new file mode 100644 index 0000000000..1144c36a42 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/package.json @@ -0,0 +1,21 @@ +{ + "name": "react-electron-example", + "version": "1.0.0", + "description": "Example app demonstrating how to use v8-snapshot.", + "private": false, + "scripts": { + "start-nohook": "electron app", + "start": "DEBUG='(packherd|snapgen):*' PROJECT_BASE_DIR=`pwd` electron -r ./app/hook-require.js app", + "start-quiet": "DEBUG='_' PROJECT_BASE_DIR=`pwd` electron -r ./app/hook-require.js app", + "start-no-snap": "DEBUG='_' electron app", + "start-as-node": "ELECTRON_RUN_AS_NODE=1 DEBUG='(packherd|snapgen):*' PROJECT_BASE_DIR=`pwd` electron -r ./app/hook-require.js app", + "debug": "DEBUG='(packherd|snapgen):*' PROJECT_BASE_DIR=`pwd` electron --inspect-brk -r ./app/hook-require.js app", + "install-snapshot": "DEBUG='(packherd|snapgen):(info|debug|error)*' node ./snapshot/install-snapshot.js", + "uninstall-snapshot": "DEBUG='(packherd|snapgen):*' node ./snapshot/uninstall-snapshot.js" + }, + "dependencies": { + "express": "^4.17.1" + }, + "license": "MIT", + "author": "Thorsten Lorenz " +} diff --git a/system-tests/projects/v8-snapshot/example-express/snapshot/install-snapshot.js b/system-tests/projects/v8-snapshot/example-express/snapshot/install-snapshot.js new file mode 100644 index 0000000000..fb30ee1c45 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/snapshot/install-snapshot.js @@ -0,0 +1,46 @@ +// @ts-check + +'use strict' +const path = require('path') +const { + SnapshotGenerator, + prettyPrintError, + generateBundlerMetadata, +} = require('@tooling/v8-snapshot') + +const projectBaseDir = path.join(__dirname, '../') +const snapshotEntryFile = require.resolve('./snapshot.js') +const appEntryFile = require.resolve('../app/index') + +const cacheDir = path.resolve(__dirname, '../cache') + +;(async () => { + try { + const meta = await generateBundlerMetadata( + projectBaseDir, + snapshotEntryFile, + { + entryFile: appEntryFile, + nodeModulesOnly: false, + }, + ) + + const snapshotGenerator = new SnapshotGenerator( + projectBaseDir, + snapshotEntryFile, + { + cacheDir, + minify: false, + nodeModulesOnly: false, + resolverMap: meta.resolverMap, + }, + ) + + await snapshotGenerator.createScript() + await snapshotGenerator.makeSnapshot() + snapshotGenerator.installSnapshot() + } catch (err) { + prettyPrintError(err, projectBaseDir) + console.error(err) + } +})() diff --git a/system-tests/projects/v8-snapshot/example-express/snapshot/snapshot.js b/system-tests/projects/v8-snapshot/example-express/snapshot/snapshot.js new file mode 100644 index 0000000000..2229baa1cb --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/snapshot/snapshot.js @@ -0,0 +1 @@ +module.exports = { express: require('express') } diff --git a/system-tests/projects/v8-snapshot/example-express/snapshot/uninstall-snapshot.js b/system-tests/projects/v8-snapshot/example-express/snapshot/uninstall-snapshot.js new file mode 100644 index 0000000000..45a8553af6 --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/snapshot/uninstall-snapshot.js @@ -0,0 +1,15 @@ +// @ts-check + +'use strict' +const path = require('path') +const { uninstallSnapshot } = require('../../') + +const projectBaseDir = path.join(__dirname, '../') + +;(() => { + try { + uninstallSnapshot(projectBaseDir) + } catch (err) { + console.error(err) + } +})() diff --git a/system-tests/projects/v8-snapshot/example-express/yarn.lock b/system-tests/projects/v8-snapshot/example-express/yarn.lock new file mode 100644 index 0000000000..e2f439148e --- /dev/null +++ b/system-tests/projects/v8-snapshot/example-express/yarn.lock @@ -0,0 +1,368 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity "sha1-UxvHJlF6OytB+FACHGzBXqq1B80= sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io= sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==" + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==" + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity "sha1-4TjMdeBAxyexlm/l5fjJruJW/js= sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity "sha1-4wOogrNCzD7oylE6eZmXNNqzriw= sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo= sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + dependencies: + ms "2.0.0" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ= sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==" + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0= sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= sha512-Ua9xNhH0b8pwE3yRbFfXJvfdWF0UHNCdeyb2sbi9Ul/M+r3PTdrz7Cv4SCfZRMjmzEM9PhraqfZFbGTIg3OMyA==" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity "sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==" + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + +mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==" + dependencies: + mime-db "1.44.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + dependencies: + ee-first "1.1.1" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity "sha1-oc5vucm8NWylLoklarWQWeE9AzI= sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==" + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity "sha1-mR7GnSluAxN0fVm9/St0XDX4go0= sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg= sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk= sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/README.md b/system-tests/projects/v8-snapshot/external-from-healthy/README.md new file mode 100644 index 0000000000..393905425d --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/README.md @@ -0,0 +1,8 @@ +## v8-snapshot/external-from-healthy + +The goal of this project is to load an external module (a fake bluebird) from a healthy module. First snapshot `entry.js`. You can then load up the +app by running: + +``` +electron -r ./hook-require.js ./app.js +``` diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/app.js b/system-tests/projects/v8-snapshot/external-from-healthy/app.js new file mode 100644 index 0000000000..288fa5093e --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/app.js @@ -0,0 +1,3 @@ +const healthy = require('./healthy') + +console.log(JSON.stringify({ healthyString: healthy() })) diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/bluebird.js b/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/bluebird.js new file mode 100644 index 0000000000..d53d048d68 --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/bluebird.js @@ -0,0 +1 @@ +module.exports = 'FAKE BLUEBIRD' diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/package.json b/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/package.json new file mode 100644 index 0000000000..b2e4808032 --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/bluebird/package.json @@ -0,0 +1,4 @@ +{ + "name": "bluebird", + "main": "bluebird.js" +} diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/entry.js b/system-tests/projects/v8-snapshot/external-from-healthy/entry.js new file mode 100644 index 0000000000..1e291e4722 --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/entry.js @@ -0,0 +1,5 @@ +const healthy = require('./healthy') + +// This entry invokes a function on healthy which would require an external module to be resolved. +// Therefore while healthy can be included in the snapshot, this entry module cannot. +module.exports = healthy diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/healthy.js b/system-tests/projects/v8-snapshot/external-from-healthy/healthy.js new file mode 100644 index 0000000000..1d5ef1b299 --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/healthy.js @@ -0,0 +1,8 @@ +// This module is inside the snapshot and requires one that is external by default. +const bluebird = require('bluebird') + +function resolveBluebird () { + return bluebird +} + +module.exports = resolveBluebird diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/hook-require.js b/system-tests/projects/v8-snapshot/external-from-healthy/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/external-from-healthy/package.json b/system-tests/projects/v8-snapshot/external-from-healthy/package.json new file mode 100644 index 0000000000..816183aa7b --- /dev/null +++ b/system-tests/projects/v8-snapshot/external-from-healthy/package.json @@ -0,0 +1,3 @@ +{ + "name": "external-from-healthy" +} diff --git a/system-tests/projects/v8-snapshot/minimal/README.md b/system-tests/projects/v8-snapshot/minimal/README.md new file mode 100644 index 0000000000..8d51dd12b1 --- /dev/null +++ b/system-tests/projects/v8-snapshot/minimal/README.md @@ -0,0 +1,3 @@ +## v8-snapshot/minimal + +The goal of this project is to use packherd to generate a bundle on a minimal project. `entry.js` is the entry point for the project diff --git a/system-tests/projects/v8-snapshot/minimal/entry.js b/system-tests/projects/v8-snapshot/minimal/entry.js new file mode 100644 index 0000000000..094eaf1c21 --- /dev/null +++ b/system-tests/projects/v8-snapshot/minimal/entry.js @@ -0,0 +1,4 @@ +const foo = require('./lib/foo') +const isobject = require('isobject') + +module.exports = isobject(foo) diff --git a/system-tests/projects/v8-snapshot/minimal/lib/foo.js b/system-tests/projects/v8-snapshot/minimal/lib/foo.js new file mode 100644 index 0000000000..8aa58a3979 --- /dev/null +++ b/system-tests/projects/v8-snapshot/minimal/lib/foo.js @@ -0,0 +1,3 @@ +const tmpfile = require('tmpfile') + +module.exports = tmpfile() diff --git a/system-tests/projects/v8-snapshot/minimal/package.json b/system-tests/projects/v8-snapshot/minimal/package.json new file mode 100644 index 0000000000..b9181a1bd1 --- /dev/null +++ b/system-tests/projects/v8-snapshot/minimal/package.json @@ -0,0 +1,11 @@ +{ + "name": "minimal", + "version": "0.0.0", + "description": "Minimal example of project using deps.", + "main": "entry.js", + "dependencies": { + "isobject": "^4.0.0", + "tmpfile": "^0.2.0" + }, + "license": "MIT" +} diff --git a/system-tests/projects/v8-snapshot/minimal/yarn.lock b/system-tests/projects/v8-snapshot/minimal/yarn.lock new file mode 100644 index 0000000000..499259460f --- /dev/null +++ b/system-tests/projects/v8-snapshot/minimal/yarn.lock @@ -0,0 +1,13 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity "sha1-PxyRVec7GSAiqAgZus0DQ3EWl7A= sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + +tmpfile@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/tmpfile/-/tmpfile-0.2.0.tgz#4bea580e676b669ca755947130108caba572e7c8" + integrity "sha1-S+pYDmdrZpynVZRxMBCMq6Vy58g= sha512-TedBmCwX5gB2jxusP1G8Srr2Ei1YVQg2XOHjTxpeI0RCQjCvBiIi8jaoW6Cxjie8xZzHOY6Dt8xES+0+QJ5a7w==" diff --git a/system-tests/projects/v8-snapshot/native-modules/README.md b/system-tests/projects/v8-snapshot/native-modules/README.md new file mode 100644 index 0000000000..fbc4201788 --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/README.md @@ -0,0 +1,8 @@ +## v8-snapshot/native-modules + +The goal of this project is to load a native module (fs-events). It can only be run on darwin. First snapshot `entry.js`. You can then load up the +app by running: + +``` +electron -r ./hook-require.js ./app.js +``` diff --git a/system-tests/projects/v8-snapshot/native-modules/app.js b/system-tests/projects/v8-snapshot/native-modules/app.js new file mode 100644 index 0000000000..2960b672d1 --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/app.js @@ -0,0 +1,12 @@ +const fsevents = require('fsevents') + +async function watchAndLearn () { + try { + await fsevents.watch('/tmp/', (_p, _f, _id) => {}) + } catch (err) { + console.error(err) + } + console.log(JSON.stringify({ itemIsDir: fsevents.constants.ItemIsDir })) +} + +watchAndLearn() diff --git a/system-tests/projects/v8-snapshot/native-modules/entry.js b/system-tests/projects/v8-snapshot/native-modules/entry.js new file mode 100644 index 0000000000..e3d7c6aa62 --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/entry.js @@ -0,0 +1 @@ +require('fsevents') diff --git a/system-tests/projects/v8-snapshot/native-modules/hook-require.js b/system-tests/projects/v8-snapshot/native-modules/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/native-modules/package.json b/system-tests/projects/v8-snapshot/native-modules/package.json new file mode 100644 index 0000000000..a90cfb1b36 --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/package.json @@ -0,0 +1,6 @@ +{ + "name": "native-modules", + "optionalDependencies": { + "fsevents": "^2.3.2" + } +} diff --git a/system-tests/projects/v8-snapshot/native-modules/yarn.lock b/system-tests/projects/v8-snapshot/native-modules/yarn.lock new file mode 100644 index 0000000000..2df7351ccd --- /dev/null +++ b/system-tests/projects/v8-snapshot/native-modules/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +fsevents@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== diff --git a/system-tests/projects/v8-snapshot/require-cache/README.md b/system-tests/projects/v8-snapshot/require-cache/README.md new file mode 100644 index 0000000000..9d27d41ee8 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/README.md @@ -0,0 +1,19 @@ +## v8-snapshot/require-cache + +The goal of this project is to test scenarios involving the require cache. + +### Cached module modifying require cache + +Cached app is snapshotted and will modify the require cache. The cached app can be tested by snapshotting `cached-app.js` and running: + +``` +electron -r ./hook-require.js ./cached-app.js +``` + +### Uncached module modifying require cache + +Uncached entry is snapshotted (but uncached app is not) and will modify the require cache. The uncached app can be tested by snapshotting `uncached-entry.js` and running: + +``` +electron -r ./hook-require.js ./uncached-app.js +``` diff --git a/system-tests/projects/v8-snapshot/require-cache/cached-app.js b/system-tests/projects/v8-snapshot/require-cache/cached-app.js new file mode 100644 index 0000000000..6f75a785dc --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/cached-app.js @@ -0,0 +1,5 @@ +const { manipulateCache } = require('./cached-manipulator') + +const res = manipulateCache() + +console.log(JSON.stringify(res)) diff --git a/system-tests/projects/v8-snapshot/require-cache/cached-manipulator.js b/system-tests/projects/v8-snapshot/require-cache/cached-manipulator.js new file mode 100644 index 0000000000..de2858ac02 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/cached-manipulator.js @@ -0,0 +1,19 @@ +'use strict' + +function manipulateCache () { + const sync1 = require('./lib/sync-deps.js') + const rand1 = require('./lib/math-random.js') + + const syncDepsId = require.resolve('./lib/sync-deps.js') + const noDepsId = require.resolve('./lib/math-random.js') + + delete require.cache[syncDepsId] + delete require.cache[noDepsId] + + const sync2 = require('./lib/sync-deps.js') + const rand2 = require('./lib/math-random.js') + + return { sync1, sync2, rand1, rand2 } +} + +module.exports = { manipulateCache } diff --git a/system-tests/projects/v8-snapshot/require-cache/dep-cached-manipulator.js b/system-tests/projects/v8-snapshot/require-cache/dep-cached-manipulator.js new file mode 100644 index 0000000000..3ac002b8c6 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/dep-cached-manipulator.js @@ -0,0 +1,41 @@ +'use strict' +const assert = require('assert') + +function manipulateCache () { + // deep-sync-deps depends on sync-deps, however that is already + // fully initialized as parts of deep-sync-deps exports + const sync1 = require('./lib/sync-deps.js') + + // We delete sync-deps from the module cache + const syncDepsId = require.resolve('./lib/sync-deps.js') + + delete require.cache[syncDepsId] + + // NOTE: that deep-sync-deps has never been required. + // There for with plain Node.js when loading deepsync-deps fresh we'd + // expect sync-deps to be reloaded fresh as well + const sync2 = require('./lib/deep-sync-deps.js').dep + + return { sync1, sync2 } +} + +module.exports = { manipulateCache } + +const { sync1, sync2 } = manipulateCache() + +assert(sync1 !== sync2) + +// eslint-disable-next-line no-unused-vars +function manipulateExports () { + // eslint-disable-next-line no-unused-vars + const child = { + foo: 'foo', + bar: 'bar', + } + const p1 = require('./p1') + + p1.bar = 'baz' + const p2 = require('./p2') + + assert(p2.bar === 'baz') +} diff --git a/system-tests/projects/v8-snapshot/require-cache/hook-require.js b/system-tests/projects/v8-snapshot/require-cache/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/require-cache/lib/deep-sync-deps.js b/system-tests/projects/v8-snapshot/require-cache/lib/deep-sync-deps.js new file mode 100644 index 0000000000..dd879418f0 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/lib/deep-sync-deps.js @@ -0,0 +1,6 @@ +'use strict' + +module.exports = { + me: Math.random(), + dep: require('./sync-deps.js'), +} diff --git a/system-tests/projects/v8-snapshot/require-cache/lib/math-random.js b/system-tests/projects/v8-snapshot/require-cache/lib/math-random.js new file mode 100644 index 0000000000..7e7a8a5a35 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/lib/math-random.js @@ -0,0 +1,3 @@ +'use strict' + +module.exports = Math.random() diff --git a/system-tests/projects/v8-snapshot/require-cache/lib/sync-deps.js b/system-tests/projects/v8-snapshot/require-cache/lib/sync-deps.js new file mode 100644 index 0000000000..875066f5cf --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/lib/sync-deps.js @@ -0,0 +1,6 @@ +'use strict' + +module.exports = { + me: Math.random(), + dep: require('./math-random.js'), +} diff --git a/system-tests/projects/v8-snapshot/require-cache/package.json b/system-tests/projects/v8-snapshot/require-cache/package.json new file mode 100644 index 0000000000..8672556102 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/package.json @@ -0,0 +1,3 @@ +{ + "name": "require-cache" +} diff --git a/system-tests/projects/v8-snapshot/require-cache/uncached-app.js b/system-tests/projects/v8-snapshot/require-cache/uncached-app.js new file mode 100644 index 0000000000..2edbbad2e6 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/uncached-app.js @@ -0,0 +1,5 @@ +const { manipulateCache } = require('./uncached-manipulator') + +const res = manipulateCache() + +console.log(JSON.stringify(res)) diff --git a/system-tests/projects/v8-snapshot/require-cache/uncached-entry.js b/system-tests/projects/v8-snapshot/require-cache/uncached-entry.js new file mode 100644 index 0000000000..d45d732a8a --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/uncached-entry.js @@ -0,0 +1,5 @@ +const { manipulateCache } = require('./uncached-manipulator') + +module.exports = function () { + manipulateCache() +} diff --git a/system-tests/projects/v8-snapshot/require-cache/uncached-manipulator.js b/system-tests/projects/v8-snapshot/require-cache/uncached-manipulator.js new file mode 100644 index 0000000000..542b5d9eb9 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-cache/uncached-manipulator.js @@ -0,0 +1,23 @@ +'use strict' + +function manipulateCache () { + const sync1 = require('./lib/sync-deps.js') + const rand1 = require('./lib/math-random.js') + + const syncDepsId = require.resolve('./lib/sync-deps.js') + const noDepsId = require.resolve('./lib/math-random.js') + + delete require.cache[syncDepsId] + delete require.cache[noDepsId] + + const sync2 = require('./lib/sync-deps.js') + const rand2 = require('./lib/math-random.js') + + return { sync1, sync2, rand1, rand2 } +} + +// Using core module prevents this module from being cached +const fs = require('fs') +const len = fs.readFileSync(__filename, 'utf8').length + +module.exports = { manipulateCache, len } diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/README.md b/system-tests/projects/v8-snapshot/require-full-path-var/README.md new file mode 100644 index 0000000000..05ecebf3ba --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/README.md @@ -0,0 +1,8 @@ +## v8-snapshot/require-full-path-var + +The goal of this project is to load a module via a full path to the module. First snapshot `entry.js`. You can then load up the +app by running: + +``` +electron -r ./hook-require.js ./app.js +``` diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/app.js b/system-tests/projects/v8-snapshot/require-full-path-var/app.js new file mode 100644 index 0000000000..77c08665dc --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/app.js @@ -0,0 +1,7 @@ +'use strict' +// Roughly replicates https://github.com/kribblo/node-ffmpeg-installer/blob/master/index.js + +const getPackage = require('./entry') +const pack = getPackage() + +console.log(JSON.stringify({ version: pack.version })) diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/entry.js b/system-tests/projects/v8-snapshot/require-full-path-var/entry.js new file mode 100644 index 0000000000..cc053f1bd4 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/entry.js @@ -0,0 +1,11 @@ +'use strict' +// Roughly replicates https://github.com/kribblo/node-ffmpeg-installer/blob/master/index.js +const path = require('path') +const platform = 'package.json' +const npm3Path = path.resolve(__dirname, 'lib') +const packagePath = path.resolve(npm3Path, platform) +const pack = require(packagePath) + +module.exports = function getPackage () { + return pack +} diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/hook-require.js b/system-tests/projects/v8-snapshot/require-full-path-var/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/lib/package.json b/system-tests/projects/v8-snapshot/require-full-path-var/lib/package.json new file mode 100644 index 0000000000..2a38ae1d1f --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/lib/package.json @@ -0,0 +1,3 @@ +{ + "version": "1.1.1" +} diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/package.json b/system-tests/projects/v8-snapshot/require-full-path-var/package.json new file mode 100644 index 0000000000..1522d93a87 --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/package.json @@ -0,0 +1,3 @@ +{ + "name": "require-full-path-var" +} diff --git a/system-tests/projects/v8-snapshot/require-full-path-var/yarn.lock b/system-tests/projects/v8-snapshot/require-full-path-var/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/system-tests/projects/v8-snapshot/require-full-path-var/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/system-tests/projects/v8-snapshot/stealthy-require/README.md b/system-tests/projects/v8-snapshot/stealthy-require/README.md new file mode 100644 index 0000000000..af104db410 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/README.md @@ -0,0 +1,11 @@ +## v8-snapshot/stealthy-require + +The goal of this project is to test various scenarios involving the require cache. `stealthy-require` is used to +clear the require cache and potentially bypass the cache entirely for a given module. We can then execute +tests that will test various scenarios (`spec/non-native.js`). Specifically we compare a lot of different combinations +of using the cache and not using the cache to ensure that the modules that are loaded correctly with and without the cache. +First snapshot `entry-all-cached.js`. Then, to execute the tests: + +``` +electron -r ./hook-require.js ./spec/non-native.js +``` diff --git a/system-tests/projects/v8-snapshot/stealthy-require/entry-all-cached.js b/system-tests/projects/v8-snapshot/stealthy-require/entry-all-cached.js new file mode 100644 index 0000000000..6869a5cec6 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/entry-all-cached.js @@ -0,0 +1,9 @@ +function init () { + require('./fixtures/deep-sync-deps.js') + require('./fixtures/native-deps.js') + require('./fixtures/no-deps.js') + require('./fixtures/sync-deps.js') + require('stealthy-require') +} + +module.exports = init diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/deep-sync-deps.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/deep-sync-deps.js new file mode 100644 index 0000000000..dd879418f0 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/deep-sync-deps.js @@ -0,0 +1,6 @@ +'use strict' + +module.exports = { + me: Math.random(), + dep: require('./sync-deps.js'), +} diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/native-deps.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/native-deps.js new file mode 100644 index 0000000000..751449f1a1 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/native-deps.js @@ -0,0 +1,6 @@ +'use strict' + +module.exports = { + me: Math.random(), + native_dep: require('bcrypt'), +} diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/no-deps.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/no-deps.js new file mode 100644 index 0000000000..7e7a8a5a35 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/no-deps.js @@ -0,0 +1,3 @@ +'use strict' + +module.exports = Math.random() diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require-and-keep.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require-and-keep.js new file mode 100644 index 0000000000..c6f17b129f --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require-and-keep.js @@ -0,0 +1,16 @@ +'use strict' + +let stealthyRequire = require('../../lib/index.js') + +let req1 = require('../fixtures/sync-deps.js') +let req2 = stealthyRequire(require.cache, function () { + return require('./deep-sync-deps.js') +}, +function () { + require('../fixtures/sync-deps.js') +}, module) +let req3 = require('../fixtures/sync-deps.js') + +console.log(JSON.stringify(req1)) +console.log(JSON.stringify(req2.dep)) +console.log(JSON.stringify(req3)) diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require.js new file mode 100644 index 0000000000..ec3ecb1f62 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require.js @@ -0,0 +1,13 @@ +'use strict' + +let stealthyRequire = require('../../lib/index.js') + +let req1 = require('../fixtures/sync-deps.js') +let req2 = stealthyRequire(require.cache, function () { + return require('./sync-deps.js') +}) +let req3 = require('../fixtures/sync-deps.js') + +console.log(JSON.stringify(req1)) +console.log(JSON.stringify(req2)) +console.log(JSON.stringify(req3)) diff --git a/system-tests/projects/v8-snapshot/stealthy-require/fixtures/sync-deps.js b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/sync-deps.js new file mode 100644 index 0000000000..45464966de --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/fixtures/sync-deps.js @@ -0,0 +1,6 @@ +'use strict' + +module.exports = { + me: Math.random(), + dep: require('./no-deps.js'), +} diff --git a/system-tests/projects/v8-snapshot/stealthy-require/hook-require.js b/system-tests/projects/v8-snapshot/stealthy-require/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/system-tests/projects/v8-snapshot/stealthy-require/package.json b/system-tests/projects/v8-snapshot/stealthy-require/package.json new file mode 100644 index 0000000000..94262b2a58 --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/package.json @@ -0,0 +1,6 @@ +{ + "name": "sr", + "dependencies": { + "stealthy-require": "^1.1.1" + } +} \ No newline at end of file diff --git a/system-tests/projects/v8-snapshot/stealthy-require/spec/native.js b/system-tests/projects/v8-snapshot/stealthy-require/spec/native.js new file mode 100644 index 0000000000..8fe82b604c --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/spec/native.js @@ -0,0 +1,25 @@ +'use strict' + +let chai = require('chai') +let expect = chai.expect + +let stealthyRequire = require('../../') + +describe('When native modules are involved, Stealthy-Require', function () { + it('should require a module with native deps', function () { + let req1 = require('../fixtures/native-deps.js') + + let req2 = null + + expect(function () { + req2 = stealthyRequire(require.cache, function () { + return require('../fixtures/native-deps.js') + }) + }).not.to.throw(/* Error: Module did not self-register. */) + + let req3 = require('../fixtures/native-deps.js') + + expect(req1).to.eql(req3) + expect(req1).to.not.eql(req2) + }) +}) diff --git a/system-tests/projects/v8-snapshot/stealthy-require/spec/non-native.js b/system-tests/projects/v8-snapshot/stealthy-require/spec/non-native.js new file mode 100644 index 0000000000..edecf4146e --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/spec/non-native.js @@ -0,0 +1,173 @@ +/* eslint-disable mocha/handle-done-callback */ +'use strict' + +const assert = require('assert').strict +const stealthyRequire = require('stealthy-require') + +const loggingAssert = { + equal: (a, b, msg) => { + console.log(msg) + assert.equal(a, b, msg) + }, + notEqual: (a, b, msg) => { + console.log(msg) + assert.notEqual(a, b, msg) + }, +} + +function test (description, callback) { + console.log('# %s', description) + callback(loggingAssert) +} + +try { + test('should require a module without deps', (t) => { + let req1 = require('../fixtures/no-deps.js') + let req2 = stealthyRequire(require.cache, function () { + return require('../fixtures/no-deps.js') + }) + let req3 = require('../fixtures/no-deps.js') + + t.equal(req1, req3) + t.notEqual(req1, req2) + }) + + test('should require a module with sync deps', (t) => { + let req1 = require('../fixtures/sync-deps.js') + let req2 = stealthyRequire(require.cache, function () { + return require('../fixtures/sync-deps.js') + }) + let req3 = require('../fixtures/sync-deps.js') + + t.equal(req1, req3) + t.notEqual(req1, req2) + }) + + test('should require a module while keeping a dependency that was required before', (t) => { + let req1 = require('../fixtures/sync-deps.js') + let lenChildrenBeforeReq2 = module.children.length + let req2 = stealthyRequire( + require.cache, + function () { + return require('../fixtures/deep-sync-deps.js') + }, + function () { + require('../fixtures/sync-deps.js') + }, + module, + ) + let lenChildrenAfterReq2 = module.children.length + let req3 = require('../fixtures/sync-deps.js') + + t.equal(req1, req3) + + t.equal(req1, req2.dep) + t.equal(req1.dep, req2.dep.dep) + + // We aren't updating module children when snapshot is used thus len doesn't change. + // t.equal(lenChildrenAfterReq2, lenChildrenBeforeReq2 + 1, 'len children') + // This assertion thus also ensures that we are using modules from the snapshot + t.equal(lenChildrenAfterReq2, lenChildrenBeforeReq2) + }) + + test('should require a module while keeping a dependency that will be required afterwards', (t) => { + let testReq1 = require('../fixtures/sync-deps.js') + let testReq2 = require('../fixtures/no-deps.js') + + delete require.cache[require.resolve('../fixtures/sync-deps.js')] + delete require.cache[require.resolve('../fixtures/no-deps.js')] + let testReq3 = require('../fixtures/sync-deps.js') + let testReq4 = require('../fixtures/no-deps.js') + + t.notEqual(testReq1, testReq3) + t.notEqual(testReq2, testReq4) + + delete require.cache[require.resolve('../fixtures/sync-deps.js')] + delete require.cache[require.resolve('../fixtures/no-deps.js')] + + let lenChildrenBeforeReq2 = module.children.length + let req2 = stealthyRequire( + require.cache, + function () { + return require('../fixtures/deep-sync-deps.js') + }, + function () { + require('../fixtures/sync-deps.js') + }, + module, + ) + let lenChildrenAfterReq2 = module.children.length + let req3 = require('../fixtures/sync-deps.js') + + t.equal(req3, req2.dep) + t.equal(req3.dep, req2.dep.dep) + + // We aren't updating module children when snapshot is used thus len doesn't change + // t.equal(lenChildrenAfterReq2, lenChildrenBeforeReq2 + 1, 'len children') + // This assertion thus also ensures that we are using modules from the snapshot + t.equal(lenChildrenAfterReq2, lenChildrenBeforeReq2, 'len children') + }) + + test('should not pollute require cache with dependencies that should be kept but are never required', (t) => { + let testReq1 = require('../fixtures/sync-deps.js') + let testReq2 = require('../fixtures/no-deps.js') + + delete require.cache[require.resolve('../fixtures/sync-deps.js')] + delete require.cache[require.resolve('../fixtures/no-deps.js')] + + let testReq3 = require('../fixtures/sync-deps.js') + let testReq4 = require('../fixtures/no-deps.js') + + t.notEqual(testReq1, testReq3) + t.notEqual(testReq2, testReq4) + + delete require.cache[require.resolve('../fixtures/sync-deps.js')] + delete require.cache[require.resolve('../fixtures/no-deps.js')] + + stealthyRequire( + require.cache, + function () { + return require('../fixtures/no-deps.js') + }, + function () { + require('../fixtures/sync-deps.js') + + t.notEqual( + require.cache[require.resolve('../fixtures/sync-deps.js')], + undefined, + ) + + t.equal( + Object.prototype.hasOwnProperty.call( + require.cache, + require.resolve('../fixtures/sync-deps.js'), + ), + true, + ) + }, + module, + ) + + t.equal( + require.cache[require.resolve('../fixtures/sync-deps.js')], + undefined, + ) + + t.equal( + Object.prototype.hasOwnProperty.call( + require.cache, + require.resolve('../fixtures/sync-deps.js'), + ), + false, + ) + }) + + console.log('# PASS') +} catch (err) { + console.log('# FAIL') + + console.error('++++++++++++++++++++++++++++++++++') + console.error('+++++++++ Test Failure +++++++++++') + console.error('++++++++++++++++++++++++++++++++++') + console.error(err) +} diff --git a/system-tests/projects/v8-snapshot/stealthy-require/yarn.lock b/system-tests/projects/v8-snapshot/stealthy-require/yarn.lock new file mode 100644 index 0000000000..9ce5f23e2c --- /dev/null +++ b/system-tests/projects/v8-snapshot/stealthy-require/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== diff --git a/system-tests/scripts/projects-yarn-install.js b/system-tests/scripts/projects-yarn-install.js index b551d10b91..edeb5e59f9 100644 --- a/system-tests/scripts/projects-yarn-install.js +++ b/system-tests/scripts/projects-yarn-install.js @@ -30,7 +30,7 @@ const log = (...args) => console.log(logTag, ...args) log('Scaffolding node_modules for', project) await Fixtures.scaffoldProject(project) - await scaffoldProjectNodeModules(project) + await scaffoldProjectNodeModules({ project }) console.timeEnd(timeTag) } diff --git a/system-tests/test/non_root_read_only_fs_spec.ts b/system-tests/test/non_root_read_only_fs_spec.ts index 5acfb766a8..4e365d27bd 100644 --- a/system-tests/test/non_root_read_only_fs_spec.ts +++ b/system-tests/test/non_root_read_only_fs_spec.ts @@ -24,13 +24,15 @@ describe('e2e readonly fs', function () { } const onRun = async (exec) => { - await Fixtures.scaffoldProject('read-only-project-root') - await scaffoldCommonNodeModules() - chmodr(projectPath, 0o500) + try { + await Fixtures.scaffoldProject('read-only-project-root') + await scaffoldCommonNodeModules() + chmodr(projectPath, 0o500) - await exec() - - chmodr(projectPath, 0o777) + await exec() + } finally { + chmodr(projectPath, 0o777) + } } systemTests.it('warns when unable to write to disk', { diff --git a/system-tests/test/pause_headed_exit_spec.ts b/system-tests/test/pause_headed_exit_spec.ts index 757b021b9a..90910937da 100644 --- a/system-tests/test/pause_headed_exit_spec.ts +++ b/system-tests/test/pause_headed_exit_spec.ts @@ -1,4 +1,5 @@ import systemTests from '../lib/system-tests' +import childProcess from 'child_process' describe('cy.pause() in run mode', () => { systemTests.setup() @@ -17,6 +18,9 @@ describe('cy.pause() in run mode', () => { onSpawn: (cp) => { cp.stdout.on('data', (buf) => { if (buf.toString().includes('not exiting due to options.exit being false')) { + // systemTests.it spawns a new node process which then spawns the actual cypress process + // Killing just the new node process doesn't kill the cypress process so we find it and kill it manually + childProcess.execSync(`kill $(pgrep -P ${cp.pid} | awk '{print $1}')`) cp.kill() } }) @@ -37,6 +41,9 @@ describe('cy.pause() in run mode', () => { onSpawn: (cp) => { cp.stdout.on('data', (buf) => { if (buf.toString().includes('not exiting due to options.exit being false')) { + // systemTests.it spawns a new node process which then spawns the actual cypress process + // Killing just the new node process doesn't kill the cypress process so we find it and kill it manually + childProcess.execSync(`kill $(pgrep -P ${cp.pid} | awk '{print $1}')`) cp.kill() } }) diff --git a/system-tests/test/plugin_run_events_spec.ts b/system-tests/test/plugin_run_events_spec.ts index 14a3868bc2..9831a16051 100644 --- a/system-tests/test/plugin_run_events_spec.ts +++ b/system-tests/test/plugin_run_events_spec.ts @@ -29,5 +29,9 @@ describe('e2e plugin run events', () => { config: { video: false, }, + onStdout: (stdout) => { + // TODO: Figure out how to fix the race condition on thrown exceptions in before:spec that causes additional electron exceptions to fire: https://github.com/cypress-io/cypress/issues/24102 + return stdout.trimRight() + }, }) }) diff --git a/tooling/electron-mksnapshot/.gitignore b/tooling/electron-mksnapshot/.gitignore new file mode 100644 index 0000000000..6dd29b7f8d --- /dev/null +++ b/tooling/electron-mksnapshot/.gitignore @@ -0,0 +1 @@ +bin/ \ No newline at end of file diff --git a/tooling/electron-mksnapshot/README.md b/tooling/electron-mksnapshot/README.md new file mode 100644 index 0000000000..2d5bc14107 --- /dev/null +++ b/tooling/electron-mksnapshot/README.md @@ -0,0 +1,25 @@ +## @packages/electron-mksnapshot + +A rewrite of [electron/mksnapshot](https://github.com/electron/mksnapshot) to support multiple +versions. + +The main difference is that the _mksnapshot_ binary is not downloaded when installing this +module. + +Instead, whenever `electron-mksnapshot` is run an electron version is provided. If that version +was downloaded previously it is used, otherwise the matching version is downloaded before +the _mksnapshot_ step runs. + +## Example + +```ts +const version = '12.0.10' +const args = [fullPathToSnapshot, '--output_dir', fullPathToOutputDir] +const { version, snapshotBlobFile, v8ContextFile } = await syncAndRun( + version, + args +) +assert.equal(version, providedVersion) +assert.equal(snapshotBlobFile, 'snapshot_blob.bin') +assert(v8ContextFile.startsWith('v8_context_snapshot')) +``` diff --git a/tooling/electron-mksnapshot/package.json b/tooling/electron-mksnapshot/package.json new file mode 100644 index 0000000000..357daccbaa --- /dev/null +++ b/tooling/electron-mksnapshot/package.json @@ -0,0 +1,35 @@ +{ + "name": "@tooling/electron-mksnapshot", + "version": "0.0.0-development", + "description": "Configurable electron version of the mksnapshot binary", + "private": true, + "main": "dist/mksnapshot.js", + "scripts": { + "build": "tsc", + "build-prod": "yarn build", + "check-ts": "tsc --noEmit && yarn -s tslint", + "clean-deps": "rimraf node_modules", + "clean": "rimraf dist", + "test": "yarn test-unit", + "test-unit": "mocha test/unit/**/*.spec.ts --config ./test/.mocharc.js", + "test-integration": "mocha test/integration/**/*.spec.ts --config ./test/.mocharc.js", + "tslint": "tslint --config ../ts/tslint.json --project .", + "watch": "tsc --watch" + }, + "dependencies": { + "@electron/get": "^1.12.4", + "debug": "^4.3.1", + "extract-zip": "^2.0.1", + "fs-extra": "^10.0.0", + "temp-dir": "^2.0.0" + }, + "devDependencies": { + "@packages/ts": "0.0.0-development", + "mocha": "7.0.1", + "proxyquire": "2.1.3", + "sinon": "14.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/tooling/electron-mksnapshot/src/config.ts b/tooling/electron-mksnapshot/src/config.ts new file mode 100644 index 0000000000..4120ab447d --- /dev/null +++ b/tooling/electron-mksnapshot/src/config.ts @@ -0,0 +1,84 @@ +import path from 'path' + +export type VersionMeta = Record & { + platform: string + arch: string | null + version: string + isWindows: boolean + snapshotBlobFile: string + v8ContextFile: string +} + +const isWindows = process.platform === 'win32' + +const projectRootDir = path.join(__dirname, '..') +const binDir = path.join(projectRootDir, 'bin') +const mksnapshotBinary = path.join( + binDir, + isWindows ? 'mksnapshot.exe' : 'mksnapshot', +) +const versionMetaPath = path.join(binDir, 'meta.json') + +const platform = process.env.npm_config_platform || process.platform +const targetArch = process.env.npm_config_arch || process.arch + +const crossArchDirs = [ + 'clang_x86_v8_arm', + 'clang_x64_v8_arm64', + 'win_clang_x64', +] + +let v8ContextFile = 'v8_context_snapshot.bin' + +if (platform === 'darwin') { + if (targetArch === 'arm64') { + v8ContextFile = 'v8_context_snapshot.arm64.bin' + } else { + v8ContextFile = 'v8_context_snapshot.x86_64.bin' + } +} + +const snapshotBlobFile = 'snapshot_blob.bin' + +class Config { + constructor ( + readonly platform: string, + readonly projectRootDir: string, + readonly binDir: string, + readonly mksnapshotBinary: string, + readonly crossArchDirs: string[], + readonly isWindows: boolean, + readonly snapshotBlobFile: string, + readonly v8ContextFile: string, + readonly versionMetaPath: string, + readonly archToDownload?: string, + ) {} + + versionMeta (version: string): VersionMeta { + return { + platform: this.platform, + arch: this.archToDownload ?? null, + version, + isWindows: this.isWindows, + snapshotBlobFile: this.snapshotBlobFile, + v8ContextFile: this.v8ContextFile, + } as VersionMeta + } + + versionMetaJSON (version: string) { + return JSON.stringify(this.versionMeta(version), null, 2) + } +} + +export const config = new Config( + platform, + projectRootDir, + binDir, + mksnapshotBinary, + crossArchDirs, + isWindows, + snapshotBlobFile, + v8ContextFile, + versionMetaPath, + process.env.npm_config_arch, +) diff --git a/tooling/electron-mksnapshot/src/metadata.ts b/tooling/electron-mksnapshot/src/metadata.ts new file mode 100644 index 0000000000..c7a5f2379a --- /dev/null +++ b/tooling/electron-mksnapshot/src/metadata.ts @@ -0,0 +1,42 @@ +import { config, VersionMeta } from './config' +import { promises as fs } from 'fs' + +const { versionMetaPath } = config + +export class Metadata { + constructor (readonly version: string) {} + _read (): VersionMeta | null { + try { + return require(versionMetaPath) + } catch (err) { + // On first time running this after install we won't have it yet + return null + } + } + + matchesCurrentConfig (): boolean { + const downloadedVersion = this._read() + + if (downloadedVersion == null) return false + + const currentVersion: VersionMeta = config.versionMeta(this.version) + + for (let [key, val] of Object.entries(downloadedVersion)) { + if (currentVersion[key] !== val) return false + } + + return true + } + + current () { + return config.versionMeta(this.version) + } + + async write () { + return fs.writeFile( + versionMetaPath, + config.versionMetaJSON(this.version), + 'utf8', + ) + } +} diff --git a/tooling/electron-mksnapshot/src/mksnapshot-bin.ts b/tooling/electron-mksnapshot/src/mksnapshot-bin.ts new file mode 100644 index 0000000000..5d5f2ce1c2 --- /dev/null +++ b/tooling/electron-mksnapshot/src/mksnapshot-bin.ts @@ -0,0 +1,12 @@ +import { runMksnapshot } from './mksnapshot-run' + +const args = process.argv.slice(2) + +try { + runMksnapshot(args) + process.exit(0) +} catch (err) { + // eslint-disable-next-line no-console + console.error(err) + process.exit(1) +} diff --git a/tooling/electron-mksnapshot/src/mksnapshot-download.ts b/tooling/electron-mksnapshot/src/mksnapshot-download.ts new file mode 100644 index 0000000000..bfffeb9596 --- /dev/null +++ b/tooling/electron-mksnapshot/src/mksnapshot-download.ts @@ -0,0 +1,111 @@ +import fs from 'fs' +import { downloadArtifact } from '@electron/get' +import { config } from './config' +import extractZip from 'extract-zip' +import debug from 'debug' +import path from 'path' + +const logInfo = debug('cypress:mksnapshot:info') +const logDebug = debug('cypress:mksnapshot:debug') +const logError = debug('cypress:mksnapshot:error') + +// ----------------- +// Config +// ----------------- +const { platform, binDir, mksnapshotBinary } = config +let { archToDownload } = config + +// ----------------- +// Correct arm to arm-x64 +// ----------------- +if ( + archToDownload != null && + archToDownload.startsWith('arm') && + process.platform !== 'darwin' +) { + archToDownload += '-x64' +} + +// ----------------- +// Not supporting ARM architectures except Darwin +// ----------------- +function checkArmArchitectures (version: string): boolean { + if (process.arch.startsWith('arm') && process.platform !== 'darwin') { + logError( + `WARNING: mksnapshot does not run on ${process.arch}. Download + https://github.com/electron/electron/releases/download/v${version}/mksnapshot-v${version}-${process.platform}-${process.arch}-x64.zip + on a x64 ${process.platform} OS to generate ${archToDownload} snapshots.`, + ) + + return false + } + + return true +} + +// ----------------- +// Download +// ----------------- +function download (version: string) { + return downloadArtifact({ + version, + artifactName: 'mksnapshot', + platform, + arch: archToDownload, + }) +} + +export async function attemptDownload ( + version: string, + tryingBaseVersion: boolean, +) { + if (!checkArmArchitectures(version)) { + throw new Error( + 'Architecture not supported. Run with `DEBUG=\'cypress:mksnapshot:error\'` for more information', + ) + } + + if (!tryingBaseVersion) { + logInfo({ + platform, + version, + archToDownload, + binDir, + mksnapshotBinary, + }) + } + + try { + const zipPath = await download(version) + + await extractZip(zipPath, { dir: binDir }) + if (platform !== 'win32') { + if (fs.existsSync(mksnapshotBinary)) { + fs.chmod(mksnapshotBinary, '755', function (error) { + if (error != null) throw error + }) + } + } + + return path.basename(zipPath).slice(0, -path.extname(zipPath).length) + } catch (err) { + // If the version was not supplied, but taken from the `package.json` version then + // a mksnapshot version for it may not be available. + // The below tries to remove the patch number and download the version that + // matches `major.minor.0` + const parts = version.split('.') + const baseVersion = `${parts[0]}.${parts[1]}.0` + + logDebug( + `Failed to download ${version}, falling back to semver minor ${baseVersion}`, + ) + + if (tryingBaseVersion) { + throw err + } + + const zipPath: string = await attemptDownload(baseVersion, true) + + return zipPath + } +} diff --git a/tooling/electron-mksnapshot/src/mksnapshot-run.ts b/tooling/electron-mksnapshot/src/mksnapshot-run.ts new file mode 100644 index 0000000000..8b5cd01d04 --- /dev/null +++ b/tooling/electron-mksnapshot/src/mksnapshot-run.ts @@ -0,0 +1,221 @@ +import fs from 'fs-extra' +import { StdioOptions, spawnSync } from 'child_process' +import { config } from './config' +import path from 'path' +import tempDir from 'temp-dir' +import { processArgsFromFile } from './process-args-from-file' +import debug from 'debug' + +const logInfo = debug('cypress:mksnapshot:info') +const logDebug = debug('cypress:mksnapshot:debug') +const logError = debug('cypress:mksnapshot:error') + +const workingDir = path.join(tempDir, 'mksnapshot-workdir') + +fs.ensureDirSync(workingDir) +const { crossArchDirs, binDir, isWindows, snapshotBlobFile, v8ContextFile } = + config + +// TODO(thlorenz): this manual args parsing was copied from the original module and could be +// improved to use a proper args parser instead +function checkArgs (args: string[]) { + if (args.length === 0 || args.includes('--help')) { + logError( + 'Usage: mksnapshot file.js (--output_dir OUTPUT_DIR). ' + + 'Additional mksnapshot args except for --startup_blob are supported:', + ) + + args.push('--help') + process.exit(0) + } + + // ----------------- + // --startup_blob not supported + // ----------------- + if (args.includes('--startup_blob')) { + logError( + '--startup_blob argument not supported. Use --output_dir to specify where to output snapshot_blob.bin', + ) + + process.exit(1) + } + + return args +} + +// ----------------- +// Output Dir +// ----------------- +function extractOutdir (args: string[]) { + let mksnapshotArgs = args + const outDirIdx = args.indexOf('--output_dir') + let outputDir = process.cwd() + + if (outDirIdx > -1) { + mksnapshotArgs = args.slice(0, outDirIdx) + if (args.length >= outDirIdx + 2) { + outputDir = args[outDirIdx + 1] + if (args.length > outDirIdx + 2) { + mksnapshotArgs = mksnapshotArgs.concat(args.slice(outDirIdx + 2)) + } + } else { + logError( + 'Error! Output directory argument given but directory not specified.', + ) + + throw new Error('Need to specify the `--output_dir` argument') + } + } + + return { outputDir, mksnapshotArgs } +} + +// ----------------- +// Prepare working dir +// ----------------- +function prepareWorkingDir (binDir: string, workingDir: string) { + // Copy mksnapshot files to temporary working directory because + // v8_context_snapshot_generator expects to run everything from the same + // directory. + fs.copySync(binDir, workingDir) + + return path.join(binDir, 'mksnapshot_args') +} + +function combineMksnapshotArgs (argsFilePath: string, mksnapshotArgs: string[]) { + return processArgsFromFile( + argsFilePath, + mksnapshotArgs, + workingDir, + crossArchDirs, + ) +} + +function prepareCommands ( + binDir: string, + workingDir: string, + mksnapshotArgs: string[], +) { + const argsFilePath = prepareWorkingDir(binDir, workingDir) + + return combineMksnapshotArgs(argsFilePath, mksnapshotArgs) +} + +// ----------------- +// Run mksnapshot command to create snapshot_blob.bin +// ----------------- +function createSnapshotBlob ( + mksnapshotBinaryDir: string, + mksnapshotCommand: string, + mksnapshotArgs: string[], + outputDir: string, +) { + const stdio: StdioOptions = 'inherit' + const snapshotBlobOptions = { + cwd: mksnapshotBinaryDir, + env: process.env, + stdio, + } + + const cmd = `${mksnapshotCommand} ${mksnapshotArgs.join(' ')}` + + logInfo('Generating snapshot_blob.bin') + logDebug({ mksnapshotBinaryDir, mksnapshotCommand, mksnapshotArgs }) + logDebug(cmd) + + const mksnapshotProcess = spawnSync( + mksnapshotCommand, + mksnapshotArgs, + snapshotBlobOptions, + ) + + if (mksnapshotProcess.status !== 0) { + logError( + 'Error running mksnapshot, exited with code %d.', + mksnapshotProcess.status ?? 1, + ) + + logError(mksnapshotProcess.error) + throw new Error(` + Failed to create snapshot blob, investigate this by running: ${cmd}`) + } + + // ----------------- + // Copy resulting snapshot_blob binary + // ----------------- + fs.copyFileSync( + path.join(mksnapshotBinaryDir, snapshotBlobFile), + path.join(outputDir, snapshotBlobFile), + ) +} + +// ----------------- +// Run v8_context_snapshot_generator to generate v8_context_snapshot.bin +// ----------------- +function createV8ContextSnapshot ( + mksnapshotBinaryDir: string, + outputDir: string, +) { + const v8ContextGenCommand = path.join( + mksnapshotBinaryDir, + isWindows + ? 'v8_context_snapshot_generator.exe' + : 'v8_context_snapshot_generator', + ) + + const v8ContextGenArgs = [ + `--output_file=${path.join(outputDir, v8ContextFile)}`, + ] + + const stdio: StdioOptions = 'inherit' + const v8ContextGenOptions = { + cwd: mksnapshotBinaryDir, + env: process.env, + stdio, + } + + const cmd = `${v8ContextGenCommand} ${v8ContextGenArgs.join(' ')}` + + logInfo(`Generating ${v8ContextFile}`) + logDebug(cmd) + + const v8ContextGenProcess = spawnSync( + v8ContextGenCommand, + v8ContextGenArgs, + v8ContextGenOptions, + ) + + if (v8ContextGenProcess.status !== 0) { + logError( + 'Error running v8 context snapshot generator, exited with code %d.', + v8ContextGenProcess.status ?? 1, + ) + + logError(v8ContextGenProcess.error) + throw new Error( + `Failed to create v8 context snapshot, investigate this by running: ${cmd}`, + ) + } +} + +export function runMksnapshot (args: string[]) { + logDebug('Provided args: %o', args) + checkArgs(args) + let { outputDir, mksnapshotArgs } = extractOutdir(args) + + const res = prepareCommands(binDir, workingDir, mksnapshotArgs) + const { mksnapshotBinaryDir, mksnapshotCommand } = res + + mksnapshotArgs = res.mksnapshotArgs + + logDebug('Processed args: %o', mksnapshotArgs) + + createSnapshotBlob( + mksnapshotBinaryDir, + mksnapshotCommand, + mksnapshotArgs, + outputDir, + ) + + createV8ContextSnapshot(mksnapshotBinaryDir, outputDir) +} diff --git a/tooling/electron-mksnapshot/src/mksnapshot.ts b/tooling/electron-mksnapshot/src/mksnapshot.ts new file mode 100644 index 0000000000..48f1c47707 --- /dev/null +++ b/tooling/electron-mksnapshot/src/mksnapshot.ts @@ -0,0 +1,47 @@ +import { attemptDownload } from './mksnapshot-download' +import { Metadata } from './metadata' + +import debug from 'debug' +import { runMksnapshot } from './mksnapshot-run' +import type { VersionMeta } from './config' + +const logInfo = debug('cypress:mksnapshot:info') +const logDebug = debug('cypress:mksnapshot:debug') +const logError = debug('cypress:mksnapshot:error') + +export async function syncAndRun (version: string, args: string[]) { + const metadata = new Metadata(version) + + if (metadata.matchesCurrentConfig()) { + logDebug('Skipping download since the previous download is still current') + } else { + logInfo('Downloading snapshot binaries for version %s', version) + + try { + await attemptDownload(version, false) + } catch (err) { + logError( + 'Failed to download version "%s" of the mksnapshot binaries', + version, + ) + + logError(err) + } + // Successfully downloaded the binaries, let's update the metadata + try { + logDebug('Writing updated metadata %o', metadata.current()) + await metadata.write() + } catch (err) { + logError('Failed to write the updated metadata') + logError(err) + } + } + + runMksnapshot(args) + + return metadata.current() +} + +export function getMetadata (version: string): VersionMeta { + return new Metadata(version).current() +} diff --git a/tooling/electron-mksnapshot/src/process-args-from-file.ts b/tooling/electron-mksnapshot/src/process-args-from-file.ts new file mode 100644 index 0000000000..1a511e0c77 --- /dev/null +++ b/tooling/electron-mksnapshot/src/process-args-from-file.ts @@ -0,0 +1,83 @@ +import fs from 'fs-extra' +import path from 'path' + +import { config } from './config' +const { isWindows } = config + +export function processArgsFromFile ( + argsFilePath: string, + userMksnapshotArgs: string[], + workingDir: string, + crossArchDirs: string[], +) { + let mksnapshotArgs: string[] + let mksnapshotBinaryDir = workingDir + const binaryFile = isWindows ? 'mksnapshot.exe' : 'mksnapshot' + + if (fs.existsSync(argsFilePath)) { + // Use args from args file if it is provided as these match what is used to + // generate the original snapshot + const mksnapshotArgsSrc = fs.readFileSync(argsFilePath, 'utf8') + const newlineRegEx = /(\r\n|\r|\n)/g + const mksnapshotArgsFromFile = mksnapshotArgsSrc + .split(newlineRegEx) + .filter((arg) => { + return !arg.match(newlineRegEx) && arg !== '' + }) + + // TODO: Figure out why we need to filter this out: https://github.com/cypress-io/cypress/issues/24092 + const turboProfilingInputIndex = mksnapshotArgsFromFile.indexOf('--turbo-profiling-input') + + if (turboProfilingInputIndex > -1) { + mksnapshotArgsFromFile.splice(turboProfilingInputIndex, 2) + } + + const mksnapshotBinaryPath = path.parse(mksnapshotArgsFromFile[0]) + + if (mksnapshotBinaryPath.dir) { + mksnapshotBinaryDir = path.join(workingDir, mksnapshotBinaryPath.dir) + } + + mksnapshotArgs = userMksnapshotArgs.concat(mksnapshotArgsFromFile.slice(1)) + } else { + mksnapshotArgs = userMksnapshotArgs.concat([ + '--startup_blob', + 'snapshot_blob.bin', + ]) + + if (!mksnapshotArgs.includes('--turbo_instruction_scheduling')) { + mksnapshotArgs.push('--turbo_instruction_scheduling') + } + + const tmpBinaryPath = path.join(mksnapshotBinaryDir, binaryFile) + + if (!fs.existsSync(tmpBinaryPath)) { + const matchingDir = crossArchDirs.find((crossArchDir) => { + const candidateDir = path.join(mksnapshotBinaryDir, crossArchDir) + const candidateBinaryPath = path.join(candidateDir, binaryFile) + + if (fs.existsSync(candidateBinaryPath)) { + return true + } + + return false + }) + + if (matchingDir != null) { + mksnapshotBinaryDir = path.join(workingDir, matchingDir) + } else { + // eslint-disable-next-line no-console + console.error('ERROR: Could not find mksnapshot') + // TODO(thlorenz): shouldn't exit here technically, but I've had it cleaning up the original + // mess. + process.exit(1) + } + } + } + + return { + mksnapshotBinaryDir, + mksnapshotCommand: path.join(mksnapshotBinaryDir, binaryFile), + mksnapshotArgs, + } +} diff --git a/tooling/electron-mksnapshot/test/.mocharc.js b/tooling/electron-mksnapshot/test/.mocharc.js new file mode 100644 index 0000000000..01359e3ac7 --- /dev/null +++ b/tooling/electron-mksnapshot/test/.mocharc.js @@ -0,0 +1,9 @@ +module.exports = { + require: '@packages/ts/register', + reporter: 'mocha-multi-reporters', + reporterOptions: { + configFile: '../../mocha-reporter-config.json', + }, + timeout: 30000, + watchFiles: ['test/**/*.ts', 'src/**/*.ts'], +} diff --git a/tooling/electron-mksnapshot/test/fixtures/invalid-snapshot.js b/tooling/electron-mksnapshot/test/fixtures/invalid-snapshot.js new file mode 100644 index 0000000000..1596a35d77 --- /dev/null +++ b/tooling/electron-mksnapshot/test/fixtures/invalid-snapshot.js @@ -0,0 +1,2 @@ +const fs = require('fs') +module.exports = fs.readFileSync(__filename) diff --git a/tooling/electron-mksnapshot/test/fixtures/valid-snapshot.js b/tooling/electron-mksnapshot/test/fixtures/valid-snapshot.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tooling/electron-mksnapshot/test/integration/mksnapshot.spec.ts b/tooling/electron-mksnapshot/test/integration/mksnapshot.spec.ts new file mode 100644 index 0000000000..a98b93a97b --- /dev/null +++ b/tooling/electron-mksnapshot/test/integration/mksnapshot.spec.ts @@ -0,0 +1,53 @@ +import { syncAndRun } from '../../src/mksnapshot' +import { expect, assert } from 'chai' +import tempDir from 'temp-dir' +import path from 'path' +import fs from 'fs-extra' + +const projectRootDir = path.join(__dirname, '..', '..') +const fixturesDir = path.join(projectRootDir, 'test', 'fixtures') +const validSnapshot = path.join(fixturesDir, 'valid-snapshot.js') +const invalidSnapshot = path.join(fixturesDir, 'invalid-snapshot.js') +const outputDir = path.join(tempDir, 'test-mksnapshot') + +fs.ensureDirSync(outputDir) + +describe('mksnapshot', () => { + it('builds valid snapshot providing version 12.0.10', async () => { + const providedVersion = '12.0.10' + const args = [validSnapshot, '--output_dir', outputDir] + const { version, snapshotBlobFile, v8ContextFile } = await syncAndRun( + providedVersion, + args, + ) + + expect(version).to.equal(providedVersion) + expect(snapshotBlobFile).to.equal('snapshot_blob.bin') + expect(v8ContextFile.startsWith('v8_context_snapshot')).to.be.true + }) + + it('builds invalid snapshot providing version 12.0.10', async () => { + const providedVersion = '12.0.10' + const args = [invalidSnapshot, '--output_dir', outputDir] + + try { + await syncAndRun(providedVersion, args) + assert.fail('should fail making invalid snapshot') + } catch (err) { + expect(err.message.includes('Failed to create snapshot blob'), 'fails with helpful error message').to.be.true + } + }) + + it('builds valid snapshot providing version 14.0.0-beta.3', async () => { + const providedVersion = '14.0.0-beta.3' + const args = [validSnapshot, '--output_dir', outputDir] + const { version, snapshotBlobFile, v8ContextFile } = await syncAndRun( + providedVersion, + args, + ) + + expect(version).to.equal(providedVersion) + expect(snapshotBlobFile).to.equal('snapshot_blob.bin') + expect(v8ContextFile.startsWith('v8_context_snapshot')).to.be.true + }) +}) diff --git a/tooling/electron-mksnapshot/test/unit/download.spec.ts b/tooling/electron-mksnapshot/test/unit/download.spec.ts new file mode 100644 index 0000000000..342f8494c2 --- /dev/null +++ b/tooling/electron-mksnapshot/test/unit/download.spec.ts @@ -0,0 +1,40 @@ +import { config } from '../../src/config' +import { expect } from 'chai' +import sinon from 'sinon' +import proxyquire from 'proxyquire' + +const { platform } = config +let { archToDownload } = config + +if ( + archToDownload != null && + archToDownload.startsWith('arm') && + process.platform !== 'darwin' +) { + archToDownload += '-x64' +} + +describe('download', () => { + ['12.0.10', '14.0.0-beta.3'].forEach((version) => { + it(`downloads providing version ${version}`, async () => { + const downloadArtifact = sinon.stub() + + const { attemptDownload } = proxyquire('../../src/mksnapshot-download', { + '@electron/get': { downloadArtifact }, + 'extract-zip': sinon.stub(), + 'fs': { chmod: sinon.stub() }, + }) + + downloadArtifact.withArgs({ + version, + artifactName: 'mksnapshot', + platform, + arch: archToDownload, + }).resolves(`mksnapshot-v${version}.zip`) + + const file = await attemptDownload(version, false) + + expect(file.startsWith(`mksnapshot-v${version}`), `downloads correcly versioned ${file}`).to.be.true + }) + }) +}) diff --git a/tooling/electron-mksnapshot/tsconfig.json b/tooling/electron-mksnapshot/tsconfig.json new file mode 100644 index 0000000000..fd28b69df5 --- /dev/null +++ b/tooling/electron-mksnapshot/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../packages/ts/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "lib": ["esnext"], + "outDir": "./dist", + }, +} diff --git a/tooling/packherd/README.md b/tooling/packherd/README.md new file mode 100644 index 0000000000..6361f44a9d --- /dev/null +++ b/tooling/packherd/README.md @@ -0,0 +1,36 @@ +## @tooling/packherd + +Herds all dependencies reachable from an entry and packs them. + +**Table of Contents** + +- [Summary](#summary) +- [Creating a Bundle with Packherd](#creating-a-bundle-with-packherd) + +## Summary + +packherd has three main tasks: + +1. bundling application files and providing related metadata +2. loading modules that have been bundled previously and are provided via fully instantiated + module exports or definition functions that return a module export when invoked +3. transpiling TypeScript modules on demand and maintaining a cache of them + +`1.` is provided by this package. `2.` and `3.` are provided by `@packages/packherd-require`. While `1.` and `2.` are very related +and work hand in hand, `3.` is unrelated to them and was just added here since it is another feature that requires to intercept module loads. + +## Creating a Bundle with Packherd + +Calling the [packherd function][packherd fn] and providing the desired [packherd opts][packherd +opts] will return the `Buffer` of the bundle, a `meta` [esbuild metafile][esbuild metafile], a +`Buffer` containing the sourceMap if it was generated as well as any warnings that esbuild +emitted. + +The caller can then store this data or use it for further operations, i.e. to generate a +snapshot as is the case for the [v8-snapshot][v8-snapshot] module. + +[packherd fn]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/packherd.ts#L44 +[packherd opts]:https://github.com/cypress-io/cypress/blob/develop/packages/packherd/src/packherd.ts#L14-L27 +[esbuild metafile]:https://esbuild.github.io/api/#metafile + +[v8-snapshot]:https://github.com/thlorenz/v8-snapshot diff --git a/tooling/packherd/package.json b/tooling/packherd/package.json new file mode 100644 index 0000000000..f6912bcbad --- /dev/null +++ b/tooling/packherd/package.json @@ -0,0 +1,31 @@ +{ + "name": "@tooling/packherd", + "version": "0.0.0-development", + "description": "Herds all dependencies reachable from an entry and packs them.", + "private": true, + "main": "dist/packherd.js", + "scripts": { + "build": "tsc", + "build-prod": "yarn build", + "check-ts": "tsc --noEmit && yarn -s tslint", + "clean-deps": "rimraf node_modules", + "clean": "rimraf dist", + "test": "yarn test-integration", + "test-integration": "mocha --config ./test/.mocharc.js", + "tslint": "tslint --config ../ts/tslint.json --project .", + "watch": "tsc --watch" + }, + "dependencies": { + "debug": "^4.3.1", + "esbuild": "^0.15.3" + }, + "devDependencies": { + "@packages/ts": "0.0.0-development", + "mocha": "7.0.1" + }, + "files": [ + "dist", + "src/packherd.ts" + ], + "types": "src/packherd.ts" +} diff --git a/tooling/packherd/src/create-bundle.ts b/tooling/packherd/src/create-bundle.ts new file mode 100644 index 0000000000..83f3254644 --- /dev/null +++ b/tooling/packherd/src/create-bundle.ts @@ -0,0 +1,28 @@ +import { BuildOptions, build } from 'esbuild' +import type { CreateBundleOpts, CreateBundleResult } from './types' + +const DEFAULT_BUNDLE_OPTS: Partial = { + platform: 'node', + target: ['node14.5'], +} + +/** + * The default bundle function. + * Calls into [esbuild build](https://esbuild.github.io/api/#build-api] passing along the {@link CreateBundleOpts}. + */ +export function createBundle ( + args: CreateBundleOpts, +): Promise { + const opts = Object.assign({}, DEFAULT_BUNDLE_OPTS, args, { + entryPoints: [args.entryFilePath], + bundle: true, + write: false, + }) as BuildOptions & { write: false } + + // This is not ideal, but esbuild throws if it encounters an unknown opt + // @ts-ignore + delete opts.entryFilePath + + // NOTE: we just changed Output file to either have text: string or contents: UInt8Array, never both + return (build(opts) as unknown) as Promise +} diff --git a/tooling/packherd/src/generate-entry.ts b/tooling/packherd/src/generate-entry.ts new file mode 100644 index 0000000000..130b780642 --- /dev/null +++ b/tooling/packherd/src/generate-entry.ts @@ -0,0 +1,78 @@ +import path from 'path' + +import type { Metafile } from 'esbuild' +import type { CreateBundle } from './types' +import { getMetadata } from './get-metadata' + +const packherd = require('../package.json').name + +export type PathsMapper = (s: string) => string + +export const identityMapper: PathsMapper = (s: string) => s + +/** + * The EntryGenerator creates an entry file which includes all dependencies reachable from the [entryFilePath] but + * flattened. This is helpful while diagnosing problems as it is easier to exclude a dependency simply by commenting it + * out in the generated entry file. This entry file is then provided to packherd instead of the main app file when + * generating the bundle. + * Combined with the `nodeModulesOnly` options allows to control which files are included in the bundle in the end that + * way. + * + * @category Bundle + */ +export class EntryGenerator { + private readonly entryDirectory: string + + /** + * Creates an instance of the EntryGenerator. + * + * @param createBundle create bundle function which calls into esbuild + * @param entryFilePath file that is the apps main entry and (in)directly references all app and node_modules + * @param nodeModulesOnly if `true` only `node_modules` are included in the entry file + * @param pathsMapper if provided the module paths are mapped with it + * + * @category Bundle + */ + constructor ( + private readonly createBundle: CreateBundle, + private readonly entryFile: string, + private readonly nodeModulesOnly: boolean = true, + private readonly pathsMapper: PathsMapper = identityMapper, + ) { + this.entryDirectory = path.dirname(entryFile) + } + + async createEntryScript () { + const meta = await this._getMetadata() + + // Make paths relative to the entry dir and sort them by name + const relToCwdPaths = this._resolveRelativePaths(meta) + + relToCwdPaths.sort() + + const fullPaths = relToCwdPaths.map((x) => path.join(process.cwd(), x)) + const paths = fullPaths.map((x) => path.relative(this.entryDirectory, x)).map((x) => x.split(path.sep).join(path.posix.sep)) + + const entry = ['// vim: set ft=text:'] + .concat(paths.map((x) => `exports['./${x}'] = require('./${x}')`)) + .join('\n') + + return { paths, entry } + } + + private _getMetadata (): Promise { + return getMetadata(this.createBundle, this.entryFile, this.entryDirectory) + } + + private _resolveRelativePaths (meta: Metafile) { + let relPaths = Object.keys(meta.inputs).filter((x) => !x.includes(packherd)) + + if (this.nodeModulesOnly) { + relPaths = relPaths.filter((x) => x.includes('node_modules')) + } + + return relPaths + .map((x) => x.replace(/^node_modules\//, './node_modules/')) + .map(this.pathsMapper) + } +} diff --git a/tooling/packherd/src/get-metadata.ts b/tooling/packherd/src/get-metadata.ts new file mode 100644 index 0000000000..f674cc83c2 --- /dev/null +++ b/tooling/packherd/src/get-metadata.ts @@ -0,0 +1,30 @@ +import { strict as assert } from 'assert' +import type { Metafile } from 'esbuild' +import type { CreateBundle } from './types' + +/** + * Builds the bundle via esbuild with the sole purpose of extracting the metadata which esbuild produces aside from the + * bundle. + * This data can be used to reason about dependencies and build a custom entry file like we do in the {@link EntryGenerator}. + * {@see ./generate-entry}. + * + * @param createBundle create bundle function which calls into esbuild + * @param entryFilePath file that is the apps main entry and (in)directly references all app and node_modules + * @param outbase {@link https://esbuild.github.io/api/#outbase} directory, usually the dir where the entry file resides + */ +export async function getMetadata ( + createBundle: CreateBundle, + entryFilePath: string, + outbase: string, +): Promise { + const { metafile } = await createBundle({ + metafile: true, + outfile: '', + entryFilePath, + outbase, + }) + + assert(metafile != null, 'createBundle should return result with metaFile') + + return metafile +} diff --git a/tooling/packherd/src/packherd.ts b/tooling/packherd/src/packherd.ts new file mode 100644 index 0000000000..d545d30b74 --- /dev/null +++ b/tooling/packherd/src/packherd.ts @@ -0,0 +1,98 @@ +import path from 'path' +import { strict as assert } from 'assert' +import { createBundle as defaultCreateBundle } from './create-bundle' +import { EntryGenerator, PathsMapper } from './generate-entry' +import { tmpFilePaths } from './utils' +import type { CreateBundle } from './types' + +export * from './types' + +/** + * Options which control how the packherd bundle is generated + * + * @property entryFile: path to index file of app to bundle + * + * @property nodeModulesOnly: if `true` only `node_modules` are included in the + * bundle + * + * @property pathsMapper: if provided, the paths under which modules are + * included in the bundle will be mapped + * + * @property createBundle: allows overriding the function used to create the + * bundle + */ +export type PackherdOpts = { + entryFile: string + nodeModulesOnly?: boolean + pathsMapper?: PathsMapper + createBundle?: CreateBundle +} + +/** + * packherd function which is a thin layer around [esbuild](https://github.com/evanw/esbuild) + * + * The return value includes the below: + * - `bundle` Buffer + * - optionally a Buffer containing the `sourceMap` content + * - `meta` containing information about the bundled assets + * - `warnings` emitted by esbuild + */ +export async function packherd (opts: PackherdOpts) { + const createBundle = opts.createBundle || defaultCreateBundle + const entryGenerator = new EntryGenerator( + createBundle, + opts.entryFile, + opts.nodeModulesOnly, + opts.pathsMapper, + ) + + const { entry } = await entryGenerator.createEntryScript() + const { outfile } = await tmpFilePaths() + + const { + outputFiles, + metafile, + sourceMap: sourceMapFile, + warnings, + } = await createBundle({ + outdir: path.dirname(outfile), + metafile: true, + entryFilePath: opts.entryFile, + stdin: { + contents: entry, + sourcefile: opts.entryFile, + resolveDir: path.dirname(opts.entryFile), + }, + }) + + assert(metafile != null, 'createBundle should return metafile') + + // When using the `stdin` option esbuild sends the same outputFile twice, as + // .../stdin.js and .../entry.js + assert( + outputFiles.length === 1 || outputFiles.length === 2, + `expecting exactly one or two outputFiles, got ${outputFiles.length} instead`, + ) + + const [bundleFile] = outputFiles + + assert(bundleFile.contents != null, 'bundle output should include contents') + + const bundle = Buffer.isBuffer(bundleFile.contents) + ? bundleFile.contents + : Buffer.from(bundleFile.contents) + + const sourceMap = + sourceMapFile == null + ? undefined + : Buffer.isBuffer(sourceMapFile?.contents) + ? sourceMapFile.contents + : Buffer.from(sourceMapFile.contents) + + return { + bundle, + sourceMap, + meta: metafile, + warnings, + } +} diff --git a/tooling/packherd/src/types.ts b/tooling/packherd/src/types.ts new file mode 100644 index 0000000000..f40e4e54fe --- /dev/null +++ b/tooling/packherd/src/types.ts @@ -0,0 +1,54 @@ +import type { + BuildOptions, + BuildResult, + Metafile, + OutputFile, +} from 'esbuild' + +// ----------------- +// Bundle Creation +// ----------------- +/** + * Extension of [esbuild BuildOptions](https://esbuild.github.io/api/#simple-options). + * + * @category Bundle + */ +export type CreateBundleOpts = BuildOptions & { + entryFilePath: string +} + +/** @category Bundle */ +export type CreateBundleOutputFile = { + contents: OutputFile['contents'] +} + +/** @category Bundle */ +export type CreateBundleSourcemap = { + contents: OutputFile['contents'] +} + +/** + * Result of creating a bundle. + * + * @property warnings: emitted by esbuild + * @property outputFiles: generally the emitted bundle + * @property sourceMap: included when packherd was configured to generate it + * @property metafile: [esbuild Metafile](https://esbuild.github.io/api/#metafile) + * + * @category Bundle + */ +export type CreateBundleResult = { + warnings: BuildResult['warnings'] + outputFiles: CreateBundleOutputFile[] + sourceMap?: CreateBundleSourcemap + metafile?: Metafile +} + +/** + * Type of Function that needs to be provided in order to override the default `createBundle`. + * + * @category Bundle + */ +export type CreateBundle = ( + args: CreateBundleOpts +) => Promise diff --git a/tooling/packherd/src/utils.ts b/tooling/packherd/src/utils.ts new file mode 100644 index 0000000000..a4a0d2d9c6 --- /dev/null +++ b/tooling/packherd/src/utils.ts @@ -0,0 +1,16 @@ +import fs from 'fs-extra' +import { tmpdir } from 'os' +import path from 'path' + +/** + * Determines where to store temporary output files produced by esbuild. + */ +export async function tmpFilePaths () { + const bundleTmpDir = path.join(tmpdir(), 'packherd') + + await fs.ensureDir(bundleTmpDir) + + const outfile = path.join(bundleTmpDir, 'bundle.js') + + return { outfile } +} diff --git a/tooling/packherd/test/.mocharc.js b/tooling/packherd/test/.mocharc.js new file mode 100644 index 0000000000..646546382a --- /dev/null +++ b/tooling/packherd/test/.mocharc.js @@ -0,0 +1,10 @@ +module.exports = { + require: '@packages/ts/register', + reporter: 'mocha-multi-reporters', + reporterOptions: { + configFile: '../../mocha-reporter-config.json', + }, + timeout: 30000, + spec: 'test/**/*.spec.ts', + watchFiles: ['test/**/*.ts', 'src/**/*.ts'], +} diff --git a/tooling/packherd/test/entry-generator.spec.ts b/tooling/packherd/test/entry-generator.spec.ts new file mode 100644 index 0000000000..b82b44bd5e --- /dev/null +++ b/tooling/packherd/test/entry-generator.spec.ts @@ -0,0 +1,87 @@ +import type { Metafile } from 'esbuild' +import { createBundle } from '../src/create-bundle' +import type { + CreateBundle, + CreateBundleOpts, + CreateBundleOutputFile, + CreateBundleResult, +} from '../src/packherd' +import { expect } from 'chai' +import { EntryGenerator } from '../src/generate-entry' +import Fixtures from '@tooling/system-tests' +import * as FixturesScaffold from '@tooling/system-tests/lib/dep-installer' +import path from 'path' + +const MINIMAL_PROJECT = 'v8-snapshot/minimal' + +describe('Entry Generator', () => { + let projectBaseDir + + before(async () => { + Fixtures.remove() + await FixturesScaffold.scaffoldCommonNodeModules() + projectBaseDir = await Fixtures.scaffoldProject(MINIMAL_PROJECT) + + await FixturesScaffold.scaffoldProjectNodeModules({ project: MINIMAL_PROJECT, updateLockFile: false, forceCopyDependencies: true }) + }) + + it('resolves paths relative to entry and creates entry content', async () => { + const entryFile = require.resolve(path.join(projectBaseDir, 'entry.js')) + const generator = new EntryGenerator(createBundle, entryFile) + const { paths, entry } = await generator.createEntryScript() + + expect(paths).to.deep.equal([ + 'node_modules/isobject/index.cjs.js', + 'node_modules/tmpfile/index.js', + ]) + + expect(entry).to.equal( + `// vim: set ft=text: +exports['./node_modules/isobject/index.cjs.js'] = require('./node_modules/isobject/index.cjs.js') +exports['./node_modules/tmpfile/index.js'] = require('./node_modules/tmpfile/index.js')`, + ) + }) + + it('creates custom bundle', async () => { + const bundle: CreateBundleOutputFile = { + contents: Buffer.from('// Unused bundle content', 'utf8'), + } + const metafile: Metafile = ({ + inputs: { + 'node_modules/foo/foo.js': {}, + 'lib/bar.js': {}, + 'node_modules/baz/baz.js': {}, + }, + } as unknown) as Metafile + + const createBundle: CreateBundle = (_opts: CreateBundleOpts) => { + const result: CreateBundleResult = { + warnings: [], + outputFiles: [bundle], + metafile, + } + + return Promise.resolve(result) + } + + const entryFile = require.resolve(path.join(projectBaseDir, 'entry.js')) + const generator = new EntryGenerator(createBundle, entryFile) + + const oldWd = process.cwd() + + process.chdir(projectBaseDir) + const { paths, entry } = await generator.createEntryScript() + + process.chdir(oldWd) + + expect(paths).to.deep.equal( + ['node_modules/foo/foo.js', 'node_modules/baz/baz.js'].sort(), + ) + + expect(entry).to.equal( + `// vim: set ft=text: +exports['./node_modules/baz/baz.js'] = require('./node_modules/baz/baz.js') +exports['./node_modules/foo/foo.js'] = require('./node_modules/foo/foo.js')`, + ) + }) +}) diff --git a/tooling/packherd/test/packherd.spec.ts b/tooling/packherd/test/packherd.spec.ts new file mode 100644 index 0000000000..19611a0c59 --- /dev/null +++ b/tooling/packherd/test/packherd.spec.ts @@ -0,0 +1,86 @@ +import { + CreateBundle, + CreateBundleOpts, + CreateBundleResult, + CreateBundleOutputFile, + packherd, +} from '../src/packherd' +import { expect } from 'chai' +import type{ Metafile } from 'esbuild' +import Fixtures from '@tooling/system-tests' +import * as FixturesScaffold from '@tooling/system-tests/lib/dep-installer' +import path from 'path' + +const MINIMAL_PROJECT = 'v8-snapshot/minimal' + +const pathRelativeToCwd = (projectBaseDir, ...pathComponentsRelativeToProjectBaseDir) => { + return path.relative(process.cwd(), path.join(projectBaseDir, ...pathComponentsRelativeToProjectBaseDir)).split(path.sep).join(path.posix.sep) +} + +describe('Packherd', () => { + let projectBaseDir + + before(async () => { + Fixtures.remove() + await FixturesScaffold.scaffoldCommonNodeModules() + projectBaseDir = await Fixtures.scaffoldProject(MINIMAL_PROJECT) + + await FixturesScaffold.scaffoldProjectNodeModules({ project: MINIMAL_PROJECT, updateLockFile: false, forceCopyDependencies: true }) + }) + + it('resolves paths relative to entry and creates entry content', async () => { + const entryFile = require.resolve(path.join(projectBaseDir, 'entry.js')) + const { meta, bundle } = await packherd({ entryFile }) + + expect(Object.keys(meta.inputs)).to.deep.equal([ + pathRelativeToCwd(projectBaseDir, 'node_modules', 'isobject', 'index.cjs.js'), + pathRelativeToCwd(projectBaseDir, 'node_modules', 'tmpfile', 'index.js'), + pathRelativeToCwd(projectBaseDir, 'entry.js'), + ]) + + expect(meta.inputs[pathRelativeToCwd(projectBaseDir, 'node_modules', 'isobject', 'index.cjs.js')].bytes).to.be.gte(200) + expect(meta.inputs[pathRelativeToCwd(projectBaseDir, 'node_modules', 'tmpfile', 'index.js')].bytes).to.be.gte(800) + expect(meta.inputs[pathRelativeToCwd(projectBaseDir, 'entry.js')].bytes).to.be.gte(100) + expect(meta.inputs[pathRelativeToCwd(projectBaseDir, 'entry.js')].imports).to.deep.equal([ + { + kind: 'require-call', + path: pathRelativeToCwd(projectBaseDir, 'node_modules', 'isobject', 'index.cjs.js'), + }, + { + kind: 'require-call', + path: pathRelativeToCwd(projectBaseDir, 'node_modules', 'tmpfile', 'index.js'), + }, + ]) + + expect(bundle.length).to.be.gte(1700) + }) + + it('create custom bundle', async () => { + const bundleStub: CreateBundleOutputFile = { + contents: Buffer.from('// Unused bundle content', 'utf8'), + } + const metafile: Metafile = ({ + inputs: { + 'test/fixtures/minimal/node_modules/foo/foo.js': { bytes: 111 }, + 'test/fixtures/minimal/lib/bar.js': { bytes: 1 }, + 'test/fixtures/minimal/node_modules/baz/baz.js': { bytes: 222 }, + }, + } as unknown) as Metafile + + const createBundle: CreateBundle = (_opts: CreateBundleOpts) => { + const result: CreateBundleResult = { + warnings: [], + outputFiles: [bundleStub], + metafile, + } + + return Promise.resolve(result) + } + + const entryFile = path.relative(projectBaseDir, require.resolve(path.join(projectBaseDir, 'entry.js'))) + const { meta, bundle } = await packherd({ entryFile, createBundle }) + + expect(meta).to.deep.equal(metafile) + expect(bundle).to.equal(bundleStub.contents) + }) +}) diff --git a/tooling/packherd/tsconfig.json b/tooling/packherd/tsconfig.json new file mode 100644 index 0000000000..fd28b69df5 --- /dev/null +++ b/tooling/packherd/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../packages/ts/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "lib": ["esnext"], + "outDir": "./dist", + }, +} diff --git a/tooling/v8-snapshot/.gitignore b/tooling/v8-snapshot/.gitignore new file mode 100644 index 0000000000..537d9458d5 --- /dev/null +++ b/tooling/v8-snapshot/.gitignore @@ -0,0 +1,3 @@ +test/fixtures/*/cache/ +test/fixtures/iterative/project/* +!test/fixtures/iterative/project/yarn.lock diff --git a/tooling/v8-snapshot/README.md b/tooling/v8-snapshot/README.md new file mode 100644 index 0000000000..10b528e471 --- /dev/null +++ b/tooling/v8-snapshot/README.md @@ -0,0 +1,185 @@ +## @tooling/v8-snapshot + +Tool to create a snapshot for Electron applications. Derived and extended immensely from +[electron-link](https://github.com/atom/electron-link). + +**Table of Contents** + +- [Features](#features) +- [Snapshot Doctor](#snapshot-doctor) + - [Snapshot Creation](#snapshot-creation) + - [Requirements](#requirements) + - [Generating the Snapshot Script](#generating-the-snapshot-script) + - [Snapshot Doctor: Steps to Optimize Included Modules](#snapshot-doctor-steps-to-optimize-included-modules) + - [Strict vs. Non-Strict Mode](#strict-vs-non-strict-mode) + - [Result of Snapshot Doctor](#result-of-snapshot-doctor) +- [Env Vars](#env-vars) + +## Features + +`@tooling/v8-snapshot` aids in preparing a bundle of modules of an application and/or its dependencies to +allow those modules to be snapshotted via the `mksnapshot` tool. This snapshot can then be embedded +into the Cypress Electron application. + +## Snapshot Doctor + +The [snapshot-doctor][snapshot-doctor] is responsible for finding the best possible +combination of fully initialized (_healthy_) modules, modules included as definitions only +(_deferred_) and modules which code cannot be modified (_norewrite_). + +Please see [docs on the `SnapshotDoctor`][snapshot-doctor-class] for more info about those. + +### Snapshot Creation + +When creating a snapshot the bundled code provided to it is executed and whatever ends up being +in the heap at the end is then embedded into the snapshot which is loaded whenever the app +starts up. + +Once the snapshot is loaded we can retrieve fully instantiated modules from it or instantiate +them by invoking embedded functions which when called produce the `module.exports`. + +However since the environment is different when generating the snapshot and not everything is +snapshottable, certain requirements need to be respected. + +### Requirements + +When creating a snapshot via `mksnapshot` certain requirements need to be respected: + +- cannot `require` any Node.js core modules like `fs` +- cannot access and/or instantiate specific JS runtime objects like `Error` or `Promise` +- cannot load Node.js native modules + +### Generating the Snapshot Script + +In order to generate the snapshot script that is evaluated to produce the snapshot we perform +the following steps: + +- create bundle via our [esbuild fork][esbuild-snap] and rewrite sections in order to optimize + modules included inside the snapshot +- include this bundle inside a wrapper which sets up the `entrypoint` to use when initializing + the snapshot via evaluation +- embed a [resolver map][resolver-map] explained further below +- optionally embed more, i.e. sourcemaps + +The snapshot script can be generated in a manner that only includes `node_modules`, i.e. +dependencies of the app which is recommended while developing the app in order to not have to +create a new one after each change to application files. See [GenerationOpts][generation-opts] +`nodeModulesOnly`. + +### Snapshot Doctor: Steps to Optimize Included Modules + +The snapshot doctor steps are documented as part of the [heal method +docs][snapshot-doctor-heal] and are as follows. + +We basically are trying to initialize a module's `exports` without violating any of the +requirements. + +The doctor starts with an empty `healState` which means it optimistically assumes that all +modules can be included in the snapshot fully initialized. + +NOTE: that the healState can be derived from metadata collected during previous doctor runs, +but here we assume the simplified case. + +The doctor then produces the initial snapshot script and starts by verifying the leaf modules +which are modules that have no imports of other user land modules. + +Using that same bundle it produces different snapshot scripts, each making another module to be +verified be the entry point. This is parallelized via workers, i.e. a bundle will run as many +verifiers as the machine has CPUs. + +Each produced snapshot script is executed inside a Node.js VM via the +[snapshot-verifier][snashot-verifier]. Any errors are observed, processed into warnings and the +necessary consequence taken. +The possible consequences affect the module we verified in the following manner: + +- Defer: we need to _defer_ the module in order to prevent it from loading +- NoRewrite: we should not _rewrite_ the module as it results in invalid code +- None: no consequence, i.e. a light weight warning for informative purposes only + +Once we have done this for all leaves, the doctor finds all modules that only depend on those and +repeats the process. However the bundle that is generated takes the current (somewhat less +optimistic) _heal state_ into account and rewrites the code of the dependents to _defer_ loading +the _unhealthy_ leaves. +The next set of modules to verify is obtained via [the next stage function][doctor-next-stage]. + +We then repeat this process again for parents of modules we just verified and so on until we +verified all of them. + +More nitty gritty details are involved like handling circular imports and it is recommended to +read the [snapshot doctor API][snapshot-doctor-class] and code. + +### Strict vs. Non-Strict Mode + +Certain snapshot violations don't get caught out of the box when running via the verifier. For +example `new Error(..)` is fine when running inside the Node.js VM, but not so when creating +the snapshot. In that case the error is also very unhelpful as this just results in a +`Segmentation Fault` when running the `mksnapshot` tool. Therefore we need to catch those early +and with a helpful error so that the doctor can figure out the correct consequence. + +To achieve that we write a slightly different snapshot script while _doctoring_, see +[BlueprintConfig#includeStrictVerifiers][blueprint-config]. The code that patches those +problematic _Globals_ can be found inside [globals-strict.js][globals-strict-code]. + +### Result of Snapshot Doctor + +When the snapshot doctor completes you'll find a `snapshot-meta.json` file inside the +_cacheDir_, i.e. `./cache`. This file abbreviated looks like this (for snapshotting an app +using _express). + +```json +{ + "norewrite": [], + "deferred": [ + "./node_modules/body-parser/index.js", + "./node_modules/debug/src/browser.js", + ".. many more ..", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/http-errors/index.js" + ], + "healthy": [ + "./node_modules/accepts/index.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + ".. many more ..", + "./node_modules/unpipe/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/vary/index.js", + "./snapshot/snapshot.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "216a61df3760151255ce41db2a279ab4d83b4cb053687766b65b19c4010753a2" +} +``` + +As you can see this meta file can be used as is as long as the content of the `yarn.lock` file +doesn't change and in that case the doctor step does not have to be repeated. + +Another option is to provide the meta information to the doctor via `previousDeferred`, +`previousHealthy`, etc. in order to have it use this information instead of starting totally +from scratch. + +Aside from this script the snapshot generator allows making and installing the snapshot into +our app. See [makeAndInstallSnapshot][makeAndInstallSnapshot]. + +## Env Vars + +- `SNAPSHOT_BUNDLER` overrides Go binary to create the JavaScript bundle used to snapshot +- `SNAPSHOT_KEEP_CONFIG` when set will not delete the temporary JSON config file that is + provided to the snapshot bundler +- `V8_SNAPSHOT_FROM_SCRATCH` will not use the snapshot cache and generate v8 snapshots from scratch + +[doctor-next-stage]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts#L628 +[makeAndInstallSnapshot]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/snapshot-generator.ts#L669 + +[blueprint-config]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/blueprint.ts#L51 +[globals-strict-code]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/blueprint/globals-strict.js + +[generation-opts]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/snapshot-generator.ts#L112 +[resolver-map]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/snapshot-generator.ts#L126 +[snapshot-verifier]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/snapshot-verifier.ts#L10 + +[snapshot-doctor]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts +[snapshot-doctor-class]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts#L261 +[snapshot-doctor-heal]:https://github.com/cypress-io/cypress/blob/develop/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts#L308 +[esbuild-snap]:https://github.com/cypress-io/esbuild/tree/thlorenz/snap diff --git a/tooling/v8-snapshot/__snapshots__/express.spec.ts.js b/tooling/v8-snapshot/__snapshots__/express.spec.ts.js new file mode 100644 index 0000000000..6920d0cbb2 --- /dev/null +++ b/tooling/v8-snapshot/__snapshots__/express.spec.ts.js @@ -0,0 +1,116 @@ +exports['integration: express installs snapshot for example-express 1'] = { + "norewrite": [], + "deferred": [ + "./node_modules/body-parser/index.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/debug/src/node.js", + "./node_modules/depd/index.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/http-errors/index.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/http-errors/index.js" + ], + "healthy": [ + "./node_modules/accepts/index.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/bytes/index.js", + "./node_modules/content-disposition/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/debug/src/debug.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/ee-first/index.js", + "./node_modules/encodeurl/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/etag/index.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/finalhandler/index.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/on-finished/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-to-regexp/index.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/qs/lib/formats.js", + "./node_modules/qs/lib/index.js", + "./node_modules/qs/lib/parse.js", + "./node_modules/qs/lib/stringify.js", + "./node_modules/qs/lib/utils.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/send/node_modules/inherits/inherits.js", + "./node_modules/send/node_modules/inherits/inherits_browser.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/type-is/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/vary/index.js", + "./snapshot/snapshot.js" + ], + "deferredHashFile": "yarn.lock" +} diff --git a/tooling/v8-snapshot/cache/dev-darwin/.gitignore b/tooling/v8-snapshot/cache/dev-darwin/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-darwin/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/dev-darwin/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/dev-darwin/snapshot-meta.cache.json new file mode 100644 index 0000000000..20db9f9d07 --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-darwin/snapshot-meta.cache.json @@ -0,0 +1,3532 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/lib/open_project.ts", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fsevents/fsevents.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/index.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/registry.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/win-version-info/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/example/node_modules/glob/common.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./tooling/v8-snapshot/cache/dev-darwin/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "b23274a95457555a9102f7f660744b1a8f08324bfcfa01be64771c12fcb3ae35" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/dev-linux/.gitignore b/tooling/v8-snapshot/cache/dev-linux/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-linux/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/dev-linux/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/dev-linux/snapshot-meta.cache.json new file mode 100644 index 0000000000..e248572431 --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-linux/snapshot-meta.cache.json @@ -0,0 +1,3530 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/index.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/registry.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/win-version-info/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/example/node_modules/glob/common.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./tooling/v8-snapshot/cache/dev-linux/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "95205f49259fe2d246d45ef15d1499f6e3d1d235d6db892124bbd5423f1ba872" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/dev-win32/.gitignore b/tooling/v8-snapshot/cache/dev-win32/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-win32/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/dev-win32/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/dev-win32/snapshot-meta.cache.json new file mode 100644 index 0000000000..dfff2f7f3e --- /dev/null +++ b/tooling/v8-snapshot/cache/dev-win32/snapshot-meta.cache.json @@ -0,0 +1,3533 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/win-version-info/index.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/example/node_modules/glob/common.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./tooling/v8-snapshot/cache/dev-win32/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "5a515f98fe67a8a56a035563ff9c8b9e4a9edc4d035907c3fa5fef1bb60f1dfc" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/prod-darwin/.gitignore b/tooling/v8-snapshot/cache/prod-darwin/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-darwin/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/prod-darwin/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/prod-darwin/snapshot-meta.cache.json new file mode 100644 index 0000000000..2dbe1a95ef --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-darwin/snapshot-meta.cache.json @@ -0,0 +1,3933 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/capture.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/lib/open_project.ts", + "./packages/server/lib/util/suppress_warnings.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fsevents/fsevents.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/config/index.js", + "./packages/config/src/ast-utils/addToCypressConfig.ts", + "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts", + "./packages/config/src/browser.ts", + "./packages/config/src/index.ts", + "./packages/config/src/options.ts", + "./packages/config/src/project/index.ts", + "./packages/config/src/project/utils.ts", + "./packages/config/src/validation.ts", + "./packages/data-context/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/data-context/src/DataActions.ts", + "./packages/data-context/src/DataContext.ts", + "./packages/data-context/src/actions/DataEmitterActions.ts", + "./packages/data-context/src/actions/EventCollectorActions.ts", + "./packages/data-context/src/actions/MigrationActions.ts", + "./packages/data-context/src/actions/WizardActions.ts", + "./packages/data-context/src/actions/index.ts", + "./packages/data-context/src/codegen/code-generator.ts", + "./packages/data-context/src/codegen/index.ts", + "./packages/data-context/src/codegen/templates.ts", + "./packages/data-context/src/data/EventRegistrar.ts", + "./packages/data-context/src/data/LegacyPluginsIpc.ts", + "./packages/data-context/src/data/ProjectConfigIpc.ts", + "./packages/data-context/src/data/ProjectConfigManager.ts", + "./packages/data-context/src/data/index.ts", + "./packages/data-context/src/globalPubSub.ts", + "./packages/data-context/src/index.ts", + "./packages/data-context/src/sources/BrowserDataSource.ts", + "./packages/data-context/src/sources/CloudDataSource.ts", + "./packages/data-context/src/sources/FileDataSource.ts", + "./packages/data-context/src/sources/GitDataSource.ts", + "./packages/data-context/src/sources/GraphQLDataSource.ts", + "./packages/data-context/src/sources/HtmlDataSource.ts", + "./packages/data-context/src/sources/MigrationDataSource.ts", + "./packages/data-context/src/sources/ProjectDataSource.ts", + "./packages/data-context/src/sources/RemotePollingDataSource.ts", + "./packages/data-context/src/sources/VersionsDataSource.ts", + "./packages/data-context/src/sources/index.ts", + "./packages/data-context/src/sources/migration/autoRename.ts", + "./packages/data-context/src/sources/migration/codegen.ts", + "./packages/data-context/src/sources/migration/format.ts", + "./packages/data-context/src/sources/migration/index.ts", + "./packages/data-context/src/sources/migration/shouldShowSteps.ts", + "./packages/data-context/src/sources/migration/utils.ts", + "./packages/data-context/src/util/config-file-updater.ts", + "./packages/data-context/src/util/index.ts", + "./packages/electron/index.js", + "./packages/electron/lib/electron.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/errors/index.js", + "./packages/errors/src/errTemplate.ts", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/index.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/graphql/src/makeGraphQLServer.ts", + "./packages/graphql/src/plugins/index.ts", + "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts", + "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts", + "./packages/graphql/src/plugins/nexusNodePlugin.ts", + "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts", + "./packages/graphql/src/schema.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/index.ts", + "./packages/graphql/src/schemaTypes/index.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/index.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts", + "./packages/graphql/src/schemaTypes/objectTypes/index.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/index.ts", + "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts", + "./packages/graphql/src/schemaTypes/unions/index.ts", + "./packages/graphql/src/stitching/remoteSchema.ts", + "./packages/graphql/src/stitching/remoteSchemaWrapped.ts", + "./packages/https-proxy/index.js", + "./packages/https-proxy/test/helpers/certs.js", + "./packages/icons/dist/icons.js", + "./packages/icons/index.js", + "./packages/launcher/lib/browsers.ts", + "./packages/launcher/lib/darwin/index.ts", + "./packages/launcher/lib/darwin/util.ts", + "./packages/launcher/lib/detect.ts", + "./packages/launcher/lib/linux/index.ts", + "./packages/launcher/lib/windows/index.ts", + "./packages/net-stubbing/lib/internal-types.ts", + "./packages/net-stubbing/lib/server/driver-events.ts", + "./packages/net-stubbing/lib/server/middleware/error.ts", + "./packages/net-stubbing/lib/server/middleware/request.ts", + "./packages/net-stubbing/lib/server/middleware/response.ts", + "./packages/net-stubbing/lib/server/util.ts", + "./packages/net-stubbing/lib/types.ts", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/network/index.js", + "./packages/network/lib/agent.ts", + "./packages/network/lib/client-certificates.ts", + "./packages/network/lib/connect.ts", + "./packages/network/lib/cors.ts", + "./packages/network/lib/uri.ts", + "./packages/proxy/index.js", + "./packages/proxy/lib/http/error-middleware.ts", + "./packages/proxy/lib/http/index.ts", + "./packages/proxy/lib/http/request-middleware.ts", + "./packages/proxy/lib/http/response-middleware.ts", + "./packages/proxy/lib/http/util/buffers.ts", + "./packages/proxy/lib/http/util/prerequests.ts", + "./packages/proxy/lib/http/util/regex-rewriter.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/resolve-dist/index.js", + "./packages/rewriter/index.js", + "./packages/rewriter/lib/deferred-source-map-cache.ts", + "./packages/rewriter/lib/js.ts", + "./packages/rewriter/lib/threads/index.ts", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/scaffold-config/index.js", + "./packages/scaffold-config/src/detect.ts", + "./packages/scaffold-config/src/index.ts", + "./packages/server/lib/automation/cookies.ts", + "./packages/server/lib/browsers/browser-cri-client.ts", + "./packages/server/lib/browsers/cdp_automation.ts", + "./packages/server/lib/browsers/chrome.ts", + "./packages/server/lib/browsers/cri-client.ts", + "./packages/server/lib/browsers/electron.ts", + "./packages/server/lib/browsers/firefox-util.ts", + "./packages/server/lib/browsers/firefox.ts", + "./packages/server/lib/browsers/index.ts", + "./packages/server/lib/browsers/utils.ts", + "./packages/server/lib/browsers/webkit-automation.ts", + "./packages/server/lib/browsers/webkit.ts", + "./packages/server/lib/cache.js", + "./packages/server/lib/cloud/api.ts", + "./packages/server/lib/cloud/auth.ts", + "./packages/server/lib/cloud/exception.ts", + "./packages/server/lib/cloud/routes.ts", + "./packages/server/lib/cloud/user.ts", + "./packages/server/lib/config.ts", + "./packages/server/lib/controllers/iframes.ts", + "./packages/server/lib/cypress.js", + "./packages/server/lib/environment.js", + "./packages/server/lib/errors.ts", + "./packages/server/lib/gui/windows.ts", + "./packages/server/lib/log.js", + "./packages/server/lib/makeDataContext.ts", + "./packages/server/lib/modes/interactive.ts", + "./packages/server/lib/plugins/dev-server.js", + "./packages/server/lib/plugins/preprocessor.js", + "./packages/server/lib/plugins/run_events.js", + "./packages/server/lib/project-base.ts", + "./packages/server/lib/project_utils.ts", + "./packages/server/lib/remote_states.ts", + "./packages/server/lib/reporter.js", + "./packages/server/lib/routes-ct.ts", + "./packages/server/lib/routes-e2e.ts", + "./packages/server/lib/routes.ts", + "./packages/server/lib/saved_state.ts", + "./packages/server/lib/screenshots.js", + "./packages/server/lib/server-base.ts", + "./packages/server/lib/server-ct.ts", + "./packages/server/lib/server-e2e.ts", + "./packages/server/lib/socket-base.ts", + "./packages/server/lib/socket-ct.ts", + "./packages/server/lib/socket-e2e.ts", + "./packages/server/lib/unhandled_exceptions.ts", + "./packages/server/lib/util/app_data.js", + "./packages/server/lib/util/chrome_policy_check.js", + "./packages/server/lib/util/cookies.ts", + "./packages/server/lib/util/editors.ts", + "./packages/server/lib/util/ensure-url.ts", + "./packages/server/lib/util/exit.js", + "./packages/server/lib/util/file-opener.ts", + "./packages/server/lib/util/fs.ts", + "./packages/server/lib/util/glob.js", + "./packages/server/lib/util/process_profiler.ts", + "./packages/server/lib/util/proxy.ts", + "./packages/server/lib/util/resourceTypeAndCredentialManager.ts", + "./packages/server/lib/util/socket_allowed.ts", + "./packages/server/lib/util/stream_buffer.ts", + "./packages/server/lib/video_capture.ts", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/server/server-entry.js", + "./packages/socket/index.js", + "./packages/socket/lib/socket.ts", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js", + "./packages/ts/register.js", + "./packages/types/index.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/index.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/registry.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/win-version-info/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./package.json", + "./packages/config/src/ast-utils/astConfigHelpers.ts", + "./packages/config/src/utils.ts", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/data-context/src/actions/AppActions.ts", + "./packages/data-context/src/actions/AuthActions.ts", + "./packages/data-context/src/actions/BrowserActions.ts", + "./packages/data-context/src/actions/CohortsActions.ts", + "./packages/data-context/src/actions/DevActions.ts", + "./packages/data-context/src/actions/ElectronActions.ts", + "./packages/data-context/src/actions/ErrorActions.ts", + "./packages/data-context/src/actions/FileActions.ts", + "./packages/data-context/src/actions/LocalSettingsActions.ts", + "./packages/data-context/src/actions/ProjectActions.ts", + "./packages/data-context/src/actions/VersionsActions.ts", + "./packages/data-context/src/codegen/spec-options.ts", + "./packages/data-context/src/data/CypressEnv.ts", + "./packages/data-context/src/data/ProjectLifecycleManager.ts", + "./packages/data-context/src/data/coreDataShape.ts", + "./packages/data-context/src/gen/urql-introspection.gen.ts", + "./packages/data-context/src/sources/EnvDataSource.ts", + "./packages/data-context/src/sources/ErrorDataSource.ts", + "./packages/data-context/src/sources/RemoteRequestDataSource.ts", + "./packages/data-context/src/sources/UtilDataSource.ts", + "./packages/data-context/src/sources/WizardDataSource.ts", + "./packages/data-context/src/sources/migration/legacyOptions.ts", + "./packages/data-context/src/sources/migration/parserUtils.ts", + "./packages/data-context/src/sources/migration/regexps.ts", + "./packages/data-context/src/util/DocumentNodeBuilder.ts", + "./packages/data-context/src/util/autoBindDebug.ts", + "./packages/data-context/src/util/cached.ts", + "./packages/data-context/src/util/file.ts", + "./packages/data-context/src/util/hasTypescript.ts", + "./packages/data-context/src/util/pluginHandlers.ts", + "./packages/data-context/src/util/urqlCacheKeys.ts", + "./packages/data-context/src/util/weightedChoice.ts", + "./packages/electron/lib/install.js", + "./packages/electron/lib/paths.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/errors/src/errorTypes.ts", + "./packages/errors/src/errorUtils.ts", + "./packages/errors/src/errors.ts", + "./packages/errors/src/index.ts", + "./packages/errors/src/stackUtils.ts", + "./packages/errors/src/stripIndent.ts", + "./packages/example/index.js", + "./packages/example/lib/example.js", + "./packages/example/node_modules/glob/common.js", + "./packages/extension/index.js", + "./packages/extension/lib/extension.js", + "./packages/extension/lib/util.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/graphql/src/index.ts", + "./packages/https-proxy/lib/proxy.js", + "./packages/https-proxy/lib/server.js", + "./packages/https-proxy/lib/util/parse.js", + "./packages/https-proxy/test/helpers/https_server.js", + "./packages/launcher/index.ts", + "./packages/launcher/lib/errors.ts", + "./packages/launcher/lib/types.ts", + "./packages/launcher/lib/utils.ts", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/lib/external-types.ts", + "./packages/net-stubbing/lib/server/index.ts", + "./packages/net-stubbing/lib/server/intercepted-request.ts", + "./packages/net-stubbing/lib/server/route-matching.ts", + "./packages/net-stubbing/lib/server/state.ts", + "./packages/net-stubbing/lib/server/types.ts", + "./packages/net-stubbing/lib/util.ts", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/network/lib/allow-destroy.ts", + "./packages/network/lib/blocked.ts", + "./packages/network/lib/concat-stream.ts", + "./packages/network/lib/http-utils.ts", + "./packages/network/lib/index.ts", + "./packages/proxy/lib/http/util/ast-rewriter.ts", + "./packages/proxy/lib/http/util/cookies.ts", + "./packages/proxy/lib/http/util/inject.ts", + "./packages/proxy/lib/http/util/replace_stream.ts", + "./packages/proxy/lib/http/util/rewriter.ts", + "./packages/proxy/lib/http/util/top-simulation.ts", + "./packages/proxy/lib/index.ts", + "./packages/proxy/lib/network-proxy.ts", + "./packages/proxy/lib/types.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/resolve-dist/lib/index.ts", + "./packages/rewriter/lib/async-rewriters.ts", + "./packages/rewriter/lib/constants.json", + "./packages/rewriter/lib/html-rules.ts", + "./packages/rewriter/lib/html.ts", + "./packages/rewriter/lib/index.ts", + "./packages/rewriter/lib/js-rules.ts", + "./packages/rewriter/lib/util/source-maps.ts", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/root/index.js", + "./packages/scaffold-config/src/commandFile.ts", + "./packages/scaffold-config/src/component-index-template.ts", + "./packages/scaffold-config/src/dependencies.ts", + "./packages/scaffold-config/src/frameworks.ts", + "./packages/scaffold-config/src/supportFile.ts", + "./packages/server/config/app.json", + "./packages/server/lib/automation/automation.ts", + "./packages/server/lib/automation/index.ts", + "./packages/server/lib/automation/screenshot.ts", + "./packages/server/lib/browsers/protocol.ts", + "./packages/server/lib/cloud/machine_id.js", + "./packages/server/lib/cloud/upload.ts", + "./packages/server/lib/cohorts.ts", + "./packages/server/lib/controllers/client.js", + "./packages/server/lib/controllers/files.js", + "./packages/server/lib/controllers/reporter.js", + "./packages/server/lib/controllers/runner.ts", + "./packages/server/lib/controllers/spec.js", + "./packages/server/lib/controllers/xhrs.js", + "./packages/server/lib/cwd.js", + "./packages/server/lib/exec.js", + "./packages/server/lib/experiments.ts", + "./packages/server/lib/file_server.js", + "./packages/server/lib/files.js", + "./packages/server/lib/fixture.js", + "./packages/server/lib/gui/links.ts", + "./packages/server/lib/gui/menu.js", + "./packages/server/lib/modes/exit.js", + "./packages/server/lib/modes/index.ts", + "./packages/server/lib/modes/info.js", + "./packages/server/lib/modes/pkg.js", + "./packages/server/lib/modes/smoke_test.js", + "./packages/server/lib/override_require.ts", + "./packages/server/lib/plugins/index.ts", + "./packages/server/lib/request.js", + "./packages/server/lib/session.ts", + "./packages/server/lib/studio.ts", + "./packages/server/lib/task.js", + "./packages/server/lib/template_engine.js", + "./packages/server/lib/util/args.js", + "./packages/server/lib/util/cache_buster.js", + "./packages/server/lib/util/ci_provider.js", + "./packages/server/lib/util/class-helpers.ts", + "./packages/server/lib/util/duration.js", + "./packages/server/lib/util/electron-app.js", + "./packages/server/lib/util/env-editors.ts", + "./packages/server/lib/util/env.js", + "./packages/server/lib/util/escape_filename.ts", + "./packages/server/lib/util/file.js", + "./packages/server/lib/util/find_process.js", + "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/headers.js", + "./packages/server/lib/util/human_time.js", + "./packages/server/lib/util/net_profiler.js", + "./packages/server/lib/util/network_failures.js", + "./packages/server/lib/util/newlines.js", + "./packages/server/lib/util/obj_utils.ts", + "./packages/server/lib/util/open.js", + "./packages/server/lib/util/patch-fs.ts", + "./packages/server/lib/util/performance_benchmark.js", + "./packages/server/lib/util/print-run.ts", + "./packages/server/lib/util/profile_cleaner.js", + "./packages/server/lib/util/random.js", + "./packages/server/lib/util/server_destroy.ts", + "./packages/server/lib/util/shell.js", + "./packages/server/lib/util/spec_writer.ts", + "./packages/server/lib/util/status_code.js", + "./packages/server/lib/util/system.js", + "./packages/server/lib/util/terminal-size.js", + "./packages/server/lib/util/terminal.js", + "./packages/server/lib/util/tests_utils.ts", + "./packages/server/lib/util/trash.js", + "./packages/server/lib/util/tty.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./packages/ts/registerDir.js", + "./packages/types/src/auth.ts", + "./packages/types/src/automation.ts", + "./packages/types/src/browser.ts", + "./packages/types/src/cache.ts", + "./packages/types/src/config.ts", + "./packages/types/src/constants.ts", + "./packages/types/src/driver.ts", + "./packages/types/src/editors.ts", + "./packages/types/src/git.ts", + "./packages/types/src/index.ts", + "./packages/types/src/modeOptions.ts", + "./packages/types/src/preferences.ts", + "./packages/types/src/reporter.ts", + "./packages/types/src/server.ts", + "./packages/types/src/spec.ts", + "./packages/types/src/util.ts", + "./packages/types/src/video.ts", + "./packages/types/src/warning.ts", + "./tooling/v8-snapshot/cache/prod-darwin/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "95205f49259fe2d246d45ef15d1499f6e3d1d235d6db892124bbd5423f1ba872" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/prod-linux/.gitignore b/tooling/v8-snapshot/cache/prod-linux/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-linux/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/prod-linux/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/prod-linux/snapshot-meta.cache.json new file mode 100644 index 0000000000..61fc0d6d6c --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-linux/snapshot-meta.cache.json @@ -0,0 +1,3932 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/capture.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/lib/open_project.ts", + "./packages/server/lib/util/suppress_warnings.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/config/index.js", + "./packages/config/src/ast-utils/addToCypressConfig.ts", + "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts", + "./packages/config/src/browser.ts", + "./packages/config/src/index.ts", + "./packages/config/src/options.ts", + "./packages/config/src/project/index.ts", + "./packages/config/src/project/utils.ts", + "./packages/config/src/validation.ts", + "./packages/data-context/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/data-context/src/DataActions.ts", + "./packages/data-context/src/DataContext.ts", + "./packages/data-context/src/actions/DataEmitterActions.ts", + "./packages/data-context/src/actions/EventCollectorActions.ts", + "./packages/data-context/src/actions/MigrationActions.ts", + "./packages/data-context/src/actions/WizardActions.ts", + "./packages/data-context/src/actions/index.ts", + "./packages/data-context/src/codegen/code-generator.ts", + "./packages/data-context/src/codegen/index.ts", + "./packages/data-context/src/codegen/templates.ts", + "./packages/data-context/src/data/EventRegistrar.ts", + "./packages/data-context/src/data/LegacyPluginsIpc.ts", + "./packages/data-context/src/data/ProjectConfigIpc.ts", + "./packages/data-context/src/data/ProjectConfigManager.ts", + "./packages/data-context/src/data/index.ts", + "./packages/data-context/src/globalPubSub.ts", + "./packages/data-context/src/index.ts", + "./packages/data-context/src/sources/BrowserDataSource.ts", + "./packages/data-context/src/sources/CloudDataSource.ts", + "./packages/data-context/src/sources/FileDataSource.ts", + "./packages/data-context/src/sources/GitDataSource.ts", + "./packages/data-context/src/sources/GraphQLDataSource.ts", + "./packages/data-context/src/sources/HtmlDataSource.ts", + "./packages/data-context/src/sources/MigrationDataSource.ts", + "./packages/data-context/src/sources/ProjectDataSource.ts", + "./packages/data-context/src/sources/RemotePollingDataSource.ts", + "./packages/data-context/src/sources/VersionsDataSource.ts", + "./packages/data-context/src/sources/index.ts", + "./packages/data-context/src/sources/migration/autoRename.ts", + "./packages/data-context/src/sources/migration/codegen.ts", + "./packages/data-context/src/sources/migration/format.ts", + "./packages/data-context/src/sources/migration/index.ts", + "./packages/data-context/src/sources/migration/shouldShowSteps.ts", + "./packages/data-context/src/sources/migration/utils.ts", + "./packages/data-context/src/util/config-file-updater.ts", + "./packages/data-context/src/util/index.ts", + "./packages/electron/index.js", + "./packages/electron/lib/electron.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/errors/index.js", + "./packages/errors/src/errTemplate.ts", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/index.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/graphql/src/makeGraphQLServer.ts", + "./packages/graphql/src/plugins/index.ts", + "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts", + "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts", + "./packages/graphql/src/plugins/nexusNodePlugin.ts", + "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts", + "./packages/graphql/src/schema.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/index.ts", + "./packages/graphql/src/schemaTypes/index.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/index.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts", + "./packages/graphql/src/schemaTypes/objectTypes/index.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/index.ts", + "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts", + "./packages/graphql/src/schemaTypes/unions/index.ts", + "./packages/graphql/src/stitching/remoteSchema.ts", + "./packages/graphql/src/stitching/remoteSchemaWrapped.ts", + "./packages/https-proxy/index.js", + "./packages/https-proxy/test/helpers/certs.js", + "./packages/icons/dist/icons.js", + "./packages/icons/index.js", + "./packages/launcher/lib/browsers.ts", + "./packages/launcher/lib/darwin/index.ts", + "./packages/launcher/lib/darwin/util.ts", + "./packages/launcher/lib/detect.ts", + "./packages/launcher/lib/linux/index.ts", + "./packages/launcher/lib/windows/index.ts", + "./packages/net-stubbing/lib/internal-types.ts", + "./packages/net-stubbing/lib/server/driver-events.ts", + "./packages/net-stubbing/lib/server/middleware/error.ts", + "./packages/net-stubbing/lib/server/middleware/request.ts", + "./packages/net-stubbing/lib/server/middleware/response.ts", + "./packages/net-stubbing/lib/server/util.ts", + "./packages/net-stubbing/lib/types.ts", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/network/index.js", + "./packages/network/lib/agent.ts", + "./packages/network/lib/client-certificates.ts", + "./packages/network/lib/connect.ts", + "./packages/network/lib/cors.ts", + "./packages/network/lib/uri.ts", + "./packages/proxy/index.js", + "./packages/proxy/lib/http/error-middleware.ts", + "./packages/proxy/lib/http/index.ts", + "./packages/proxy/lib/http/request-middleware.ts", + "./packages/proxy/lib/http/response-middleware.ts", + "./packages/proxy/lib/http/util/buffers.ts", + "./packages/proxy/lib/http/util/prerequests.ts", + "./packages/proxy/lib/http/util/regex-rewriter.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/resolve-dist/index.js", + "./packages/rewriter/index.js", + "./packages/rewriter/lib/deferred-source-map-cache.ts", + "./packages/rewriter/lib/js.ts", + "./packages/rewriter/lib/threads/index.ts", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/scaffold-config/index.js", + "./packages/scaffold-config/src/detect.ts", + "./packages/scaffold-config/src/index.ts", + "./packages/server/lib/automation/cookies.ts", + "./packages/server/lib/browsers/browser-cri-client.ts", + "./packages/server/lib/browsers/cdp_automation.ts", + "./packages/server/lib/browsers/chrome.ts", + "./packages/server/lib/browsers/cri-client.ts", + "./packages/server/lib/browsers/electron.ts", + "./packages/server/lib/browsers/firefox-util.ts", + "./packages/server/lib/browsers/firefox.ts", + "./packages/server/lib/browsers/index.ts", + "./packages/server/lib/browsers/utils.ts", + "./packages/server/lib/browsers/webkit-automation.ts", + "./packages/server/lib/browsers/webkit.ts", + "./packages/server/lib/cache.js", + "./packages/server/lib/cloud/api.ts", + "./packages/server/lib/cloud/auth.ts", + "./packages/server/lib/cloud/exception.ts", + "./packages/server/lib/cloud/routes.ts", + "./packages/server/lib/cloud/user.ts", + "./packages/server/lib/config.ts", + "./packages/server/lib/controllers/iframes.ts", + "./packages/server/lib/cypress.js", + "./packages/server/lib/environment.js", + "./packages/server/lib/errors.ts", + "./packages/server/lib/gui/windows.ts", + "./packages/server/lib/log.js", + "./packages/server/lib/makeDataContext.ts", + "./packages/server/lib/modes/interactive.ts", + "./packages/server/lib/plugins/dev-server.js", + "./packages/server/lib/plugins/preprocessor.js", + "./packages/server/lib/plugins/run_events.js", + "./packages/server/lib/project-base.ts", + "./packages/server/lib/project_utils.ts", + "./packages/server/lib/remote_states.ts", + "./packages/server/lib/reporter.js", + "./packages/server/lib/routes-ct.ts", + "./packages/server/lib/routes-e2e.ts", + "./packages/server/lib/routes.ts", + "./packages/server/lib/saved_state.ts", + "./packages/server/lib/screenshots.js", + "./packages/server/lib/server-base.ts", + "./packages/server/lib/server-ct.ts", + "./packages/server/lib/server-e2e.ts", + "./packages/server/lib/socket-base.ts", + "./packages/server/lib/socket-ct.ts", + "./packages/server/lib/socket-e2e.ts", + "./packages/server/lib/unhandled_exceptions.ts", + "./packages/server/lib/util/app_data.js", + "./packages/server/lib/util/chrome_policy_check.js", + "./packages/server/lib/util/cookies.ts", + "./packages/server/lib/util/editors.ts", + "./packages/server/lib/util/ensure-url.ts", + "./packages/server/lib/util/exit.js", + "./packages/server/lib/util/file-opener.ts", + "./packages/server/lib/util/fs.ts", + "./packages/server/lib/util/glob.js", + "./packages/server/lib/util/process_profiler.ts", + "./packages/server/lib/util/proxy.ts", + "./packages/server/lib/util/resourceTypeAndCredentialManager.ts", + "./packages/server/lib/util/socket_allowed.ts", + "./packages/server/lib/util/stream_buffer.ts", + "./packages/server/lib/video_capture.ts", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/server/server-entry.js", + "./packages/socket/index.js", + "./packages/socket/lib/socket.ts", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js", + "./packages/ts/register.js", + "./packages/types/index.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/index.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/registry-js/dist/lib/registry.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/win-version-info/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./package.json", + "./packages/config/src/ast-utils/astConfigHelpers.ts", + "./packages/config/src/utils.ts", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/data-context/src/actions/AppActions.ts", + "./packages/data-context/src/actions/AuthActions.ts", + "./packages/data-context/src/actions/BrowserActions.ts", + "./packages/data-context/src/actions/CohortsActions.ts", + "./packages/data-context/src/actions/DevActions.ts", + "./packages/data-context/src/actions/ElectronActions.ts", + "./packages/data-context/src/actions/ErrorActions.ts", + "./packages/data-context/src/actions/FileActions.ts", + "./packages/data-context/src/actions/LocalSettingsActions.ts", + "./packages/data-context/src/actions/ProjectActions.ts", + "./packages/data-context/src/actions/VersionsActions.ts", + "./packages/data-context/src/codegen/spec-options.ts", + "./packages/data-context/src/data/CypressEnv.ts", + "./packages/data-context/src/data/ProjectLifecycleManager.ts", + "./packages/data-context/src/data/coreDataShape.ts", + "./packages/data-context/src/gen/urql-introspection.gen.ts", + "./packages/data-context/src/sources/EnvDataSource.ts", + "./packages/data-context/src/sources/ErrorDataSource.ts", + "./packages/data-context/src/sources/RemoteRequestDataSource.ts", + "./packages/data-context/src/sources/UtilDataSource.ts", + "./packages/data-context/src/sources/WizardDataSource.ts", + "./packages/data-context/src/sources/migration/legacyOptions.ts", + "./packages/data-context/src/sources/migration/parserUtils.ts", + "./packages/data-context/src/sources/migration/regexps.ts", + "./packages/data-context/src/util/DocumentNodeBuilder.ts", + "./packages/data-context/src/util/autoBindDebug.ts", + "./packages/data-context/src/util/cached.ts", + "./packages/data-context/src/util/file.ts", + "./packages/data-context/src/util/hasTypescript.ts", + "./packages/data-context/src/util/pluginHandlers.ts", + "./packages/data-context/src/util/urqlCacheKeys.ts", + "./packages/data-context/src/util/weightedChoice.ts", + "./packages/electron/lib/install.js", + "./packages/electron/lib/paths.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/errors/src/errorTypes.ts", + "./packages/errors/src/errorUtils.ts", + "./packages/errors/src/errors.ts", + "./packages/errors/src/index.ts", + "./packages/errors/src/stackUtils.ts", + "./packages/errors/src/stripIndent.ts", + "./packages/example/index.js", + "./packages/example/lib/example.js", + "./packages/example/node_modules/glob/common.js", + "./packages/extension/index.js", + "./packages/extension/lib/extension.js", + "./packages/extension/lib/util.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/graphql/src/index.ts", + "./packages/https-proxy/lib/proxy.js", + "./packages/https-proxy/lib/server.js", + "./packages/https-proxy/lib/util/parse.js", + "./packages/https-proxy/test/helpers/https_server.js", + "./packages/launcher/index.ts", + "./packages/launcher/lib/errors.ts", + "./packages/launcher/lib/types.ts", + "./packages/launcher/lib/utils.ts", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/lib/external-types.ts", + "./packages/net-stubbing/lib/server/index.ts", + "./packages/net-stubbing/lib/server/intercepted-request.ts", + "./packages/net-stubbing/lib/server/route-matching.ts", + "./packages/net-stubbing/lib/server/state.ts", + "./packages/net-stubbing/lib/server/types.ts", + "./packages/net-stubbing/lib/util.ts", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/network/lib/allow-destroy.ts", + "./packages/network/lib/blocked.ts", + "./packages/network/lib/concat-stream.ts", + "./packages/network/lib/http-utils.ts", + "./packages/network/lib/index.ts", + "./packages/proxy/lib/http/util/ast-rewriter.ts", + "./packages/proxy/lib/http/util/cookies.ts", + "./packages/proxy/lib/http/util/inject.ts", + "./packages/proxy/lib/http/util/replace_stream.ts", + "./packages/proxy/lib/http/util/rewriter.ts", + "./packages/proxy/lib/http/util/top-simulation.ts", + "./packages/proxy/lib/index.ts", + "./packages/proxy/lib/network-proxy.ts", + "./packages/proxy/lib/types.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/resolve-dist/lib/index.ts", + "./packages/rewriter/lib/async-rewriters.ts", + "./packages/rewriter/lib/constants.json", + "./packages/rewriter/lib/html-rules.ts", + "./packages/rewriter/lib/html.ts", + "./packages/rewriter/lib/index.ts", + "./packages/rewriter/lib/js-rules.ts", + "./packages/rewriter/lib/util/source-maps.ts", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/root/index.js", + "./packages/scaffold-config/src/commandFile.ts", + "./packages/scaffold-config/src/component-index-template.ts", + "./packages/scaffold-config/src/dependencies.ts", + "./packages/scaffold-config/src/frameworks.ts", + "./packages/scaffold-config/src/supportFile.ts", + "./packages/server/config/app.json", + "./packages/server/lib/automation/automation.ts", + "./packages/server/lib/automation/index.ts", + "./packages/server/lib/automation/screenshot.ts", + "./packages/server/lib/browsers/protocol.ts", + "./packages/server/lib/cloud/machine_id.js", + "./packages/server/lib/cloud/upload.ts", + "./packages/server/lib/cohorts.ts", + "./packages/server/lib/controllers/client.js", + "./packages/server/lib/controllers/files.js", + "./packages/server/lib/controllers/reporter.js", + "./packages/server/lib/controllers/runner.ts", + "./packages/server/lib/controllers/spec.js", + "./packages/server/lib/controllers/xhrs.js", + "./packages/server/lib/cwd.js", + "./packages/server/lib/exec.js", + "./packages/server/lib/experiments.ts", + "./packages/server/lib/file_server.js", + "./packages/server/lib/files.js", + "./packages/server/lib/fixture.js", + "./packages/server/lib/gui/links.ts", + "./packages/server/lib/gui/menu.js", + "./packages/server/lib/modes/exit.js", + "./packages/server/lib/modes/index.ts", + "./packages/server/lib/modes/info.js", + "./packages/server/lib/modes/pkg.js", + "./packages/server/lib/modes/smoke_test.js", + "./packages/server/lib/override_require.ts", + "./packages/server/lib/plugins/index.ts", + "./packages/server/lib/request.js", + "./packages/server/lib/session.ts", + "./packages/server/lib/studio.ts", + "./packages/server/lib/task.js", + "./packages/server/lib/template_engine.js", + "./packages/server/lib/util/args.js", + "./packages/server/lib/util/cache_buster.js", + "./packages/server/lib/util/ci_provider.js", + "./packages/server/lib/util/class-helpers.ts", + "./packages/server/lib/util/duration.js", + "./packages/server/lib/util/electron-app.js", + "./packages/server/lib/util/env-editors.ts", + "./packages/server/lib/util/env.js", + "./packages/server/lib/util/escape_filename.ts", + "./packages/server/lib/util/file.js", + "./packages/server/lib/util/find_process.js", + "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/headers.js", + "./packages/server/lib/util/human_time.js", + "./packages/server/lib/util/net_profiler.js", + "./packages/server/lib/util/network_failures.js", + "./packages/server/lib/util/newlines.js", + "./packages/server/lib/util/obj_utils.ts", + "./packages/server/lib/util/open.js", + "./packages/server/lib/util/patch-fs.ts", + "./packages/server/lib/util/performance_benchmark.js", + "./packages/server/lib/util/print-run.ts", + "./packages/server/lib/util/profile_cleaner.js", + "./packages/server/lib/util/random.js", + "./packages/server/lib/util/server_destroy.ts", + "./packages/server/lib/util/shell.js", + "./packages/server/lib/util/spec_writer.ts", + "./packages/server/lib/util/status_code.js", + "./packages/server/lib/util/system.js", + "./packages/server/lib/util/terminal-size.js", + "./packages/server/lib/util/terminal.js", + "./packages/server/lib/util/tests_utils.ts", + "./packages/server/lib/util/trash.js", + "./packages/server/lib/util/tty.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./packages/ts/registerDir.js", + "./packages/types/src/auth.ts", + "./packages/types/src/automation.ts", + "./packages/types/src/browser.ts", + "./packages/types/src/cache.ts", + "./packages/types/src/config.ts", + "./packages/types/src/constants.ts", + "./packages/types/src/driver.ts", + "./packages/types/src/editors.ts", + "./packages/types/src/git.ts", + "./packages/types/src/index.ts", + "./packages/types/src/modeOptions.ts", + "./packages/types/src/preferences.ts", + "./packages/types/src/reporter.ts", + "./packages/types/src/server.ts", + "./packages/types/src/spec.ts", + "./packages/types/src/util.ts", + "./packages/types/src/video.ts", + "./packages/types/src/warning.ts", + "./tooling/v8-snapshot/cache/prod-linux/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "95205f49259fe2d246d45ef15d1499f6e3d1d235d6db892124bbd5423f1ba872" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/prod-win32/.gitignore b/tooling/v8-snapshot/cache/prod-win32/.gitignore new file mode 100644 index 0000000000..f2ac6f2429 --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-win32/.gitignore @@ -0,0 +1,6 @@ +snapshot.js +base.snapshot.js.map +processed.snapshot.js.map +esbuild-meta.json +snapshot-meta.json +snapshot-entry.js diff --git a/tooling/v8-snapshot/cache/prod-win32/snapshot-meta.cache.json b/tooling/v8-snapshot/cache/prod-win32/snapshot-meta.cache.json new file mode 100644 index 0000000000..c0c3943ff8 --- /dev/null +++ b/tooling/v8-snapshot/cache/prod-win32/snapshot-meta.cache.json @@ -0,0 +1,3935 @@ +{ + "norewrite": [ + "./evil-dns/evil-dns.js", + "./get-stream/buffer-stream.js", + "./graceful-fs/polyfills.js", + "./lockfile/lockfile.js", + "./node_modules/@babel/traverse/lib/path/comments.js", + "./node_modules/@babel/traverse/lib/path/conversion.js", + "./node_modules/@babel/traverse/lib/path/family.js", + "./node_modules/@babel/traverse/lib/path/introspection.js", + "./node_modules/@cspotcode/source-map-support/source-map-support.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js", + "./node_modules/@cypress/get-windows-proxy/src/registry.js", + "./node_modules/body-parser/node_modules/debug/src/node.js", + "./node_modules/chalk/node_modules/supports-color/index.js", + "./node_modules/coffeescript/lib/coffee-script/helpers.js", + "./node_modules/colors/lib/system/supports-colors.js", + "./node_modules/compression/node_modules/debug/src/node.js", + "./node_modules/debug/src/node.js", + "./node_modules/express/node_modules/debug/src/node.js", + "./node_modules/finalhandler/node_modules/debug/src/node.js", + "./node_modules/fs-extra/node_modules/jsonfile/index.js", + "./node_modules/get-package-info/node_modules/debug/src/node.js", + "./node_modules/graceful-fs/polyfills.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/function.js", + "./node_modules/jsonfile/index.js", + "./node_modules/make-dir/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/node.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/node.js", + "./node_modules/mocha/node_modules/debug/src/node.js", + "./node_modules/morgan/node_modules/debug/src/node.js", + "./node_modules/prettier/index.js", + "./node_modules/prettier/third-party.js", + "./node_modules/send/node_modules/debug/src/node.js", + "./node_modules/stream-parser/node_modules/debug/src/node.js", + "./node_modules/tcp-port-used/node_modules/debug/src/node.js", + "./node_modules/trash/node_modules/make-dir/index.js", + "./node_modules/utif/UTIF.js", + "./packages/data-context/node_modules/debug/src/node.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/graphql/node_modules/debug/src/node.js", + "./packages/https-proxy/lib/ca.js", + "./packages/net-stubbing/node_modules/debug/src/node.js", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/server/lib/capture.js", + "./packages/server/lib/modes/record.js", + "./packages/server/lib/modes/run.ts", + "./packages/server/lib/open_project.ts", + "./packages/server/lib/util/suppress_warnings.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/polyfills.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/node.js", + "./packages/server/node_modules/signal-exit/index.js", + "./process-nextick-args/index.js", + "./signal-exit/index.js", + "./ws/lib/websocket.js" + ], + "deferred": [ + "./node_modules/@babel/generator/lib/node/index.js", + "./node_modules/@babel/generator/lib/node/whitespace.js", + "./node_modules/@babel/helper-environment-visitor/lib/index.js", + "./node_modules/@babel/traverse/lib/context.js", + "./node_modules/@babel/traverse/lib/index.js", + "./node_modules/@babel/traverse/lib/path/ancestry.js", + "./node_modules/@babel/traverse/lib/path/context.js", + "./node_modules/@babel/traverse/lib/path/index.js", + "./node_modules/@babel/traverse/lib/path/modification.js", + "./node_modules/@babel/traverse/lib/path/removal.js", + "./node_modules/@babel/traverse/lib/path/replacement.js", + "./node_modules/@babel/traverse/lib/scope/index.js", + "./node_modules/@babel/traverse/lib/traverse-node.js", + "./node_modules/@babel/types/lib/definitions/core.js", + "./node_modules/@babel/types/lib/definitions/experimental.js", + "./node_modules/@babel/types/lib/definitions/flow.js", + "./node_modules/@babel/types/lib/definitions/index.js", + "./node_modules/@babel/types/lib/definitions/jsx.js", + "./node_modules/@babel/types/lib/definitions/misc.js", + "./node_modules/@babel/types/lib/definitions/placeholders.js", + "./node_modules/@babel/types/lib/definitions/typescript.js", + "./node_modules/@babel/types/lib/definitions/utils.js", + "./node_modules/@babel/types/lib/index.js", + "./node_modules/@babel/types/lib/validators/is.js", + "./node_modules/@babel/types/lib/validators/isPlaceholderType.js", + "./node_modules/@babel/types/lib/validators/isType.js", + "./node_modules/@babel/types/lib/validators/validate.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/browser.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/errname.js", + "./node_modules/@cypress/commit-info/node_modules/semver/semver.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/browser.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/index.js", + "./node_modules/@cypress/request-promise/lib/rp.js", + "./node_modules/@cypress/request/index.js", + "./node_modules/@cypress/request/lib/helpers.js", + "./node_modules/@cypress/request/lib/querystring.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/index.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/md5.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/rng.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/sha1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v1.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v3.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v4.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v5.js", + "./node_modules/@cypress/request/request.js", + "./node_modules/@electron/get/dist/cjs/Cache.js", + "./node_modules/@electron/get/dist/cjs/index.js", + "./node_modules/@electron/get/node_modules/@sindresorhus/is/dist/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/@electron/get/node_modules/got/source/index.js", + "./node_modules/@electron/get/node_modules/normalize-url/index.js", + "./node_modules/@electron/get/node_modules/semver/semver.js", + "./node_modules/@ffmpeg-installer/ffmpeg/index.js", + "./node_modules/@graphql-tools/batch-execute/index.js", + "./node_modules/@graphql-tools/batch-execute/node_modules/dataloader/index.js", + "./node_modules/@jimp/core/dist/index.js", + "./node_modules/@jimp/core/dist/request.js", + "./node_modules/@jimp/custom/dist/index.js", + "./node_modules/@jimp/jpeg/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/decoder.js", + "./node_modules/@jimp/plugin-print/dist/index.js", + "./node_modules/@jimp/plugins/dist/index.js", + "./node_modules/@jimp/tiff/dist/index.js", + "./node_modules/@jimp/types/dist/index.js", + "./node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js", + "./node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js", + "./node_modules/@kwsites/file-exists/dist/index.js", + "./node_modules/@kwsites/file-exists/dist/src/index.js", + "./node_modules/@nodelib/fs.scandir/out/adapters/fs.js", + "./node_modules/@nodelib/fs.stat/out/adapters/fs.js", + "./node_modules/adm-zip/adm-zip.js", + "./node_modules/adm-zip/util/fattr.js", + "./node_modules/adm-zip/util/index.js", + "./node_modules/adm-zip/util/utils.js", + "./node_modules/archiver-utils/node_modules/glob/glob.js", + "./node_modules/archiver-utils/node_modules/glob/sync.js", + "./node_modules/archiver/index.js", + "./node_modules/archiver/lib/core.js", + "./node_modules/archiver/lib/error.js", + "./node_modules/archiver/lib/plugins/json.js", + "./node_modules/archiver/node_modules/async/dist/async.js", + "./node_modules/archiver/node_modules/readable-stream/errors.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/archiver/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/archiver/node_modules/readable-stream/readable.js", + "./node_modules/array-uniq/index.js", + "./node_modules/assert-plus/assert.js", + "./node_modules/basic-auth/node_modules/safe-buffer/index.js", + "./node_modules/bl/bl.js", + "./node_modules/bl/node_modules/readable-stream/errors.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/bl/node_modules/readable-stream/readable.js", + "./node_modules/black-hole-stream/index.js", + "./node_modules/body-parser/index.js", + "./node_modules/body-parser/node_modules/debug/src/browser.js", + "./node_modules/body-parser/node_modules/debug/src/index.js", + "./node_modules/body-parser/node_modules/http-errors/index.js", + "./node_modules/buffer-crc32/index.js", + "./node_modules/buffer-from/index.js", + "./node_modules/chalk/index.js", + "./node_modules/chrome-remote-interface/index.js", + "./node_modules/chrome-remote-interface/lib/chrome.js", + "./node_modules/chrome-remote-interface/node_modules/ws/index.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/constants.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/receiver.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket-server.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/websocket.js", + "./node_modules/coffeescript/lib/coffee-script/coffee-script.js", + "./node_modules/coffeescript/lib/coffee-script/nodes.js", + "./node_modules/coffeescript/lib/coffee-script/register.js", + "./node_modules/colors/lib/colors.js", + "./node_modules/colors/safe.js", + "./node_modules/combined-stream/lib/combined_stream.js", + "./node_modules/compress-commons/lib/archivers/archive-output-stream.js", + "./node_modules/compress-commons/lib/archivers/zip/constants.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js", + "./node_modules/compress-commons/lib/compress-commons.js", + "./node_modules/compress-commons/node_modules/readable-stream/errors.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/readable.js", + "./node_modules/compression/node_modules/debug/src/browser.js", + "./node_modules/compression/node_modules/debug/src/index.js", + "./node_modules/compression/node_modules/safe-buffer/index.js", + "./node_modules/concat-stream/index.js", + "./node_modules/config-chain/index.js", + "./node_modules/cp-file/cp-file-error.js", + "./node_modules/cp-file/fs.js", + "./node_modules/cp-file/progress-emitter.js", + "./node_modules/crc-32/crc32.js", + "./node_modules/crc32-stream/lib/crc32-stream.js", + "./node_modules/crc32-stream/lib/deflate-crc32-stream.js", + "./node_modules/crc32-stream/lib/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/errors.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/readable.js", + "./node_modules/cross-spawn-async/lib/parse.js", + "./node_modules/cross-spawn-async/lib/resolveCommand.js", + "./node_modules/debug/src/browser.js", + "./node_modules/debug/src/index.js", + "./node_modules/default-shell/index.js", + "./node_modules/delayed-stream/lib/delayed_stream.js", + "./node_modules/depd/index.js", + "./node_modules/duplexer3/index.js", + "./node_modules/duplexify/index.js", + "./node_modules/ejs/lib/ejs.js", + "./node_modules/electron-is-dev/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/index.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/internal.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/index.js", + "./node_modules/evil-dns/evil-dns.js", + "./node_modules/execa/node_modules/get-stream/buffer-stream.js", + "./node_modules/express-graphql/index.js", + "./node_modules/express-graphql/node_modules/http-errors/index.js", + "./node_modules/express-graphql/parseBody.js", + "./node_modules/express/lib/application.js", + "./node_modules/express/lib/request.js", + "./node_modules/express/lib/response.js", + "./node_modules/express/lib/router/index.js", + "./node_modules/express/lib/router/route.js", + "./node_modules/express/node_modules/debug/src/browser.js", + "./node_modules/express/node_modules/debug/src/index.js", + "./node_modules/express/node_modules/safe-buffer/index.js", + "./node_modules/extract-zip/node_modules/get-stream/buffer-stream.js", + "./node_modules/fast-glob/out/settings.js", + "./node_modules/fd-slicer/index.js", + "./node_modules/finalhandler/node_modules/debug/src/browser.js", + "./node_modules/finalhandler/node_modules/debug/src/index.js", + "./node_modules/firefox-profile/node_modules/async/dist/async.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/fluent-ffmpeg/index.js", + "./node_modules/fluent-ffmpeg/lib/fluent-ffmpeg.js", + "./node_modules/fluent-ffmpeg/lib/utils.js", + "./node_modules/fluent-ffmpeg/node_modules/async/dist/async.js", + "./node_modules/follow-redirects/index.js", + "./node_modules/forever-agent/index.js", + "./node_modules/form-data/lib/form_data.js", + "./node_modules/front-matter/index.js", + "./node_modules/fs-constants/index.js", + "./node_modules/fs-extra/lib/fs/index.js", + "./node_modules/fs-extra/lib/index.js", + "./node_modules/fs-extra/lib/json/index.js", + "./node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/fs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/jsonfile.js", + "./node_modules/galactus/node_modules/fs-extra/lib/path-exists/index.js", + "./node_modules/get-package-info/node_modules/debug/src/browser.js", + "./node_modules/get-package-info/node_modules/debug/src/index.js", + "./node_modules/get-stream/buffer-stream.js", + "./node_modules/getenv/index.js", + "./node_modules/getos/node_modules/async/dist/async.js", + "./node_modules/gifwrap/src/gifcodec.js", + "./node_modules/gifwrap/src/gifutil.js", + "./node_modules/gifwrap/src/index.js", + "./node_modules/glob-parent/index.js", + "./node_modules/global-agent/dist/Logger.js", + "./node_modules/global-agent/dist/classes/Agent.js", + "./node_modules/global-agent/dist/classes/HttpProxyAgent.js", + "./node_modules/global-agent/dist/classes/HttpsProxyAgent.js", + "./node_modules/global-agent/dist/classes/index.js", + "./node_modules/global-agent/dist/factories/createGlobalProxyAgent.js", + "./node_modules/global-agent/dist/factories/createProxyController.js", + "./node_modules/global-agent/dist/factories/index.js", + "./node_modules/global-agent/dist/routines/bootstrap.js", + "./node_modules/global-agent/dist/routines/index.js", + "./node_modules/global-agent/dist/utilities/bindHttpMethod.js", + "./node_modules/global-agent/dist/utilities/index.js", + "./node_modules/global-tunnel-ng/index.js", + "./node_modules/global-tunnel-ng/lib/agents.js", + "./node_modules/globalthis/index.js", + "./node_modules/globby/node_modules/ignore/index.js", + "./node_modules/globby/stream-utils.js", + "./node_modules/graceful-fs/graceful-fs.js", + "./node_modules/http-errors/index.js", + "./node_modules/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy.js", + "./node_modules/http-proxy/lib/http-proxy/index.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./node_modules/http-signature/lib/index.js", + "./node_modules/http-signature/lib/parser.js", + "./node_modules/http-signature/lib/signer.js", + "./node_modules/http-signature/lib/utils.js", + "./node_modules/human-signals/build/src/main.js", + "./node_modules/iconv-lite/encodings/dbcs-codec.js", + "./node_modules/iconv-lite/encodings/index.js", + "./node_modules/iconv-lite/encodings/internal.js", + "./node_modules/iconv-lite/lib/index.js", + "./node_modules/iconv-lite/lib/streams.js", + "./node_modules/image-size/dist/fs.promises.js", + "./node_modules/image-size/dist/index.js", + "./node_modules/isexe/index.js", + "./node_modules/istextorbinary/edition-es2019/index.js", + "./node_modules/jimp/dist/index.js", + "./node_modules/js-yaml/lib/js-yaml/loader.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_full.js", + "./node_modules/jsbn/index.js", + "./node_modules/keyv/src/index.js", + "./node_modules/lazystream/lib/lazystream.js", + "./node_modules/lockfile/lockfile.js", + "./node_modules/lodash/_cloneBuffer.js", + "./node_modules/lodash/isBuffer.js", + "./node_modules/lodash/lodash.js", + "./node_modules/make-dir/node_modules/semver/semver.js", + "./node_modules/marionette-client/lib/marionette/index.js", + "./node_modules/marionette-client/lib/marionette/marionette.js", + "./node_modules/methods/index.js", + "./node_modules/mime/mime.js", + "./node_modules/mocha-7.0.1/index.js", + "./node_modules/mocha-7.0.1/lib/hook.js", + "./node_modules/mocha-7.0.1/lib/mocha.js", + "./node_modules/mocha-7.0.1/lib/reporters/base.js", + "./node_modules/mocha-7.0.1/lib/reporters/dot.js", + "./node_modules/mocha-7.0.1/lib/reporters/landing.js", + "./node_modules/mocha-7.0.1/lib/reporters/list.js", + "./node_modules/mocha-7.0.1/lib/reporters/min.js", + "./node_modules/mocha-7.0.1/lib/reporters/nyan.js", + "./node_modules/mocha-7.0.1/lib/reporters/progress.js", + "./node_modules/mocha-7.0.1/lib/reporters/spec.js", + "./node_modules/mocha-7.0.1/lib/reporters/tap.js", + "./node_modules/mocha-7.0.1/lib/reporters/xunit.js", + "./node_modules/mocha-7.0.1/lib/runnable.js", + "./node_modules/mocha-7.0.1/lib/runner.js", + "./node_modules/mocha-7.0.1/lib/suite.js", + "./node_modules/mocha-7.0.1/lib/test.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/browser.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/index.js", + "./node_modules/mocha-7.0.1/node_modules/glob/glob.js", + "./node_modules/mocha-7.0.1/node_modules/glob/sync.js", + "./node_modules/mocha-7.0.1/node_modules/supports-color/index.js", + "./node_modules/mocha-junit-reporter/index.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/browser.js", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/index.js", + "./node_modules/mocha/index.js", + "./node_modules/mocha/lib/hook.js", + "./node_modules/mocha/lib/mocha.js", + "./node_modules/mocha/lib/reporters/base.js", + "./node_modules/mocha/lib/reporters/dot.js", + "./node_modules/mocha/lib/reporters/landing.js", + "./node_modules/mocha/lib/reporters/list.js", + "./node_modules/mocha/lib/reporters/min.js", + "./node_modules/mocha/lib/reporters/nyan.js", + "./node_modules/mocha/lib/reporters/progress.js", + "./node_modules/mocha/lib/reporters/spec.js", + "./node_modules/mocha/lib/reporters/xunit.js", + "./node_modules/mocha/lib/runnable.js", + "./node_modules/mocha/lib/runner.js", + "./node_modules/mocha/lib/suite.js", + "./node_modules/mocha/lib/test.js", + "./node_modules/mocha/lib/utils.js", + "./node_modules/mocha/node_modules/debug/src/browser.js", + "./node_modules/mocha/node_modules/debug/src/index.js", + "./node_modules/mocha/node_modules/glob/glob.js", + "./node_modules/mocha/node_modules/glob/sync.js", + "./node_modules/mocha/node_modules/growl/lib/growl.js", + "./node_modules/mocha/node_modules/json3/lib/json3.js", + "./node_modules/mocha/node_modules/supports-color/index.js", + "./node_modules/morgan/index.js", + "./node_modules/morgan/node_modules/debug/src/browser.js", + "./node_modules/morgan/node_modules/debug/src/index.js", + "./node_modules/move-file/node_modules/semver/semver.js", + "./node_modules/nested-error-stacks/index.js", + "./node_modules/nexus/dist/core.js", + "./node_modules/nexus/dist/definitions/list.js", + "./node_modules/nexus/dist/definitions/nexusMeta.js", + "./node_modules/nexus/dist/definitions/nonNull.js", + "./node_modules/nexus/dist/definitions/nullable.js", + "./node_modules/nexus/dist/definitions/wrapping.js", + "./node_modules/nexus/dist/index.js", + "./node_modules/nexus/dist/plugins/declarativeWrappingPlugin.js", + "./node_modules/nexus/dist/typegenAutoConfig.js", + "./node_modules/nexus/dist/typegenFormatPrettier.js", + "./node_modules/nexus/dist/typegenMetadata.js", + "./node_modules/nexus/dist/typegenUtils.js", + "./node_modules/nexus/dist/utils.js", + "./node_modules/node-fetch/lib/index.js", + "./node_modules/node-forge/lib/aes.js", + "./node_modules/node-forge/lib/aesCipherSuites.js", + "./node_modules/node-forge/lib/asn1-validator.js", + "./node_modules/node-forge/lib/asn1.js", + "./node_modules/node-forge/lib/cipher.js", + "./node_modules/node-forge/lib/cipherModes.js", + "./node_modules/node-forge/lib/des.js", + "./node_modules/node-forge/lib/ed25519.js", + "./node_modules/node-forge/lib/hmac.js", + "./node_modules/node-forge/lib/index.js", + "./node_modules/node-forge/lib/jsbn.js", + "./node_modules/node-forge/lib/kem.js", + "./node_modules/node-forge/lib/log.js", + "./node_modules/node-forge/lib/md.all.js", + "./node_modules/node-forge/lib/md5.js", + "./node_modules/node-forge/lib/mgf.js", + "./node_modules/node-forge/lib/mgf1.js", + "./node_modules/node-forge/lib/pbe.js", + "./node_modules/node-forge/lib/pbkdf2.js", + "./node_modules/node-forge/lib/pem.js", + "./node_modules/node-forge/lib/pkcs1.js", + "./node_modules/node-forge/lib/pkcs12.js", + "./node_modules/node-forge/lib/pkcs7.js", + "./node_modules/node-forge/lib/pkcs7asn1.js", + "./node_modules/node-forge/lib/pki.js", + "./node_modules/node-forge/lib/prime.js", + "./node_modules/node-forge/lib/prng.js", + "./node_modules/node-forge/lib/pss.js", + "./node_modules/node-forge/lib/random.js", + "./node_modules/node-forge/lib/rc2.js", + "./node_modules/node-forge/lib/rsa.js", + "./node_modules/node-forge/lib/sha1.js", + "./node_modules/node-forge/lib/sha256.js", + "./node_modules/node-forge/lib/sha512.js", + "./node_modules/node-forge/lib/ssh.js", + "./node_modules/node-forge/lib/tls.js", + "./node_modules/node-forge/lib/util.js", + "./node_modules/node-forge/lib/x509.js", + "./node_modules/node-gyp-build/index.js", + "./node_modules/node-machine-id/dist/index.js", + "./node_modules/normalize-package-data/node_modules/semver/semver.js", + "./node_modules/npm-conf/lib/conf.js", + "./node_modules/npm-conf/lib/defaults.js", + "./node_modules/npm-conf/lib/types.js", + "./node_modules/os-homedir/index.js", + "./node_modules/pako/lib/utils/strings.js", + "./node_modules/pako/lib/zlib/trees.js", + "./node_modules/performance-now/lib/performance-now.js", + "./node_modules/phin/lib/phin.compiled.js", + "./node_modules/picomatch/index.js", + "./node_modules/picomatch/lib/constants.js", + "./node_modules/picomatch/lib/picomatch.js", + "./node_modules/pinkie/index.js", + "./node_modules/pngjs/lib/chunkstream.js", + "./node_modules/pngjs/lib/filter-parse-async.js", + "./node_modules/pngjs/lib/packer-async.js", + "./node_modules/pngjs/lib/packer-sync.js", + "./node_modules/pngjs/lib/parser-async.js", + "./node_modules/pngjs/lib/parser-sync.js", + "./node_modules/pngjs/lib/png.js", + "./node_modules/pngjs/lib/sync-inflate.js", + "./node_modules/prettier/parser-babel.js", + "./node_modules/prettier/parser-espree.js", + "./node_modules/prettier/parser-flow.js", + "./node_modules/prettier/parser-glimmer.js", + "./node_modules/prettier/parser-meriyah.js", + "./node_modules/prettier/parser-typescript.js", + "./node_modules/process-nextick-args/index.js", + "./node_modules/pseudomap/map.js", + "./node_modules/pumpify/index.js", + "./node_modules/queue/index.js", + "./node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/readable-stream/lib/internal/streams/BufferList.js", + "./node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/readable-stream/node_modules/safe-buffer/index.js", + "./node_modules/readable-stream/passthrough.js", + "./node_modules/readable-stream/readable.js", + "./node_modules/readable-stream/transform.js", + "./node_modules/readdir-glob/index.js", + "./node_modules/recast/lib/comments.js", + "./node_modules/recast/lib/fast-path.js", + "./node_modules/recast/lib/lines.js", + "./node_modules/recast/lib/mapping.js", + "./node_modules/recast/lib/options.js", + "./node_modules/recast/lib/parser.js", + "./node_modules/recast/lib/patcher.js", + "./node_modules/recast/lib/printer.js", + "./node_modules/recast/lib/util.js", + "./node_modules/recast/main.js", + "./node_modules/registry-js/dist/lib/index.js", + "./node_modules/registry-js/dist/lib/registry.js", + "./node_modules/resolve/index.js", + "./node_modules/resolve/lib/async.js", + "./node_modules/resolve/lib/homedir.js", + "./node_modules/resolve/lib/sync.js", + "./node_modules/responselike/src/index.js", + "./node_modules/roarr/dist/factories/createLogger.js", + "./node_modules/roarr/dist/factories/index.js", + "./node_modules/roarr/dist/log.js", + "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", + "./node_modules/run-applescript/node_modules/semver/semver.js", + "./node_modules/safe-buffer/index.js", + "./node_modules/safer-buffer/safer.js", + "./node_modules/sax/lib/sax.js", + "./node_modules/semaphore/lib/semaphore.js", + "./node_modules/send/index.js", + "./node_modules/send/node_modules/debug/src/browser.js", + "./node_modules/send/node_modules/debug/src/index.js", + "./node_modules/send/node_modules/http-errors/index.js", + "./node_modules/shell-env/node_modules/execa/lib/errname.js", + "./node_modules/shell-env/node_modules/semver/semver.js", + "./node_modules/signal-exit/signals.js", + "./node_modules/simple-git/dist/cjs/index.js", + "./node_modules/socket.io-adapter/dist/index.js", + "./node_modules/sprintf-js/src/sprintf.js", + "./node_modules/sshpk/lib/algs.js", + "./node_modules/sshpk/lib/certificate.js", + "./node_modules/sshpk/lib/dhe.js", + "./node_modules/sshpk/lib/ed-compat.js", + "./node_modules/sshpk/lib/errors.js", + "./node_modules/sshpk/lib/fingerprint.js", + "./node_modules/sshpk/lib/formats/auto.js", + "./node_modules/sshpk/lib/formats/dnssec.js", + "./node_modules/sshpk/lib/formats/openssh-cert.js", + "./node_modules/sshpk/lib/formats/pem.js", + "./node_modules/sshpk/lib/formats/pkcs1.js", + "./node_modules/sshpk/lib/formats/pkcs8.js", + "./node_modules/sshpk/lib/formats/putty.js", + "./node_modules/sshpk/lib/formats/rfc4253.js", + "./node_modules/sshpk/lib/formats/ssh-private.js", + "./node_modules/sshpk/lib/formats/ssh.js", + "./node_modules/sshpk/lib/formats/x509-pem.js", + "./node_modules/sshpk/lib/formats/x509.js", + "./node_modules/sshpk/lib/identity.js", + "./node_modules/sshpk/lib/index.js", + "./node_modules/sshpk/lib/key.js", + "./node_modules/sshpk/lib/private-key.js", + "./node_modules/sshpk/lib/signature.js", + "./node_modules/sshpk/lib/utils.js", + "./node_modules/stream-parser/node_modules/debug/src/browser.js", + "./node_modules/stream-parser/node_modules/debug/src/index.js", + "./node_modules/supports-color/index.js", + "./node_modules/systeminformation/lib/dockerSocket.js", + "./node_modules/systeminformation/lib/index.js", + "./node_modules/systeminformation/lib/util.js", + "./node_modules/tar-stream/extract.js", + "./node_modules/tar-stream/node_modules/readable-stream/errors.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/readable.js", + "./node_modules/tar-stream/pack.js", + "./node_modules/tcp-port-used/node_modules/debug/src/browser.js", + "./node_modules/tcp-port-used/node_modules/debug/src/index.js", + "./node_modules/throttle/throttle.js", + "./node_modules/tough-cookie/lib/cookie.js", + "./node_modules/tough-cookie/lib/memstore.js", + "./node_modules/trash/node_modules/glob/glob.js", + "./node_modules/trash/node_modules/glob/sync.js", + "./node_modules/trash/node_modules/ignore/ignore.js", + "./node_modules/truncate-utf8-bytes/index.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-helpers.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-cjs-loader.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js", + "./node_modules/ts-node/dist-raw/node-internalBinding-fs.js", + "./node_modules/ts-node/dist/configuration.js", + "./node_modules/ts-node/dist/esm.js", + "./node_modules/ts-node/dist/index.js", + "./node_modules/ts-node/dist/repl.js", + "./node_modules/ts-node/dist/util.js", + "./node_modules/tunnel-agent/index.js", + "./node_modules/tunnel/index.js", + "./node_modules/tunnel/lib/tunnel.js", + "./node_modules/tweetnacl/nacl-fast.js", + "./node_modules/underscore.string/index.js", + "./node_modules/underscore.string/sprintf.js", + "./node_modules/underscore.string/vsprintf.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_duplex.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_readable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_transform.js", + "./node_modules/utf8-stream/node_modules/readable-stream/lib/_stream_writable.js", + "./node_modules/utf8-stream/node_modules/readable-stream/transform.js", + "./node_modules/util-deprecate/node.js", + "./node_modules/verror/lib/verror.js", + "./node_modules/win-version-info/index.js", + "./node_modules/ws/index.js", + "./node_modules/ws/lib/constants.js", + "./node_modules/ws/lib/receiver.js", + "./node_modules/ws/lib/websocket-server.js", + "./node_modules/ws/lib/websocket.js", + "./node_modules/xdg-trashdir/node_modules/user-home/index.js", + "./node_modules/xdg-trashdir/node_modules/xdg-basedir/index.js", + "./node_modules/xml2js/lib/xml2js.js", + "./node_modules/yauzl/index.js", + "./node_modules/zip-stream/index.js", + "./packages/config/index.js", + "./packages/config/src/ast-utils/addToCypressConfig.ts", + "./packages/config/src/ast-utils/addToCypressConfigPlugin.ts", + "./packages/config/src/browser.ts", + "./packages/config/src/index.ts", + "./packages/config/src/options.ts", + "./packages/config/src/project/index.ts", + "./packages/config/src/project/utils.ts", + "./packages/config/src/validation.ts", + "./packages/data-context/index.js", + "./packages/data-context/node_modules/chokidar/index.js", + "./packages/data-context/node_modules/chokidar/lib/constants.js", + "./packages/data-context/node_modules/chokidar/lib/fsevents-handler.js", + "./packages/data-context/node_modules/chokidar/lib/nodefs-handler.js", + "./packages/data-context/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/data-context/node_modules/debug/src/browser.js", + "./packages/data-context/node_modules/debug/src/index.js", + "./packages/data-context/node_modules/execa/lib/errname.js", + "./packages/data-context/node_modules/fs-extra/lib/fs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/index.js", + "./packages/data-context/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/data-context/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/data-context/node_modules/readdirp/index.js", + "./packages/data-context/node_modules/supports-color/index.js", + "./packages/data-context/src/DataActions.ts", + "./packages/data-context/src/DataContext.ts", + "./packages/data-context/src/actions/DataEmitterActions.ts", + "./packages/data-context/src/actions/EventCollectorActions.ts", + "./packages/data-context/src/actions/MigrationActions.ts", + "./packages/data-context/src/actions/WizardActions.ts", + "./packages/data-context/src/actions/index.ts", + "./packages/data-context/src/codegen/code-generator.ts", + "./packages/data-context/src/codegen/index.ts", + "./packages/data-context/src/codegen/templates.ts", + "./packages/data-context/src/data/EventRegistrar.ts", + "./packages/data-context/src/data/LegacyPluginsIpc.ts", + "./packages/data-context/src/data/ProjectConfigIpc.ts", + "./packages/data-context/src/data/ProjectConfigManager.ts", + "./packages/data-context/src/data/index.ts", + "./packages/data-context/src/globalPubSub.ts", + "./packages/data-context/src/index.ts", + "./packages/data-context/src/sources/BrowserDataSource.ts", + "./packages/data-context/src/sources/CloudDataSource.ts", + "./packages/data-context/src/sources/FileDataSource.ts", + "./packages/data-context/src/sources/GitDataSource.ts", + "./packages/data-context/src/sources/GraphQLDataSource.ts", + "./packages/data-context/src/sources/HtmlDataSource.ts", + "./packages/data-context/src/sources/MigrationDataSource.ts", + "./packages/data-context/src/sources/ProjectDataSource.ts", + "./packages/data-context/src/sources/RemotePollingDataSource.ts", + "./packages/data-context/src/sources/VersionsDataSource.ts", + "./packages/data-context/src/sources/index.ts", + "./packages/data-context/src/sources/migration/autoRename.ts", + "./packages/data-context/src/sources/migration/codegen.ts", + "./packages/data-context/src/sources/migration/format.ts", + "./packages/data-context/src/sources/migration/index.ts", + "./packages/data-context/src/sources/migration/shouldShowSteps.ts", + "./packages/data-context/src/sources/migration/utils.ts", + "./packages/data-context/src/util/config-file-updater.ts", + "./packages/data-context/src/util/index.ts", + "./packages/electron/index.js", + "./packages/electron/lib/electron.js", + "./packages/electron/node_modules/get-stream/buffer-stream.js", + "./packages/errors/index.js", + "./packages/errors/src/errTemplate.ts", + "./packages/example/node_modules/glob/glob.js", + "./packages/example/node_modules/glob/sync.js", + "./packages/graphql/index.js", + "./packages/graphql/node_modules/chalk/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/chalk/source/index.js", + "./packages/graphql/node_modules/debug/src/browser.js", + "./packages/graphql/node_modules/debug/src/index.js", + "./packages/graphql/node_modules/supports-color/index.js", + "./packages/graphql/node_modules/ws/index.js", + "./packages/graphql/node_modules/ws/lib/constants.js", + "./packages/graphql/node_modules/ws/lib/receiver.js", + "./packages/graphql/node_modules/ws/lib/websocket-server.js", + "./packages/graphql/node_modules/ws/lib/websocket.js", + "./packages/graphql/src/makeGraphQLServer.ts", + "./packages/graphql/src/plugins/index.ts", + "./packages/graphql/src/plugins/nexusDebugFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusDeferIfNotLoadedPlugin.ts", + "./packages/graphql/src/plugins/nexusMutationErrorPlugin.ts", + "./packages/graphql/src/plugins/nexusNodePlugin.ts", + "./packages/graphql/src/plugins/nexusRemoteFieldPlugin.ts", + "./packages/graphql/src/plugins/nexusSlowGuardPlugin.ts", + "./packages/graphql/src/schema.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserFamilyEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-BrowserStatus.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-CodeGenTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ErrorTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-FileExtensionEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-PreferencesTypeEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-ProjectEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-SpecEnum.ts", + "./packages/graphql/src/schemaTypes/enumTypes/gql-WizardEnums.ts", + "./packages/graphql/src/schemaTypes/enumTypes/index.ts", + "./packages/graphql/src/schemaTypes/index.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-FileDetailsInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/gql-WizardUpdateInput.ts", + "./packages/graphql/src/schemaTypes/inputTypes/index.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-Node.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-ProjectLike.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/gql-RemoteFetchable.ts", + "./packages/graphql/src/schemaTypes/interfaceTypes/index.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-AuthState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Browser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CachedUser.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeFrame.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CodeGenGlobs.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Cohorts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-CurrentProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-DevState.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Editor.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ErrorWrapper.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-FileParts.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GenerateSpecResponse.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GeneratedSpecError.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GitInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-GlobalProject.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-LocalSettings.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Migration.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Mutation.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ProjectPreferences.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Query.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-ScaffoldedFile.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Spec.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Subscription.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-TestingTypeInfo.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Version.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-VersionData.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-Wizard.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardBundler.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardFrontendFramework.ts", + "./packages/graphql/src/schemaTypes/objectTypes/gql-WizardNpmPackage.ts", + "./packages/graphql/src/schemaTypes/objectTypes/index.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/gql-customScalars.ts", + "./packages/graphql/src/schemaTypes/scalarTypes/index.ts", + "./packages/graphql/src/schemaTypes/unions/gql-GeneratedSpecResult.ts", + "./packages/graphql/src/schemaTypes/unions/index.ts", + "./packages/graphql/src/stitching/remoteSchema.ts", + "./packages/graphql/src/stitching/remoteSchemaWrapped.ts", + "./packages/https-proxy/index.js", + "./packages/https-proxy/test/helpers/certs.js", + "./packages/icons/dist/icons.js", + "./packages/icons/index.js", + "./packages/launcher/lib/browsers.ts", + "./packages/launcher/lib/darwin/index.ts", + "./packages/launcher/lib/darwin/util.ts", + "./packages/launcher/lib/detect.ts", + "./packages/launcher/lib/linux/index.ts", + "./packages/launcher/lib/windows/index.ts", + "./packages/net-stubbing/lib/internal-types.ts", + "./packages/net-stubbing/lib/server/driver-events.ts", + "./packages/net-stubbing/lib/server/middleware/error.ts", + "./packages/net-stubbing/lib/server/middleware/request.ts", + "./packages/net-stubbing/lib/server/middleware/response.ts", + "./packages/net-stubbing/lib/server/util.ts", + "./packages/net-stubbing/lib/types.ts", + "./packages/net-stubbing/node_modules/debug/src/browser.js", + "./packages/net-stubbing/node_modules/debug/src/index.js", + "./packages/net-stubbing/node_modules/supports-color/index.js", + "./packages/network/index.js", + "./packages/network/lib/agent.ts", + "./packages/network/lib/client-certificates.ts", + "./packages/network/lib/connect.ts", + "./packages/network/lib/cors.ts", + "./packages/network/lib/uri.ts", + "./packages/proxy/index.js", + "./packages/proxy/lib/http/error-middleware.ts", + "./packages/proxy/lib/http/index.ts", + "./packages/proxy/lib/http/request-middleware.ts", + "./packages/proxy/lib/http/response-middleware.ts", + "./packages/proxy/lib/http/util/buffers.ts", + "./packages/proxy/lib/http/util/prerequests.ts", + "./packages/proxy/lib/http/util/regex-rewriter.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/index.js", + "./packages/proxy/node_modules/iconv-lite/encodings/internal.js", + "./packages/proxy/node_modules/iconv-lite/lib/index.js", + "./packages/resolve-dist/index.js", + "./packages/rewriter/index.js", + "./packages/rewriter/lib/deferred-source-map-cache.ts", + "./packages/rewriter/lib/js.ts", + "./packages/rewriter/lib/threads/index.ts", + "./packages/rewriter/node_modules/parse5-html-rewriting-stream/lib/index.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/dev-null-stream.js", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/named-entity-data.js", + "./packages/scaffold-config/index.js", + "./packages/scaffold-config/src/detect.ts", + "./packages/scaffold-config/src/index.ts", + "./packages/server/lib/automation/cookies.ts", + "./packages/server/lib/browsers/browser-cri-client.ts", + "./packages/server/lib/browsers/cdp_automation.ts", + "./packages/server/lib/browsers/chrome.ts", + "./packages/server/lib/browsers/cri-client.ts", + "./packages/server/lib/browsers/electron.ts", + "./packages/server/lib/browsers/firefox-util.ts", + "./packages/server/lib/browsers/firefox.ts", + "./packages/server/lib/browsers/index.ts", + "./packages/server/lib/browsers/utils.ts", + "./packages/server/lib/browsers/webkit-automation.ts", + "./packages/server/lib/browsers/webkit.ts", + "./packages/server/lib/cache.js", + "./packages/server/lib/cloud/api.ts", + "./packages/server/lib/cloud/auth.ts", + "./packages/server/lib/cloud/exception.ts", + "./packages/server/lib/cloud/routes.ts", + "./packages/server/lib/cloud/user.ts", + "./packages/server/lib/config.ts", + "./packages/server/lib/controllers/iframes.ts", + "./packages/server/lib/cypress.js", + "./packages/server/lib/environment.js", + "./packages/server/lib/errors.ts", + "./packages/server/lib/gui/windows.ts", + "./packages/server/lib/log.js", + "./packages/server/lib/makeDataContext.ts", + "./packages/server/lib/modes/interactive.ts", + "./packages/server/lib/plugins/dev-server.js", + "./packages/server/lib/plugins/preprocessor.js", + "./packages/server/lib/plugins/run_events.js", + "./packages/server/lib/project-base.ts", + "./packages/server/lib/project_utils.ts", + "./packages/server/lib/remote_states.ts", + "./packages/server/lib/reporter.js", + "./packages/server/lib/routes-ct.ts", + "./packages/server/lib/routes-e2e.ts", + "./packages/server/lib/routes.ts", + "./packages/server/lib/saved_state.ts", + "./packages/server/lib/screenshots.js", + "./packages/server/lib/server-base.ts", + "./packages/server/lib/server-ct.ts", + "./packages/server/lib/server-e2e.ts", + "./packages/server/lib/socket-base.ts", + "./packages/server/lib/socket-ct.ts", + "./packages/server/lib/socket-e2e.ts", + "./packages/server/lib/unhandled_exceptions.ts", + "./packages/server/lib/util/app_data.js", + "./packages/server/lib/util/chrome_policy_check.js", + "./packages/server/lib/util/cookies.ts", + "./packages/server/lib/util/editors.ts", + "./packages/server/lib/util/ensure-url.ts", + "./packages/server/lib/util/exit.js", + "./packages/server/lib/util/file-opener.ts", + "./packages/server/lib/util/fs.ts", + "./packages/server/lib/util/glob.js", + "./packages/server/lib/util/process_profiler.ts", + "./packages/server/lib/util/proxy.ts", + "./packages/server/lib/util/resourceTypeAndCredentialManager.ts", + "./packages/server/lib/util/socket_allowed.ts", + "./packages/server/lib/util/stream_buffer.ts", + "./packages/server/lib/video_capture.ts", + "./packages/server/node_modules/@benmalka/foxdriver/build/actor.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/browser.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/client.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/tab.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/fs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/jsonfile.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/path-exists/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/cross-spawn/node_modules/semver/semver.js", + "./packages/server/node_modules/duplexify/index.js", + "./packages/server/node_modules/execa/lib/errname.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/glob/glob.js", + "./packages/server/node_modules/glob/sync.js", + "./packages/server/node_modules/graceful-fs/graceful-fs.js", + "./packages/server/node_modules/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/index.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js", + "./packages/server/node_modules/log-symbols/index.js", + "./packages/server/node_modules/mocha/index.js", + "./packages/server/node_modules/mocha/lib/hook.js", + "./packages/server/node_modules/mocha/lib/mocha.js", + "./packages/server/node_modules/mocha/lib/reporters/base.js", + "./packages/server/node_modules/mocha/lib/reporters/dot.js", + "./packages/server/node_modules/mocha/lib/reporters/landing.js", + "./packages/server/node_modules/mocha/lib/reporters/list.js", + "./packages/server/node_modules/mocha/lib/reporters/min.js", + "./packages/server/node_modules/mocha/lib/reporters/nyan.js", + "./packages/server/node_modules/mocha/lib/reporters/progress.js", + "./packages/server/node_modules/mocha/lib/reporters/spec.js", + "./packages/server/node_modules/mocha/lib/reporters/tap.js", + "./packages/server/node_modules/mocha/lib/reporters/xunit.js", + "./packages/server/node_modules/mocha/lib/runnable.js", + "./packages/server/node_modules/mocha/lib/runner.js", + "./packages/server/node_modules/mocha/lib/suite.js", + "./packages/server/node_modules/mocha/lib/test.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/browser.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/index.js", + "./packages/server/node_modules/readable-stream/errors.js", + "./packages/server/node_modules/readable-stream/lib/_stream_duplex.js", + "./packages/server/node_modules/readable-stream/lib/_stream_passthrough.js", + "./packages/server/node_modules/readable-stream/lib/_stream_readable.js", + "./packages/server/node_modules/readable-stream/lib/_stream_transform.js", + "./packages/server/node_modules/readable-stream/lib/_stream_writable.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/buffer_list.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/stream.js", + "./packages/server/node_modules/readable-stream/readable.js", + "./packages/server/node_modules/signal-exit/signals.js", + "./packages/server/node_modules/supports-color/index.js", + "./packages/server/node_modules/uuid/dist/index.js", + "./packages/server/node_modules/uuid/dist/md5.js", + "./packages/server/node_modules/uuid/dist/rng.js", + "./packages/server/node_modules/uuid/dist/sha1.js", + "./packages/server/node_modules/uuid/dist/v1.js", + "./packages/server/node_modules/uuid/dist/v3.js", + "./packages/server/node_modules/uuid/dist/v4.js", + "./packages/server/node_modules/uuid/dist/v5.js", + "./packages/server/server-entry.js", + "./packages/socket/index.js", + "./packages/socket/lib/socket.ts", + "./packages/socket/node_modules/socket.io/dist/broadcast-operator.js", + "./packages/socket/node_modules/socket.io/dist/index.js", + "./packages/socket/node_modules/socket.io/dist/namespace.js", + "./packages/socket/node_modules/socket.io/dist/parent-namespace.js", + "./packages/socket/node_modules/socket.io/dist/socket.js", + "./packages/socket/node_modules/socket.io/dist/typed-events.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/server.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/socket.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transport.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js", + "./packages/ts/register.js", + "./packages/types/index.js" + ], + "healthy": [ + "./node_modules/@babel/code-frame/lib/index.js", + "./node_modules/@babel/generator/lib/buffer.js", + "./node_modules/@babel/generator/lib/generators/base.js", + "./node_modules/@babel/generator/lib/generators/classes.js", + "./node_modules/@babel/generator/lib/generators/expressions.js", + "./node_modules/@babel/generator/lib/generators/flow.js", + "./node_modules/@babel/generator/lib/generators/index.js", + "./node_modules/@babel/generator/lib/generators/jsx.js", + "./node_modules/@babel/generator/lib/generators/methods.js", + "./node_modules/@babel/generator/lib/generators/modules.js", + "./node_modules/@babel/generator/lib/generators/statements.js", + "./node_modules/@babel/generator/lib/generators/template-literals.js", + "./node_modules/@babel/generator/lib/generators/types.js", + "./node_modules/@babel/generator/lib/generators/typescript.js", + "./node_modules/@babel/generator/lib/index.js", + "./node_modules/@babel/generator/lib/node/parentheses.js", + "./node_modules/@babel/generator/lib/printer.js", + "./node_modules/@babel/generator/lib/source-map.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/array-set.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/base64.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/source-node.js", + "./node_modules/@babel/generator/node_modules/source-map/lib/util.js", + "./node_modules/@babel/generator/node_modules/source-map/source-map.js", + "./node_modules/@babel/helper-function-name/lib/index.js", + "./node_modules/@babel/helper-hoist-variables/lib/index.js", + "./node_modules/@babel/helper-split-export-declaration/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/identifier.js", + "./node_modules/@babel/helper-validator-identifier/lib/index.js", + "./node_modules/@babel/helper-validator-identifier/lib/keyword.js", + "./node_modules/@babel/highlight/lib/index.js", + "./node_modules/@babel/parser/lib/index.js", + "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js", + "./node_modules/@babel/runtime/helpers/arrayWithHoles.js", + "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", + "./node_modules/@babel/runtime/helpers/assertThisInitialized.js", + "./node_modules/@babel/runtime/helpers/classCallCheck.js", + "./node_modules/@babel/runtime/helpers/construct.js", + "./node_modules/@babel/runtime/helpers/createClass.js", + "./node_modules/@babel/runtime/helpers/defineProperty.js", + "./node_modules/@babel/runtime/helpers/extends.js", + "./node_modules/@babel/runtime/helpers/getPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/inherits.js", + "./node_modules/@babel/runtime/helpers/interopRequireDefault.js", + "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js", + "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js", + "./node_modules/@babel/runtime/helpers/iterableToArray.js", + "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", + "./node_modules/@babel/runtime/helpers/nonIterableRest.js", + "./node_modules/@babel/runtime/helpers/nonIterableSpread.js", + "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", + "./node_modules/@babel/runtime/helpers/setPrototypeOf.js", + "./node_modules/@babel/runtime/helpers/slicedToArray.js", + "./node_modules/@babel/runtime/helpers/toConsumableArray.js", + "./node_modules/@babel/runtime/helpers/typeof.js", + "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", + "./node_modules/@babel/runtime/regenerator/index.js", + "./node_modules/@babel/template/lib/builder.js", + "./node_modules/@babel/template/lib/formatters.js", + "./node_modules/@babel/template/lib/index.js", + "./node_modules/@babel/template/lib/literal.js", + "./node_modules/@babel/template/lib/options.js", + "./node_modules/@babel/template/lib/parse.js", + "./node_modules/@babel/template/lib/populate.js", + "./node_modules/@babel/template/lib/string.js", + "./node_modules/@babel/traverse/lib/cache.js", + "./node_modules/@babel/traverse/lib/hub.js", + "./node_modules/@babel/traverse/lib/path/evaluation.js", + "./node_modules/@babel/traverse/lib/path/inference/index.js", + "./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js", + "./node_modules/@babel/traverse/lib/path/inference/inferers.js", + "./node_modules/@babel/traverse/lib/path/lib/hoister.js", + "./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js", + "./node_modules/@babel/traverse/lib/path/lib/virtual-types.js", + "./node_modules/@babel/traverse/lib/scope/binding.js", + "./node_modules/@babel/traverse/lib/scope/lib/renamer.js", + "./node_modules/@babel/traverse/lib/visitors.js", + "./node_modules/@babel/types/lib/asserts/assertNode.js", + "./node_modules/@babel/types/lib/asserts/generated/index.js", + "./node_modules/@babel/types/lib/ast-types/generated/index.js", + "./node_modules/@babel/types/lib/builders/builder.js", + "./node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", + "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", + "./node_modules/@babel/types/lib/builders/generated/index.js", + "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/react/buildChildren.js", + "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", + "./node_modules/@babel/types/lib/clone/clone.js", + "./node_modules/@babel/types/lib/clone/cloneDeep.js", + "./node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js", + "./node_modules/@babel/types/lib/clone/cloneNode.js", + "./node_modules/@babel/types/lib/clone/cloneWithoutLoc.js", + "./node_modules/@babel/types/lib/comments/addComment.js", + "./node_modules/@babel/types/lib/comments/addComments.js", + "./node_modules/@babel/types/lib/comments/inheritInnerComments.js", + "./node_modules/@babel/types/lib/comments/inheritLeadingComments.js", + "./node_modules/@babel/types/lib/comments/inheritTrailingComments.js", + "./node_modules/@babel/types/lib/comments/inheritsComments.js", + "./node_modules/@babel/types/lib/comments/removeComments.js", + "./node_modules/@babel/types/lib/constants/generated/index.js", + "./node_modules/@babel/types/lib/constants/index.js", + "./node_modules/@babel/types/lib/converters/ensureBlock.js", + "./node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js", + "./node_modules/@babel/types/lib/converters/toBindingIdentifierName.js", + "./node_modules/@babel/types/lib/converters/toBlock.js", + "./node_modules/@babel/types/lib/converters/toComputedKey.js", + "./node_modules/@babel/types/lib/converters/toExpression.js", + "./node_modules/@babel/types/lib/converters/toIdentifier.js", + "./node_modules/@babel/types/lib/converters/toKeyAlias.js", + "./node_modules/@babel/types/lib/converters/toSequenceExpression.js", + "./node_modules/@babel/types/lib/converters/toStatement.js", + "./node_modules/@babel/types/lib/converters/valueToNode.js", + "./node_modules/@babel/types/lib/modifications/appendToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/modifications/inherits.js", + "./node_modules/@babel/types/lib/modifications/prependToMemberExpression.js", + "./node_modules/@babel/types/lib/modifications/removeProperties.js", + "./node_modules/@babel/types/lib/modifications/removePropertiesDeep.js", + "./node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js", + "./node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js", + "./node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js", + "./node_modules/@babel/types/lib/traverse/traverse.js", + "./node_modules/@babel/types/lib/traverse/traverseFast.js", + "./node_modules/@babel/types/lib/utils/inherit.js", + "./node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js", + "./node_modules/@babel/types/lib/utils/shallowEqual.js", + "./node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js", + "./node_modules/@babel/types/lib/validators/generated/index.js", + "./node_modules/@babel/types/lib/validators/isBinding.js", + "./node_modules/@babel/types/lib/validators/isBlockScoped.js", + "./node_modules/@babel/types/lib/validators/isImmutable.js", + "./node_modules/@babel/types/lib/validators/isLet.js", + "./node_modules/@babel/types/lib/validators/isNode.js", + "./node_modules/@babel/types/lib/validators/isNodesEquivalent.js", + "./node_modules/@babel/types/lib/validators/isReferenced.js", + "./node_modules/@babel/types/lib/validators/isScope.js", + "./node_modules/@babel/types/lib/validators/isSpecifierDefault.js", + "./node_modules/@babel/types/lib/validators/isValidES3Identifier.js", + "./node_modules/@babel/types/lib/validators/isValidIdentifier.js", + "./node_modules/@babel/types/lib/validators/isVar.js", + "./node_modules/@babel/types/lib/validators/matchesPattern.js", + "./node_modules/@babel/types/lib/validators/react/isCompatTag.js", + "./node_modules/@babel/types/lib/validators/react/isReactComponent.js", + "./node_modules/@babel/types/node_modules/to-fast-properties/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/index.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/parse.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/@cypress/commit-info/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/@cypress/commit-info/node_modules/debug/src/common.js", + "./node_modules/@cypress/commit-info/node_modules/execa/index.js", + "./node_modules/@cypress/commit-info/node_modules/execa/lib/stdio.js", + "./node_modules/@cypress/commit-info/node_modules/path-key/index.js", + "./node_modules/@cypress/commit-info/src/git-api.js", + "./node_modules/@cypress/commit-info/src/index.js", + "./node_modules/@cypress/commit-info/src/utils.js", + "./node_modules/@cypress/get-windows-proxy/node_modules/debug/src/common.js", + "./node_modules/@cypress/get-windows-proxy/src/index.js", + "./node_modules/@cypress/parse-domain/build/tries/icann.complete.json", + "./node_modules/@cypress/parse-domain/build/tries/private.complete.json", + "./node_modules/@cypress/parse-domain/lib/normalize.js", + "./node_modules/@cypress/parse-domain/lib/parseDomain.js", + "./node_modules/@cypress/parse-domain/lib/trie/characters.js", + "./node_modules/@cypress/parse-domain/lib/trie/lookUp.js", + "./node_modules/@cypress/parse-domain/lib/trie/nodes.js", + "./node_modules/@cypress/parse-domain/lib/trie/parse.js", + "./node_modules/@cypress/parse-domain/lists/icann.complete.js", + "./node_modules/@cypress/parse-domain/lists/private.complete.js", + "./node_modules/@cypress/request-promise/errors.js", + "./node_modules/@cypress/request/lib/auth.js", + "./node_modules/@cypress/request/lib/cookies.js", + "./node_modules/@cypress/request/lib/getProxyFromURI.js", + "./node_modules/@cypress/request/lib/har.js", + "./node_modules/@cypress/request/lib/hawk.js", + "./node_modules/@cypress/request/lib/multipart.js", + "./node_modules/@cypress/request/lib/redirect.js", + "./node_modules/@cypress/request/lib/tunnel.js", + "./node_modules/@cypress/request/node_modules/qs/lib/formats.js", + "./node_modules/@cypress/request/node_modules/qs/lib/index.js", + "./node_modules/@cypress/request/node_modules/qs/lib/parse.js", + "./node_modules/@cypress/request/node_modules/qs/lib/stringify.js", + "./node_modules/@cypress/request/node_modules/qs/lib/utils.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/nil.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/parse.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/regex.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/stringify.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/v35.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/validate.js", + "./node_modules/@cypress/request/node_modules/uuid/dist/version.js", + "./node_modules/@electron/fuses/dist/config.js", + "./node_modules/@electron/fuses/dist/constants.js", + "./node_modules/@electron/fuses/dist/index.js", + "./node_modules/@electron/get/dist/cjs/GotDownloader.js", + "./node_modules/@electron/get/dist/cjs/artifact-utils.js", + "./node_modules/@electron/get/dist/cjs/downloader-resolver.js", + "./node_modules/@electron/get/dist/cjs/proxy.js", + "./node_modules/@electron/get/dist/cjs/utils.js", + "./node_modules/@electron/get/node_modules/@szmarczak/http-timer/source/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/get-stream/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/cacheable-request/src/index.js", + "./node_modules/@electron/get/node_modules/defer-to-connect/dist/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/move/move.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/output/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/stat.js", + "./node_modules/@electron/get/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/@electron/get/node_modules/got/package.json", + "./node_modules/@electron/get/node_modules/got/source/as-promise.js", + "./node_modules/@electron/get/node_modules/got/source/as-stream.js", + "./node_modules/@electron/get/node_modules/got/source/create.js", + "./node_modules/@electron/get/node_modules/got/source/errors.js", + "./node_modules/@electron/get/node_modules/got/source/get-response.js", + "./node_modules/@electron/get/node_modules/got/source/known-hook-events.js", + "./node_modules/@electron/get/node_modules/got/source/merge.js", + "./node_modules/@electron/get/node_modules/got/source/normalize-arguments.js", + "./node_modules/@electron/get/node_modules/got/source/progress.js", + "./node_modules/@electron/get/node_modules/got/source/request-as-event-emitter.js", + "./node_modules/@electron/get/node_modules/got/source/utils/deep-freeze.js", + "./node_modules/@electron/get/node_modules/got/source/utils/get-body-size.js", + "./node_modules/@electron/get/node_modules/got/source/utils/is-form-data.js", + "./node_modules/@electron/get/node_modules/got/source/utils/timed-out.js", + "./node_modules/@electron/get/node_modules/got/source/utils/url-to-options.js", + "./node_modules/@electron/get/node_modules/lowercase-keys/index.js", + "./node_modules/@electron/get/node_modules/p-cancelable/index.js", + "./node_modules/@ffmpeg-installer/ffmpeg/lib/verify-file.js", + "./node_modules/@ffmpeg-installer/ffmpeg/package.json", + "./node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/delegate/index.js", + "./node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@graphql-tools/wrap/index.js", + "./node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils/index.js", + "./node_modules/@jimp/bmp/dist/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/index.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/decoder.js", + "./node_modules/@jimp/bmp/node_modules/bmp-js/lib/encoder.js", + "./node_modules/@jimp/core/dist/composite/composite-modes.js", + "./node_modules/@jimp/core/dist/composite/index.js", + "./node_modules/@jimp/core/dist/constants.js", + "./node_modules/@jimp/core/dist/modules/phash.js", + "./node_modules/@jimp/core/dist/utils/image-bitmap.js", + "./node_modules/@jimp/core/dist/utils/mime.js", + "./node_modules/@jimp/core/dist/utils/promisify.js", + "./node_modules/@jimp/core/node_modules/file-type/index.js", + "./node_modules/@jimp/gif/dist/index.js", + "./node_modules/@jimp/jpeg/node_modules/jpeg-js/lib/encoder.js", + "./node_modules/@jimp/plugin-blit/dist/index.js", + "./node_modules/@jimp/plugin-blur/dist/blur-tables.js", + "./node_modules/@jimp/plugin-blur/dist/index.js", + "./node_modules/@jimp/plugin-circle/dist/index.js", + "./node_modules/@jimp/plugin-color/dist/index.js", + "./node_modules/@jimp/plugin-contain/dist/index.js", + "./node_modules/@jimp/plugin-cover/dist/index.js", + "./node_modules/@jimp/plugin-crop/dist/index.js", + "./node_modules/@jimp/plugin-displace/dist/index.js", + "./node_modules/@jimp/plugin-dither/dist/index.js", + "./node_modules/@jimp/plugin-fisheye/dist/index.js", + "./node_modules/@jimp/plugin-flip/dist/index.js", + "./node_modules/@jimp/plugin-gaussian/dist/index.js", + "./node_modules/@jimp/plugin-invert/dist/index.js", + "./node_modules/@jimp/plugin-mask/dist/index.js", + "./node_modules/@jimp/plugin-normalize/dist/index.js", + "./node_modules/@jimp/plugin-print/dist/measure-text.js", + "./node_modules/@jimp/plugin-resize/dist/index.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize.js", + "./node_modules/@jimp/plugin-resize/dist/modules/resize2.js", + "./node_modules/@jimp/plugin-rotate/dist/index.js", + "./node_modules/@jimp/plugin-scale/dist/index.js", + "./node_modules/@jimp/plugin-shadow/dist/index.js", + "./node_modules/@jimp/plugin-threshold/dist/index.js", + "./node_modules/@jimp/png/dist/index.js", + "./node_modules/@jimp/utils/dist/index.js", + "./node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js", + "./node_modules/@kwsites/promise-deferred/dist/index.js", + "./node_modules/@nodelib/fs.scandir/out/constants.js", + "./node_modules/@nodelib/fs.scandir/out/index.js", + "./node_modules/@nodelib/fs.scandir/out/providers/async.js", + "./node_modules/@nodelib/fs.scandir/out/providers/common.js", + "./node_modules/@nodelib/fs.scandir/out/providers/sync.js", + "./node_modules/@nodelib/fs.scandir/out/settings.js", + "./node_modules/@nodelib/fs.scandir/out/utils/fs.js", + "./node_modules/@nodelib/fs.scandir/out/utils/index.js", + "./node_modules/@nodelib/fs.stat/out/index.js", + "./node_modules/@nodelib/fs.stat/out/providers/async.js", + "./node_modules/@nodelib/fs.stat/out/providers/sync.js", + "./node_modules/@nodelib/fs.stat/out/settings.js", + "./node_modules/@nodelib/fs.walk/out/index.js", + "./node_modules/@nodelib/fs.walk/out/providers/async.js", + "./node_modules/@nodelib/fs.walk/out/providers/stream.js", + "./node_modules/@nodelib/fs.walk/out/providers/sync.js", + "./node_modules/@nodelib/fs.walk/out/readers/async.js", + "./node_modules/@nodelib/fs.walk/out/readers/common.js", + "./node_modules/@nodelib/fs.walk/out/readers/reader.js", + "./node_modules/@nodelib/fs.walk/out/readers/sync.js", + "./node_modules/@nodelib/fs.walk/out/settings.js", + "./node_modules/@sindresorhus/df/index.js", + "./node_modules/@sindresorhus/df/node_modules/execa/index.js", + "./node_modules/@sindresorhus/df/node_modules/npm-run-path/index.js", + "./node_modules/@tsconfig/node10/tsconfig.json", + "./node_modules/@tsconfig/node12/tsconfig.json", + "./node_modules/@tsconfig/node14/tsconfig.json", + "./node_modules/@tsconfig/node16/tsconfig.json", + "./node_modules/@urql/core/dist/18d86276.js", + "./node_modules/@urql/core/dist/urql-core.js", + "./node_modules/@urql/exchange-graphcache/dist/7832a774.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache-extras.js", + "./node_modules/@urql/exchange-graphcache/dist/urql-exchange-graphcache.js", + "./node_modules/accepts/index.js", + "./node_modules/acorn-node/index.js", + "./node_modules/acorn-node/lib/bigint/index.js", + "./node_modules/acorn-node/lib/class-fields/index.js", + "./node_modules/acorn-node/lib/dynamic-import/index.js", + "./node_modules/acorn-node/lib/export-ns-from/index.js", + "./node_modules/acorn-node/lib/import-meta/index.js", + "./node_modules/acorn-node/lib/numeric-separator/index.js", + "./node_modules/acorn-node/lib/private-class-elements/index.js", + "./node_modules/acorn-node/lib/static-class-features/index.js", + "./node_modules/acorn-node/node_modules/acorn/dist/acorn.js", + "./node_modules/acorn-walk/dist/walk.js", + "./node_modules/adm-zip/headers/entryHeader.js", + "./node_modules/adm-zip/headers/index.js", + "./node_modules/adm-zip/headers/mainHeader.js", + "./node_modules/adm-zip/methods/deflater.js", + "./node_modules/adm-zip/methods/index.js", + "./node_modules/adm-zip/methods/inflater.js", + "./node_modules/adm-zip/util/constants.js", + "./node_modules/adm-zip/util/errors.js", + "./node_modules/adm-zip/util/fileSystem.js", + "./node_modules/adm-zip/zipEntry.js", + "./node_modules/adm-zip/zipFile.js", + "./node_modules/ansi-regex/index.js", + "./node_modules/ansi-styles/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/conversions.js", + "./node_modules/ansi-styles/node_modules/color-convert/index.js", + "./node_modules/ansi-styles/node_modules/color-convert/route.js", + "./node_modules/ansi_up/ansi_up.js", + "./node_modules/any-base/index.js", + "./node_modules/any-base/src/converter.js", + "./node_modules/archiver-utils/file.js", + "./node_modules/archiver-utils/index.js", + "./node_modules/archiver-utils/node_modules/glob/common.js", + "./node_modules/archiver/lib/plugins/tar.js", + "./node_modules/archiver/lib/plugins/zip.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/archiver/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/array-flatten/array-flatten.js", + "./node_modules/array-union/index.js", + "./node_modules/asn1/lib/ber/errors.js", + "./node_modules/asn1/lib/ber/index.js", + "./node_modules/asn1/lib/ber/reader.js", + "./node_modules/asn1/lib/ber/types.js", + "./node_modules/asn1/lib/ber/writer.js", + "./node_modules/asn1/lib/index.js", + "./node_modules/ast-types/def/babel-core.js", + "./node_modules/ast-types/def/babel.js", + "./node_modules/ast-types/def/core.js", + "./node_modules/ast-types/def/es-proposals.js", + "./node_modules/ast-types/def/es2020.js", + "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", + "./node_modules/ast-types/def/esprima.js", + "./node_modules/ast-types/def/flow.js", + "./node_modules/ast-types/def/jsx.js", + "./node_modules/ast-types/def/type-annotations.js", + "./node_modules/ast-types/def/typescript.js", + "./node_modules/ast-types/fork.js", + "./node_modules/ast-types/gen/namedTypes.js", + "./node_modules/ast-types/lib/equiv.js", + "./node_modules/ast-types/lib/node-path.js", + "./node_modules/ast-types/lib/path-visitor.js", + "./node_modules/ast-types/lib/path.js", + "./node_modules/ast-types/lib/scope.js", + "./node_modules/ast-types/lib/shared.js", + "./node_modules/ast-types/lib/types.js", + "./node_modules/ast-types/main.js", + "./node_modules/asynckit/index.js", + "./node_modules/asynckit/lib/abort.js", + "./node_modules/asynckit/lib/async.js", + "./node_modules/asynckit/lib/defer.js", + "./node_modules/asynckit/lib/iterate.js", + "./node_modules/asynckit/lib/state.js", + "./node_modules/asynckit/lib/terminator.js", + "./node_modules/asynckit/parallel.js", + "./node_modules/asynckit/serial.js", + "./node_modules/asynckit/serialOrdered.js", + "./node_modules/at-least-node/index.js", + "./node_modules/author-regex/index.js", + "./node_modules/aws-sign2/index.js", + "./node_modules/aws4/aws4.js", + "./node_modules/aws4/lru.js", + "./node_modules/babylon/lib/index.js", + "./node_modules/balanced-match/index.js", + "./node_modules/base64-js/index.js", + "./node_modules/base64id/lib/base64id.js", + "./node_modules/basic-auth/index.js", + "./node_modules/bcrypt-pbkdf/index.js", + "./node_modules/binary-extensions/binary-extensions.json", + "./node_modules/binary-extensions/index.js", + "./node_modules/binaryextensions/edition-es5/index.js", + "./node_modules/bl/BufferList.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/bl/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/body-parser/lib/read.js", + "./node_modules/body-parser/lib/types/json.js", + "./node_modules/body-parser/lib/types/raw.js", + "./node_modules/body-parser/lib/types/text.js", + "./node_modules/body-parser/lib/types/urlencoded.js", + "./node_modules/body-parser/node_modules/bytes/index.js", + "./node_modules/body-parser/node_modules/debug/src/debug.js", + "./node_modules/body-parser/node_modules/inherits/inherits.js", + "./node_modules/body-parser/node_modules/inherits/inherits_browser.js", + "./node_modules/body-parser/node_modules/ms/index.js", + "./node_modules/body-parser/node_modules/qs/lib/formats.js", + "./node_modules/body-parser/node_modules/qs/lib/index.js", + "./node_modules/body-parser/node_modules/qs/lib/parse.js", + "./node_modules/body-parser/node_modules/qs/lib/stringify.js", + "./node_modules/body-parser/node_modules/qs/lib/utils.js", + "./node_modules/body-parser/node_modules/raw-body/index.js", + "./node_modules/boolean/build/lib/boolean.js", + "./node_modules/brace-expansion/index.js", + "./node_modules/braces/index.js", + "./node_modules/braces/lib/compile.js", + "./node_modules/braces/lib/constants.js", + "./node_modules/braces/lib/expand.js", + "./node_modules/braces/lib/parse.js", + "./node_modules/braces/lib/stringify.js", + "./node_modules/braces/lib/utils.js", + "./node_modules/bytes/index.js", + "./node_modules/caseless/index.js", + "./node_modules/chalk/node_modules/ansi-styles/index.js", + "./node_modules/chalk/templates.js", + "./node_modules/charenc/charenc.js", + "./node_modules/charset/index.js", + "./node_modules/check-more-types/dist/check-more-types.js", + "./node_modules/chrome-remote-interface/lib/api.js", + "./node_modules/chrome-remote-interface/lib/defaults.js", + "./node_modules/chrome-remote-interface/lib/devtools.js", + "./node_modules/chrome-remote-interface/lib/external-request.js", + "./node_modules/chrome-remote-interface/lib/protocol.json", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/buffer-util.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/event-target.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/extension.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/limiter.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/permessage-deflate.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/sender.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/stream.js", + "./node_modules/chrome-remote-interface/node_modules/ws/lib/validation.js", + "./node_modules/circular-json/build/circular-json.node.js", + "./node_modules/cli-truncate/index.js", + "./node_modules/cli-truncate/node_modules/astral-regex/index.js", + "./node_modules/cli-truncate/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/cli-truncate/node_modules/slice-ansi/index.js", + "./node_modules/clone-response/src/index.js", + "./node_modules/coffeescript/lib/coffee-script/lexer.js", + "./node_modules/coffeescript/lib/coffee-script/parser.js", + "./node_modules/coffeescript/lib/coffee-script/rewriter.js", + "./node_modules/coffeescript/lib/coffee-script/scope.js", + "./node_modules/coffeescript/lib/coffee-script/sourcemap.js", + "./node_modules/coffeescript/package.json", + "./node_modules/color-convert/conversions.js", + "./node_modules/color-convert/index.js", + "./node_modules/color-convert/node_modules/color-name/index.js", + "./node_modules/color-convert/route.js", + "./node_modules/color-name/index.js", + "./node_modules/color-string/index.js", + "./node_modules/colors/lib/custom/trap.js", + "./node_modules/colors/lib/custom/zalgo.js", + "./node_modules/colors/lib/maps/america.js", + "./node_modules/colors/lib/maps/rainbow.js", + "./node_modules/colors/lib/maps/random.js", + "./node_modules/colors/lib/maps/zebra.js", + "./node_modules/colors/lib/styles.js", + "./node_modules/colors/lib/system/has-flag.js", + "./node_modules/command-exists/index.js", + "./node_modules/command-exists/lib/command-exists.js", + "./node_modules/common-path-prefix/index.js", + "./node_modules/common-tags/lib/TemplateTag/TemplateTag.js", + "./node_modules/common-tags/lib/TemplateTag/index.js", + "./node_modules/common-tags/lib/codeBlock/index.js", + "./node_modules/common-tags/lib/commaLists/commaLists.js", + "./node_modules/common-tags/lib/commaLists/index.js", + "./node_modules/common-tags/lib/commaListsAnd/commaListsAnd.js", + "./node_modules/common-tags/lib/commaListsAnd/index.js", + "./node_modules/common-tags/lib/commaListsOr/commaListsOr.js", + "./node_modules/common-tags/lib/commaListsOr/index.js", + "./node_modules/common-tags/lib/html/html.js", + "./node_modules/common-tags/lib/html/index.js", + "./node_modules/common-tags/lib/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/index.js", + "./node_modules/common-tags/lib/inlineArrayTransformer/inlineArrayTransformer.js", + "./node_modules/common-tags/lib/inlineLists/index.js", + "./node_modules/common-tags/lib/inlineLists/inlineLists.js", + "./node_modules/common-tags/lib/oneLine/index.js", + "./node_modules/common-tags/lib/oneLine/oneLine.js", + "./node_modules/common-tags/lib/oneLineCommaLists/index.js", + "./node_modules/common-tags/lib/oneLineCommaLists/oneLineCommaLists.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsAnd/oneLineCommaListsAnd.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/index.js", + "./node_modules/common-tags/lib/oneLineCommaListsOr/oneLineCommaListsOr.js", + "./node_modules/common-tags/lib/oneLineInlineLists/index.js", + "./node_modules/common-tags/lib/oneLineInlineLists/oneLineInlineLists.js", + "./node_modules/common-tags/lib/oneLineTrim/index.js", + "./node_modules/common-tags/lib/oneLineTrim/oneLineTrim.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/index.js", + "./node_modules/common-tags/lib/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", + "./node_modules/common-tags/lib/replaceResultTransformer/index.js", + "./node_modules/common-tags/lib/replaceResultTransformer/replaceResultTransformer.js", + "./node_modules/common-tags/lib/replaceStringTransformer/index.js", + "./node_modules/common-tags/lib/replaceStringTransformer/replaceStringTransformer.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/index.js", + "./node_modules/common-tags/lib/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", + "./node_modules/common-tags/lib/safeHtml/index.js", + "./node_modules/common-tags/lib/safeHtml/safeHtml.js", + "./node_modules/common-tags/lib/source/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/index.js", + "./node_modules/common-tags/lib/splitStringTransformer/splitStringTransformer.js", + "./node_modules/common-tags/lib/stripIndent/index.js", + "./node_modules/common-tags/lib/stripIndent/stripIndent.js", + "./node_modules/common-tags/lib/stripIndentTransformer/index.js", + "./node_modules/common-tags/lib/stripIndentTransformer/stripIndentTransformer.js", + "./node_modules/common-tags/lib/stripIndents/index.js", + "./node_modules/common-tags/lib/stripIndents/stripIndents.js", + "./node_modules/common-tags/lib/trimResultTransformer/index.js", + "./node_modules/common-tags/lib/trimResultTransformer/trimResultTransformer.js", + "./node_modules/component-emitter/index.js", + "./node_modules/compress-commons/lib/archivers/archive-entry.js", + "./node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js", + "./node_modules/compress-commons/lib/archivers/zip/unix-stat.js", + "./node_modules/compress-commons/lib/archivers/zip/util.js", + "./node_modules/compress-commons/lib/util/index.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/compressible/index.js", + "./node_modules/compression/index.js", + "./node_modules/compression/node_modules/debug/src/debug.js", + "./node_modules/compression/node_modules/ms/index.js", + "./node_modules/concat-map/index.js", + "./node_modules/content-type/index.js", + "./node_modules/cookie-parser/index.js", + "./node_modules/cookie-parser/node_modules/cookie/index.js", + "./node_modules/cookie-signature/index.js", + "./node_modules/cookie/index.js", + "./node_modules/core-util-is/lib/util.js", + "./node_modules/cors/lib/index.js", + "./node_modules/cp-file/index.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/create-require/create-require.js", + "./node_modules/cross-fetch/dist/node-ponyfill.js", + "./node_modules/cross-spawn-async/index.js", + "./node_modules/cross-spawn-async/lib/enoent.js", + "./node_modules/cross-spawn-async/node_modules/lru-cache/index.js", + "./node_modules/cross-spawn-async/node_modules/yallist/yallist.js", + "./node_modules/cross-spawn/index.js", + "./node_modules/cross-spawn/lib/enoent.js", + "./node_modules/cross-spawn/lib/parse.js", + "./node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/cross-spawn/node_modules/path-key/index.js", + "./node_modules/cross-spawn/node_modules/shebang-command/index.js", + "./node_modules/cross-spawn/node_modules/shebang-regex/index.js", + "./node_modules/cross-spawn/node_modules/which/which.js", + "./node_modules/crypt/crypt.js", + "./node_modules/data-uri-to-buffer/index.js", + "./node_modules/dayjs/dayjs.min.js", + "./node_modules/dayjs/plugin/duration.js", + "./node_modules/dayjs/plugin/relativeTime.js", + "./node_modules/dayjs/plugin/updateLocale.js", + "./node_modules/debug/node_modules/ms/index.js", + "./node_modules/debug/src/common.js", + "./node_modules/decompress-response/index.js", + "./node_modules/dedent/dist/dedent.js", + "./node_modules/deep-is/index.js", + "./node_modules/define-properties/index.js", + "./node_modules/depd/lib/compat/callsite-tostring.js", + "./node_modules/depd/lib/compat/event-listener-count.js", + "./node_modules/depd/lib/compat/index.js", + "./node_modules/destroy/index.js", + "./node_modules/detect-node/index.js", + "./node_modules/diff/lib/convert/dmp.js", + "./node_modules/diff/lib/convert/xml.js", + "./node_modules/diff/lib/diff/array.js", + "./node_modules/diff/lib/diff/base.js", + "./node_modules/diff/lib/diff/character.js", + "./node_modules/diff/lib/diff/css.js", + "./node_modules/diff/lib/diff/json.js", + "./node_modules/diff/lib/diff/line.js", + "./node_modules/diff/lib/diff/sentence.js", + "./node_modules/diff/lib/diff/word.js", + "./node_modules/diff/lib/index.js", + "./node_modules/diff/lib/patch/apply.js", + "./node_modules/diff/lib/patch/create.js", + "./node_modules/diff/lib/patch/merge.js", + "./node_modules/diff/lib/patch/parse.js", + "./node_modules/diff/lib/util/array.js", + "./node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/diff/lib/util/params.js", + "./node_modules/dir-glob/index.js", + "./node_modules/drange/lib/index.js", + "./node_modules/ecc-jsbn/index.js", + "./node_modules/ecc-jsbn/lib/ec.js", + "./node_modules/ecc-jsbn/lib/sec.js", + "./node_modules/ee-first/index.js", + "./node_modules/ejs/lib/utils.js", + "./node_modules/ejs/package.json", + "./node_modules/electron-context-menu/index.js", + "./node_modules/electron-dl/index.js", + "./node_modules/electron-packager/node_modules/lru-cache/index.js", + "./node_modules/electron-packager/node_modules/semver/classes/comparator.js", + "./node_modules/electron-packager/node_modules/semver/classes/range.js", + "./node_modules/electron-packager/node_modules/semver/classes/semver.js", + "./node_modules/electron-packager/node_modules/semver/functions/clean.js", + "./node_modules/electron-packager/node_modules/semver/functions/cmp.js", + "./node_modules/electron-packager/node_modules/semver/functions/coerce.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-build.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare-loose.js", + "./node_modules/electron-packager/node_modules/semver/functions/compare.js", + "./node_modules/electron-packager/node_modules/semver/functions/diff.js", + "./node_modules/electron-packager/node_modules/semver/functions/eq.js", + "./node_modules/electron-packager/node_modules/semver/functions/gt.js", + "./node_modules/electron-packager/node_modules/semver/functions/gte.js", + "./node_modules/electron-packager/node_modules/semver/functions/inc.js", + "./node_modules/electron-packager/node_modules/semver/functions/lt.js", + "./node_modules/electron-packager/node_modules/semver/functions/lte.js", + "./node_modules/electron-packager/node_modules/semver/functions/major.js", + "./node_modules/electron-packager/node_modules/semver/functions/minor.js", + "./node_modules/electron-packager/node_modules/semver/functions/neq.js", + "./node_modules/electron-packager/node_modules/semver/functions/parse.js", + "./node_modules/electron-packager/node_modules/semver/functions/patch.js", + "./node_modules/electron-packager/node_modules/semver/functions/prerelease.js", + "./node_modules/electron-packager/node_modules/semver/functions/rcompare.js", + "./node_modules/electron-packager/node_modules/semver/functions/rsort.js", + "./node_modules/electron-packager/node_modules/semver/functions/satisfies.js", + "./node_modules/electron-packager/node_modules/semver/functions/sort.js", + "./node_modules/electron-packager/node_modules/semver/functions/valid.js", + "./node_modules/electron-packager/node_modules/semver/index.js", + "./node_modules/electron-packager/node_modules/semver/internal/constants.js", + "./node_modules/electron-packager/node_modules/semver/internal/debug.js", + "./node_modules/electron-packager/node_modules/semver/internal/identifiers.js", + "./node_modules/electron-packager/node_modules/semver/internal/parse-options.js", + "./node_modules/electron-packager/node_modules/semver/internal/re.js", + "./node_modules/electron-packager/node_modules/semver/ranges/gtr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/intersects.js", + "./node_modules/electron-packager/node_modules/semver/ranges/ltr.js", + "./node_modules/electron-packager/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/electron-packager/node_modules/semver/ranges/min-version.js", + "./node_modules/electron-packager/node_modules/semver/ranges/outside.js", + "./node_modules/electron-packager/node_modules/semver/ranges/simplify.js", + "./node_modules/electron-packager/node_modules/semver/ranges/subset.js", + "./node_modules/electron-packager/node_modules/semver/ranges/to-comparators.js", + "./node_modules/electron-packager/node_modules/semver/ranges/valid.js", + "./node_modules/electron-packager/package.json", + "./node_modules/electron-packager/src/common.js", + "./node_modules/electron-packager/src/copy-filter.js", + "./node_modules/electron-packager/src/download.js", + "./node_modules/electron-packager/src/hooks.js", + "./node_modules/electron-packager/src/index.js", + "./node_modules/electron-packager/src/infer.js", + "./node_modules/electron-packager/src/prune.js", + "./node_modules/electron-packager/src/targets.js", + "./node_modules/electron-packager/src/unzip.js", + "./node_modules/encodeurl/index.js", + "./node_modules/encoding/lib/encoding.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf32.js", + "./node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/encoding/node_modules/iconv-lite/lib/streams.js", + "./node_modules/end-of-stream/index.js", + "./node_modules/env-paths/index.js", + "./node_modules/error-ex/index.js", + "./node_modules/errorhandler/index.js", + "./node_modules/es6-error/lib/index.js", + "./node_modules/escape-goat/index.js", + "./node_modules/escape-html/index.js", + "./node_modules/escape-string-applescript/index.js", + "./node_modules/escape-string-regexp/index.js", + "./node_modules/esprima/dist/esprima.js", + "./node_modules/etag/index.js", + "./node_modules/execa/index.js", + "./node_modules/execa/lib/command.js", + "./node_modules/execa/lib/error.js", + "./node_modules/execa/lib/kill.js", + "./node_modules/execa/lib/promise.js", + "./node_modules/execa/lib/stdio.js", + "./node_modules/execa/lib/stream.js", + "./node_modules/execa/node_modules/get-stream/index.js", + "./node_modules/execa/node_modules/is-stream/index.js", + "./node_modules/execa/node_modules/npm-run-path/index.js", + "./node_modules/execa/node_modules/path-key/index.js", + "./node_modules/exif-parser/index.js", + "./node_modules/exif-parser/lib/bufferstream.js", + "./node_modules/exif-parser/lib/date.js", + "./node_modules/exif-parser/lib/dom-bufferstream.js", + "./node_modules/exif-parser/lib/exif-tags.js", + "./node_modules/exif-parser/lib/exif.js", + "./node_modules/exif-parser/lib/jpeg.js", + "./node_modules/exif-parser/lib/parser.js", + "./node_modules/exif-parser/lib/simplify.js", + "./node_modules/express-graphql/node_modules/setprototypeof/index.js", + "./node_modules/express-graphql/renderGraphiQL.js", + "./node_modules/express/index.js", + "./node_modules/express/lib/express.js", + "./node_modules/express/lib/middleware/init.js", + "./node_modules/express/lib/middleware/query.js", + "./node_modules/express/lib/router/layer.js", + "./node_modules/express/lib/utils.js", + "./node_modules/express/lib/view.js", + "./node_modules/express/node_modules/content-disposition/index.js", + "./node_modules/express/node_modules/cookie/index.js", + "./node_modules/express/node_modules/debug/src/debug.js", + "./node_modules/express/node_modules/ms/index.js", + "./node_modules/express/node_modules/path-to-regexp/index.js", + "./node_modules/express/node_modules/qs/lib/formats.js", + "./node_modules/express/node_modules/qs/lib/index.js", + "./node_modules/express/node_modules/qs/lib/parse.js", + "./node_modules/express/node_modules/qs/lib/stringify.js", + "./node_modules/express/node_modules/qs/lib/utils.js", + "./node_modules/ext-list/index.js", + "./node_modules/ext-name/index.js", + "./node_modules/extend/index.js", + "./node_modules/extract-zip/index.js", + "./node_modules/extract-zip/node_modules/get-stream/index.js", + "./node_modules/extsprintf/lib/extsprintf.js", + "./node_modules/fast-glob/node_modules/micromatch/index.js", + "./node_modules/fast-glob/out/index.js", + "./node_modules/fast-glob/out/managers/patterns.js", + "./node_modules/fast-glob/out/managers/tasks.js", + "./node_modules/fast-glob/out/providers/async.js", + "./node_modules/fast-glob/out/providers/filters/deep.js", + "./node_modules/fast-glob/out/providers/filters/entry.js", + "./node_modules/fast-glob/out/providers/filters/error.js", + "./node_modules/fast-glob/out/providers/matchers/matcher.js", + "./node_modules/fast-glob/out/providers/matchers/partial.js", + "./node_modules/fast-glob/out/providers/provider.js", + "./node_modules/fast-glob/out/providers/stream.js", + "./node_modules/fast-glob/out/providers/sync.js", + "./node_modules/fast-glob/out/providers/transformers/entry.js", + "./node_modules/fast-glob/out/readers/reader.js", + "./node_modules/fast-glob/out/readers/stream.js", + "./node_modules/fast-glob/out/readers/sync.js", + "./node_modules/fast-glob/out/utils/array.js", + "./node_modules/fast-glob/out/utils/errno.js", + "./node_modules/fast-glob/out/utils/fs.js", + "./node_modules/fast-glob/out/utils/index.js", + "./node_modules/fast-glob/out/utils/path.js", + "./node_modules/fast-glob/out/utils/pattern.js", + "./node_modules/fast-glob/out/utils/stream.js", + "./node_modules/fast-glob/out/utils/string.js", + "./node_modules/fastq/queue.js", + "./node_modules/filename-reserved-regex/index.js", + "./node_modules/filenamify/filenamify-path.js", + "./node_modules/filenamify/filenamify.js", + "./node_modules/filenamify/index.js", + "./node_modules/fill-range/index.js", + "./node_modules/finalhandler/index.js", + "./node_modules/finalhandler/node_modules/debug/src/debug.js", + "./node_modules/finalhandler/node_modules/ms/index.js", + "./node_modules/find-process/index.js", + "./node_modules/find-process/lib/find.js", + "./node_modules/find-process/lib/find_pid.js", + "./node_modules/find-process/lib/find_process.js", + "./node_modules/find-process/lib/utils.js", + "./node_modules/firefox-profile/lib/firefox_profile.js", + "./node_modules/firefox-profile/lib/profile_finder.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/move/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/output/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/firefox-profile/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/flora-colossus/lib/Walker.js", + "./node_modules/flora-colossus/lib/depTypes.js", + "./node_modules/flora-colossus/lib/index.js", + "./node_modules/flora-colossus/lib/nativeModuleTypes.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/flora-colossus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fluent-ffmpeg/lib/capabilities.js", + "./node_modules/fluent-ffmpeg/lib/ffprobe.js", + "./node_modules/fluent-ffmpeg/lib/options/audio.js", + "./node_modules/fluent-ffmpeg/lib/options/custom.js", + "./node_modules/fluent-ffmpeg/lib/options/inputs.js", + "./node_modules/fluent-ffmpeg/lib/options/misc.js", + "./node_modules/fluent-ffmpeg/lib/options/output.js", + "./node_modules/fluent-ffmpeg/lib/options/video.js", + "./node_modules/fluent-ffmpeg/lib/options/videosize.js", + "./node_modules/fluent-ffmpeg/lib/processor.js", + "./node_modules/fluent-ffmpeg/lib/recipes.js", + "./node_modules/follow-redirects/debug.js", + "./node_modules/form-data/lib/populate.js", + "./node_modules/forwarded/index.js", + "./node_modules/fresh/index.js", + "./node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/fs-extra/lib/copy/index.js", + "./node_modules/fs-extra/lib/empty/index.js", + "./node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/fs-extra/lib/mkdirs/make-dir.js", + "./node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/fs-extra/lib/move-sync/move-sync.js", + "./node_modules/fs-extra/lib/move/index.js", + "./node_modules/fs-extra/lib/move/move.js", + "./node_modules/fs-extra/lib/output/index.js", + "./node_modules/fs-extra/lib/remove/index.js", + "./node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/fs-extra/lib/util/stat.js", + "./node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/fs-extra/node_modules/jsonfile/utils.js", + "./node_modules/fs-extra/node_modules/universalify/index.js", + "./node_modules/fs.realpath/index.js", + "./node_modules/fs.realpath/old.js", + "./node_modules/function-bind/implementation.js", + "./node_modules/function-bind/index.js", + "./node_modules/galactus/lib/DestroyerOfModules.js", + "./node_modules/galactus/lib/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/copy.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/copy/ncp.js", + "./node_modules/galactus/node_modules/fs-extra/lib/empty/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/file.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/link.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./node_modules/galactus/node_modules/fs-extra/lib/ensure/symlink.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/json/output-json.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./node_modules/galactus/node_modules/fs-extra/lib/mkdirs/win32.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move-sync/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/move/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/output/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/index.js", + "./node_modules/galactus/node_modules/fs-extra/lib/remove/rimraf.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/assign.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/buffer.js", + "./node_modules/galactus/node_modules/fs-extra/lib/util/utimes.js", + "./node_modules/get-own-enumerable-property-symbols/lib/index.js", + "./node_modules/get-package-info/lib/index.js", + "./node_modules/get-package-info/node_modules/debug/src/debug.js", + "./node_modules/get-package-info/node_modules/find-up/index.js", + "./node_modules/get-package-info/node_modules/load-json-file/index.js", + "./node_modules/get-package-info/node_modules/locate-path/index.js", + "./node_modules/get-package-info/node_modules/ms/index.js", + "./node_modules/get-package-info/node_modules/p-limit/index.js", + "./node_modules/get-package-info/node_modules/p-locate/index.js", + "./node_modules/get-package-info/node_modules/p-try/index.js", + "./node_modules/get-package-info/node_modules/parse-json/index.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/parse.js", + "./node_modules/get-package-info/node_modules/parse-json/vendor/unicode.js", + "./node_modules/get-package-info/node_modules/path-type/index.js", + "./node_modules/get-package-info/node_modules/pify/index.js", + "./node_modules/get-package-info/node_modules/read-pkg-up/index.js", + "./node_modules/get-package-info/node_modules/read-pkg/index.js", + "./node_modules/get-port/index.js", + "./node_modules/get-stream/index.js", + "./node_modules/getos/index.js", + "./node_modules/getos/os.json", + "./node_modules/gifwrap/src/bitmapimage.js", + "./node_modules/gifwrap/src/gif.js", + "./node_modules/gifwrap/src/gifframe.js", + "./node_modules/glob-base/index.js", + "./node_modules/glob-base/node_modules/glob-parent/index.js", + "./node_modules/glob-base/node_modules/is-glob/index.js", + "./node_modules/global-agent/dist/errors.js", + "./node_modules/global-agent/dist/index.js", + "./node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js", + "./node_modules/global-agent/dist/utilities/parseProxyUrl.js", + "./node_modules/global-agent/node_modules/lru-cache/index.js", + "./node_modules/global-agent/node_modules/semver/classes/comparator.js", + "./node_modules/global-agent/node_modules/semver/classes/range.js", + "./node_modules/global-agent/node_modules/semver/classes/semver.js", + "./node_modules/global-agent/node_modules/semver/functions/clean.js", + "./node_modules/global-agent/node_modules/semver/functions/cmp.js", + "./node_modules/global-agent/node_modules/semver/functions/coerce.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-build.js", + "./node_modules/global-agent/node_modules/semver/functions/compare-loose.js", + "./node_modules/global-agent/node_modules/semver/functions/compare.js", + "./node_modules/global-agent/node_modules/semver/functions/diff.js", + "./node_modules/global-agent/node_modules/semver/functions/eq.js", + "./node_modules/global-agent/node_modules/semver/functions/gt.js", + "./node_modules/global-agent/node_modules/semver/functions/gte.js", + "./node_modules/global-agent/node_modules/semver/functions/inc.js", + "./node_modules/global-agent/node_modules/semver/functions/lt.js", + "./node_modules/global-agent/node_modules/semver/functions/lte.js", + "./node_modules/global-agent/node_modules/semver/functions/major.js", + "./node_modules/global-agent/node_modules/semver/functions/minor.js", + "./node_modules/global-agent/node_modules/semver/functions/neq.js", + "./node_modules/global-agent/node_modules/semver/functions/parse.js", + "./node_modules/global-agent/node_modules/semver/functions/patch.js", + "./node_modules/global-agent/node_modules/semver/functions/prerelease.js", + "./node_modules/global-agent/node_modules/semver/functions/rcompare.js", + "./node_modules/global-agent/node_modules/semver/functions/rsort.js", + "./node_modules/global-agent/node_modules/semver/functions/satisfies.js", + "./node_modules/global-agent/node_modules/semver/functions/sort.js", + "./node_modules/global-agent/node_modules/semver/functions/valid.js", + "./node_modules/global-agent/node_modules/semver/index.js", + "./node_modules/global-agent/node_modules/semver/internal/constants.js", + "./node_modules/global-agent/node_modules/semver/internal/debug.js", + "./node_modules/global-agent/node_modules/semver/internal/identifiers.js", + "./node_modules/global-agent/node_modules/semver/internal/parse-options.js", + "./node_modules/global-agent/node_modules/semver/internal/re.js", + "./node_modules/global-agent/node_modules/semver/ranges/gtr.js", + "./node_modules/global-agent/node_modules/semver/ranges/intersects.js", + "./node_modules/global-agent/node_modules/semver/ranges/ltr.js", + "./node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js", + "./node_modules/global-agent/node_modules/semver/ranges/min-version.js", + "./node_modules/global-agent/node_modules/semver/ranges/outside.js", + "./node_modules/global-agent/node_modules/semver/ranges/simplify.js", + "./node_modules/global-agent/node_modules/semver/ranges/subset.js", + "./node_modules/global-agent/node_modules/semver/ranges/to-comparators.js", + "./node_modules/global-agent/node_modules/semver/ranges/valid.js", + "./node_modules/globals/globals.json", + "./node_modules/globals/index.js", + "./node_modules/globalthis/implementation.js", + "./node_modules/globalthis/polyfill.js", + "./node_modules/globalthis/shim.js", + "./node_modules/globby/gitignore.js", + "./node_modules/globby/index.js", + "./node_modules/globby/node_modules/array-union/index.js", + "./node_modules/globby/node_modules/slash/index.js", + "./node_modules/graceful-fs/clone.js", + "./node_modules/graceful-fs/legacy-streams.js", + "./node_modules/grapheme-splitter/index.js", + "./node_modules/graphql-resolve-batch/lib/batch.js", + "./node_modules/graphql-scalars/index.js", + "./node_modules/graphql-ws/lib/common.js", + "./node_modules/graphql-ws/lib/server.js", + "./node_modules/graphql-ws/lib/use/ws.js", + "./node_modules/graphql-ws/lib/utils.js", + "./node_modules/graphql/error/GraphQLError.js", + "./node_modules/graphql/error/formatError.js", + "./node_modules/graphql/error/index.js", + "./node_modules/graphql/error/locatedError.js", + "./node_modules/graphql/error/syntaxError.js", + "./node_modules/graphql/execution/execute.js", + "./node_modules/graphql/execution/index.js", + "./node_modules/graphql/execution/values.js", + "./node_modules/graphql/graphql.js", + "./node_modules/graphql/index.js", + "./node_modules/graphql/jsutils/Path.js", + "./node_modules/graphql/jsutils/defineInspect.js", + "./node_modules/graphql/jsutils/devAssert.js", + "./node_modules/graphql/jsutils/didYouMean.js", + "./node_modules/graphql/jsutils/identityFunc.js", + "./node_modules/graphql/jsutils/inspect.js", + "./node_modules/graphql/jsutils/instanceOf.js", + "./node_modules/graphql/jsutils/invariant.js", + "./node_modules/graphql/jsutils/isAsyncIterable.js", + "./node_modules/graphql/jsutils/isObjectLike.js", + "./node_modules/graphql/jsutils/isPromise.js", + "./node_modules/graphql/jsutils/keyMap.js", + "./node_modules/graphql/jsutils/keyValMap.js", + "./node_modules/graphql/jsutils/mapValue.js", + "./node_modules/graphql/jsutils/memoize3.js", + "./node_modules/graphql/jsutils/naturalCompare.js", + "./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js", + "./node_modules/graphql/jsutils/printPathArray.js", + "./node_modules/graphql/jsutils/promiseForObject.js", + "./node_modules/graphql/jsutils/promiseReduce.js", + "./node_modules/graphql/jsutils/safeArrayFrom.js", + "./node_modules/graphql/jsutils/suggestionList.js", + "./node_modules/graphql/jsutils/toObjMap.js", + "./node_modules/graphql/language/ast.js", + "./node_modules/graphql/language/blockString.js", + "./node_modules/graphql/language/directiveLocation.js", + "./node_modules/graphql/language/index.js", + "./node_modules/graphql/language/kinds.js", + "./node_modules/graphql/language/lexer.js", + "./node_modules/graphql/language/location.js", + "./node_modules/graphql/language/parser.js", + "./node_modules/graphql/language/predicates.js", + "./node_modules/graphql/language/printLocation.js", + "./node_modules/graphql/language/printer.js", + "./node_modules/graphql/language/source.js", + "./node_modules/graphql/language/tokenKind.js", + "./node_modules/graphql/language/visitor.js", + "./node_modules/graphql/polyfills/arrayFrom.js", + "./node_modules/graphql/polyfills/find.js", + "./node_modules/graphql/polyfills/isFinite.js", + "./node_modules/graphql/polyfills/isInteger.js", + "./node_modules/graphql/polyfills/objectEntries.js", + "./node_modules/graphql/polyfills/objectValues.js", + "./node_modules/graphql/polyfills/symbols.js", + "./node_modules/graphql/subscription/index.js", + "./node_modules/graphql/subscription/mapAsyncIterator.js", + "./node_modules/graphql/subscription/subscribe.js", + "./node_modules/graphql/type/definition.js", + "./node_modules/graphql/type/directives.js", + "./node_modules/graphql/type/index.js", + "./node_modules/graphql/type/introspection.js", + "./node_modules/graphql/type/scalars.js", + "./node_modules/graphql/type/schema.js", + "./node_modules/graphql/type/validate.js", + "./node_modules/graphql/utilities/TypeInfo.js", + "./node_modules/graphql/utilities/assertValidName.js", + "./node_modules/graphql/utilities/astFromValue.js", + "./node_modules/graphql/utilities/buildASTSchema.js", + "./node_modules/graphql/utilities/buildClientSchema.js", + "./node_modules/graphql/utilities/coerceInputValue.js", + "./node_modules/graphql/utilities/concatAST.js", + "./node_modules/graphql/utilities/extendSchema.js", + "./node_modules/graphql/utilities/findBreakingChanges.js", + "./node_modules/graphql/utilities/findDeprecatedUsages.js", + "./node_modules/graphql/utilities/getIntrospectionQuery.js", + "./node_modules/graphql/utilities/getOperationAST.js", + "./node_modules/graphql/utilities/getOperationRootType.js", + "./node_modules/graphql/utilities/index.js", + "./node_modules/graphql/utilities/introspectionFromSchema.js", + "./node_modules/graphql/utilities/lexicographicSortSchema.js", + "./node_modules/graphql/utilities/printSchema.js", + "./node_modules/graphql/utilities/separateOperations.js", + "./node_modules/graphql/utilities/stripIgnoredCharacters.js", + "./node_modules/graphql/utilities/typeComparators.js", + "./node_modules/graphql/utilities/typeFromAST.js", + "./node_modules/graphql/utilities/valueFromAST.js", + "./node_modules/graphql/utilities/valueFromASTUntyped.js", + "./node_modules/graphql/validation/ValidationContext.js", + "./node_modules/graphql/validation/index.js", + "./node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js", + "./node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js", + "./node_modules/graphql/validation/rules/KnownArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownDirectivesRule.js", + "./node_modules/graphql/validation/rules/KnownFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/KnownTypeNamesRule.js", + "./node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js", + "./node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js", + "./node_modules/graphql/validation/rules/NoFragmentCyclesRule.js", + "./node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js", + "./node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js", + "./node_modules/graphql/validation/rules/NoUnusedVariablesRule.js", + "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js", + "./node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js", + "./node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js", + "./node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js", + "./node_modules/graphql/validation/rules/ScalarLeafsRule.js", + "./node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js", + "./node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js", + "./node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueOperationTypesRule.js", + "./node_modules/graphql/validation/rules/UniqueTypeNamesRule.js", + "./node_modules/graphql/validation/rules/UniqueVariableNamesRule.js", + "./node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js", + "./node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js", + "./node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js", + "./node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js", + "./node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js", + "./node_modules/graphql/validation/specifiedRules.js", + "./node_modules/graphql/validation/validate.js", + "./node_modules/graphql/version.js", + "./node_modules/growl/lib/growl.js", + "./node_modules/has-flag/index.js", + "./node_modules/has-symbols/shams.js", + "./node_modules/has/src/index.js", + "./node_modules/he/he.js", + "./node_modules/hosted-git-info/git-host-info.js", + "./node_modules/hosted-git-info/git-host.js", + "./node_modules/hosted-git-info/index.js", + "./node_modules/html-tags/html-tags.json", + "./node_modules/html-tags/index.js", + "./node_modules/http-cache-semantics/index.js", + "./node_modules/http-errors/node_modules/setprototypeof/index.js", + "./node_modules/http-errors/node_modules/toidentifier/index.js", + "./node_modules/http-proxy/lib/http-proxy/common.js", + "./node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./node_modules/http-proxy/node_modules/eventemitter3/index.js", + "./node_modules/http-signature/lib/verify.js", + "./node_modules/human-interval/index.js", + "./node_modules/human-signals/build/src/core.js", + "./node_modules/human-signals/build/src/realtime.js", + "./node_modules/human-signals/build/src/signals.js", + "./node_modules/iconv-lite/encodings/dbcs-data.js", + "./node_modules/iconv-lite/encodings/sbcs-codec.js", + "./node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./node_modules/iconv-lite/encodings/sbcs-data.js", + "./node_modules/iconv-lite/encodings/tables/big5-added.json", + "./node_modules/iconv-lite/encodings/tables/cp936.json", + "./node_modules/iconv-lite/encodings/tables/cp949.json", + "./node_modules/iconv-lite/encodings/tables/cp950.json", + "./node_modules/iconv-lite/encodings/tables/eucjp.json", + "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./node_modules/iconv-lite/encodings/utf16.js", + "./node_modules/iconv-lite/encodings/utf7.js", + "./node_modules/iconv-lite/lib/bom-handling.js", + "./node_modules/iconv-lite/lib/extend-node.js", + "./node_modules/image-q/dist/iq.js", + "./node_modules/image-size/dist/detector.js", + "./node_modules/image-size/dist/readUInt.js", + "./node_modules/image-size/dist/types.js", + "./node_modules/image-size/dist/types/bmp.js", + "./node_modules/image-size/dist/types/cur.js", + "./node_modules/image-size/dist/types/dds.js", + "./node_modules/image-size/dist/types/gif.js", + "./node_modules/image-size/dist/types/icns.js", + "./node_modules/image-size/dist/types/ico.js", + "./node_modules/image-size/dist/types/j2c.js", + "./node_modules/image-size/dist/types/jp2.js", + "./node_modules/image-size/dist/types/jpg.js", + "./node_modules/image-size/dist/types/ktx.js", + "./node_modules/image-size/dist/types/png.js", + "./node_modules/image-size/dist/types/pnm.js", + "./node_modules/image-size/dist/types/psd.js", + "./node_modules/image-size/dist/types/svg.js", + "./node_modules/image-size/dist/types/tiff.js", + "./node_modules/image-size/dist/types/webp.js", + "./node_modules/inflight/inflight.js", + "./node_modules/inherits/inherits.js", + "./node_modules/inherits/inherits_browser.js", + "./node_modules/ini/ini.js", + "./node_modules/ip-regex/index.js", + "./node_modules/ipaddr.js/lib/ipaddr.js", + "./node_modules/is-arrayish/index.js", + "./node_modules/is-binary-path/index.js", + "./node_modules/is-buffer/index.js", + "./node_modules/is-core-module/core.json", + "./node_modules/is-core-module/index.js", + "./node_modules/is-dotfile/index.js", + "./node_modules/is-extglob/index.js", + "./node_modules/is-fork-pr/src/index.js", + "./node_modules/is-fullwidth-code-point/index.js", + "./node_modules/is-glob/index.js", + "./node_modules/is-glob/node_modules/is-extglob/index.js", + "./node_modules/is-html/index.js", + "./node_modules/is-obj/index.js", + "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", + "./node_modules/is-regexp/index.js", + "./node_modules/is-stream/index.js", + "./node_modules/is-typedarray/index.js", + "./node_modules/is-url/index.js", + "./node_modules/is2/index.js", + "./node_modules/is2/package.json", + "./node_modules/isarray/index.js", + "./node_modules/isbinaryfile/lib/index.js", + "./node_modules/isexe/mode.js", + "./node_modules/isexe/windows.js", + "./node_modules/isstream/isstream.js", + "./node_modules/iterall/index.js", + "./node_modules/jetpack-id/index.js", + "./node_modules/js-tokens/index.js", + "./node_modules/js-yaml/index.js", + "./node_modules/js-yaml/lib/js-yaml.js", + "./node_modules/js-yaml/lib/js-yaml/common.js", + "./node_modules/js-yaml/lib/js-yaml/dumper.js", + "./node_modules/js-yaml/lib/js-yaml/exception.js", + "./node_modules/js-yaml/lib/js-yaml/mark.js", + "./node_modules/js-yaml/lib/js-yaml/schema.js", + "./node_modules/js-yaml/lib/js-yaml/schema/core.js", + "./node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", + "./node_modules/js-yaml/lib/js-yaml/schema/json.js", + "./node_modules/js-yaml/lib/js-yaml/type.js", + "./node_modules/js-yaml/lib/js-yaml/type/binary.js", + "./node_modules/js-yaml/lib/js-yaml/type/bool.js", + "./node_modules/js-yaml/lib/js-yaml/type/float.js", + "./node_modules/js-yaml/lib/js-yaml/type/int.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", + "./node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", + "./node_modules/js-yaml/lib/js-yaml/type/map.js", + "./node_modules/js-yaml/lib/js-yaml/type/merge.js", + "./node_modules/js-yaml/lib/js-yaml/type/null.js", + "./node_modules/js-yaml/lib/js-yaml/type/omap.js", + "./node_modules/js-yaml/lib/js-yaml/type/pairs.js", + "./node_modules/js-yaml/lib/js-yaml/type/seq.js", + "./node_modules/js-yaml/lib/js-yaml/type/set.js", + "./node_modules/js-yaml/lib/js-yaml/type/str.js", + "./node_modules/js-yaml/lib/js-yaml/type/timestamp.js", + "./node_modules/jsesc/jsesc.js", + "./node_modules/json-buffer/index.js", + "./node_modules/json-schema/lib/validate.js", + "./node_modules/json-stringify-safe/stringify.js", + "./node_modules/jsonlint/lib/jsonlint.js", + "./node_modules/jsprim/lib/jsprim.js", + "./node_modules/junk/index.js", + "./node_modules/launch-editor/editor-info/linux.js", + "./node_modules/launch-editor/editor-info/osx.js", + "./node_modules/launch-editor/editor-info/windows.js", + "./node_modules/launch-editor/get-args.js", + "./node_modules/launch-editor/guess.js", + "./node_modules/launch-editor/index.js", + "./node_modules/lazy-ass/index.js", + "./node_modules/load-bmfont/index.js", + "./node_modules/load-bmfont/lib/is-binary.js", + "./node_modules/load-bmfont/node_modules/buffer-equal/index.js", + "./node_modules/lodash._baseassign/index.js", + "./node_modules/lodash._basecopy/index.js", + "./node_modules/lodash._basecreate/index.js", + "./node_modules/lodash._getnative/index.js", + "./node_modules/lodash._isiterateecall/index.js", + "./node_modules/lodash.create/index.js", + "./node_modules/lodash.defaults/index.js", + "./node_modules/lodash.difference/index.js", + "./node_modules/lodash.flatten/index.js", + "./node_modules/lodash.get/index.js", + "./node_modules/lodash.isarguments/index.js", + "./node_modules/lodash.isarray/index.js", + "./node_modules/lodash.isplainobject/index.js", + "./node_modules/lodash.keys/index.js", + "./node_modules/lodash.union/index.js", + "./node_modules/lodash/_DataView.js", + "./node_modules/lodash/_Hash.js", + "./node_modules/lodash/_ListCache.js", + "./node_modules/lodash/_Map.js", + "./node_modules/lodash/_MapCache.js", + "./node_modules/lodash/_Promise.js", + "./node_modules/lodash/_Set.js", + "./node_modules/lodash/_SetCache.js", + "./node_modules/lodash/_Stack.js", + "./node_modules/lodash/_Symbol.js", + "./node_modules/lodash/_Uint8Array.js", + "./node_modules/lodash/_WeakMap.js", + "./node_modules/lodash/_apply.js", + "./node_modules/lodash/_arrayEach.js", + "./node_modules/lodash/_arrayFilter.js", + "./node_modules/lodash/_arrayLikeKeys.js", + "./node_modules/lodash/_arrayMap.js", + "./node_modules/lodash/_arrayPush.js", + "./node_modules/lodash/_arraySome.js", + "./node_modules/lodash/_assignValue.js", + "./node_modules/lodash/_assocIndexOf.js", + "./node_modules/lodash/_baseAssign.js", + "./node_modules/lodash/_baseAssignIn.js", + "./node_modules/lodash/_baseAssignValue.js", + "./node_modules/lodash/_baseClone.js", + "./node_modules/lodash/_baseCreate.js", + "./node_modules/lodash/_baseFindIndex.js", + "./node_modules/lodash/_baseFlatten.js", + "./node_modules/lodash/_baseGet.js", + "./node_modules/lodash/_baseGetAllKeys.js", + "./node_modules/lodash/_baseGetTag.js", + "./node_modules/lodash/_baseHasIn.js", + "./node_modules/lodash/_baseIsArguments.js", + "./node_modules/lodash/_baseIsEqual.js", + "./node_modules/lodash/_baseIsEqualDeep.js", + "./node_modules/lodash/_baseIsMap.js", + "./node_modules/lodash/_baseIsMatch.js", + "./node_modules/lodash/_baseIsNative.js", + "./node_modules/lodash/_baseIsSet.js", + "./node_modules/lodash/_baseIsTypedArray.js", + "./node_modules/lodash/_baseIteratee.js", + "./node_modules/lodash/_baseKeys.js", + "./node_modules/lodash/_baseKeysIn.js", + "./node_modules/lodash/_baseMatches.js", + "./node_modules/lodash/_baseMatchesProperty.js", + "./node_modules/lodash/_basePick.js", + "./node_modules/lodash/_basePickBy.js", + "./node_modules/lodash/_baseProperty.js", + "./node_modules/lodash/_basePropertyDeep.js", + "./node_modules/lodash/_baseRest.js", + "./node_modules/lodash/_baseSet.js", + "./node_modules/lodash/_baseSetToString.js", + "./node_modules/lodash/_baseTimes.js", + "./node_modules/lodash/_baseToString.js", + "./node_modules/lodash/_baseTrim.js", + "./node_modules/lodash/_baseUnary.js", + "./node_modules/lodash/_cacheHas.js", + "./node_modules/lodash/_castPath.js", + "./node_modules/lodash/_cloneArrayBuffer.js", + "./node_modules/lodash/_cloneDataView.js", + "./node_modules/lodash/_cloneRegExp.js", + "./node_modules/lodash/_cloneSymbol.js", + "./node_modules/lodash/_cloneTypedArray.js", + "./node_modules/lodash/_copyArray.js", + "./node_modules/lodash/_copyObject.js", + "./node_modules/lodash/_copySymbols.js", + "./node_modules/lodash/_copySymbolsIn.js", + "./node_modules/lodash/_coreJsData.js", + "./node_modules/lodash/_createAssigner.js", + "./node_modules/lodash/_createFind.js", + "./node_modules/lodash/_defineProperty.js", + "./node_modules/lodash/_equalArrays.js", + "./node_modules/lodash/_equalByTag.js", + "./node_modules/lodash/_equalObjects.js", + "./node_modules/lodash/_flatRest.js", + "./node_modules/lodash/_freeGlobal.js", + "./node_modules/lodash/_getAllKeys.js", + "./node_modules/lodash/_getAllKeysIn.js", + "./node_modules/lodash/_getMapData.js", + "./node_modules/lodash/_getMatchData.js", + "./node_modules/lodash/_getNative.js", + "./node_modules/lodash/_getPrototype.js", + "./node_modules/lodash/_getRawTag.js", + "./node_modules/lodash/_getSymbols.js", + "./node_modules/lodash/_getSymbolsIn.js", + "./node_modules/lodash/_getTag.js", + "./node_modules/lodash/_getValue.js", + "./node_modules/lodash/_hasPath.js", + "./node_modules/lodash/_hashClear.js", + "./node_modules/lodash/_hashDelete.js", + "./node_modules/lodash/_hashGet.js", + "./node_modules/lodash/_hashHas.js", + "./node_modules/lodash/_hashSet.js", + "./node_modules/lodash/_initCloneArray.js", + "./node_modules/lodash/_initCloneByTag.js", + "./node_modules/lodash/_initCloneObject.js", + "./node_modules/lodash/_isFlattenable.js", + "./node_modules/lodash/_isIndex.js", + "./node_modules/lodash/_isIterateeCall.js", + "./node_modules/lodash/_isKey.js", + "./node_modules/lodash/_isKeyable.js", + "./node_modules/lodash/_isMasked.js", + "./node_modules/lodash/_isPrototype.js", + "./node_modules/lodash/_isStrictComparable.js", + "./node_modules/lodash/_listCacheClear.js", + "./node_modules/lodash/_listCacheDelete.js", + "./node_modules/lodash/_listCacheGet.js", + "./node_modules/lodash/_listCacheHas.js", + "./node_modules/lodash/_listCacheSet.js", + "./node_modules/lodash/_mapCacheClear.js", + "./node_modules/lodash/_mapCacheDelete.js", + "./node_modules/lodash/_mapCacheGet.js", + "./node_modules/lodash/_mapCacheHas.js", + "./node_modules/lodash/_mapCacheSet.js", + "./node_modules/lodash/_mapToArray.js", + "./node_modules/lodash/_matchesStrictComparable.js", + "./node_modules/lodash/_memoizeCapped.js", + "./node_modules/lodash/_nativeCreate.js", + "./node_modules/lodash/_nativeKeys.js", + "./node_modules/lodash/_nativeKeysIn.js", + "./node_modules/lodash/_nodeUtil.js", + "./node_modules/lodash/_objectToString.js", + "./node_modules/lodash/_overArg.js", + "./node_modules/lodash/_overRest.js", + "./node_modules/lodash/_root.js", + "./node_modules/lodash/_setCacheAdd.js", + "./node_modules/lodash/_setCacheHas.js", + "./node_modules/lodash/_setToArray.js", + "./node_modules/lodash/_setToString.js", + "./node_modules/lodash/_shortOut.js", + "./node_modules/lodash/_stackClear.js", + "./node_modules/lodash/_stackDelete.js", + "./node_modules/lodash/_stackGet.js", + "./node_modules/lodash/_stackHas.js", + "./node_modules/lodash/_stackSet.js", + "./node_modules/lodash/_stringToPath.js", + "./node_modules/lodash/_toKey.js", + "./node_modules/lodash/_toSource.js", + "./node_modules/lodash/_trimmedEndIndex.js", + "./node_modules/lodash/assign.js", + "./node_modules/lodash/clone.js", + "./node_modules/lodash/constant.js", + "./node_modules/lodash/eq.js", + "./node_modules/lodash/find.js", + "./node_modules/lodash/findIndex.js", + "./node_modules/lodash/flatten.js", + "./node_modules/lodash/get.js", + "./node_modules/lodash/hasIn.js", + "./node_modules/lodash/identity.js", + "./node_modules/lodash/isArguments.js", + "./node_modules/lodash/isArray.js", + "./node_modules/lodash/isArrayLike.js", + "./node_modules/lodash/isFunction.js", + "./node_modules/lodash/isLength.js", + "./node_modules/lodash/isMap.js", + "./node_modules/lodash/isObject.js", + "./node_modules/lodash/isObjectLike.js", + "./node_modules/lodash/isSet.js", + "./node_modules/lodash/isString.js", + "./node_modules/lodash/isSymbol.js", + "./node_modules/lodash/isTypedArray.js", + "./node_modules/lodash/isUndefined.js", + "./node_modules/lodash/keys.js", + "./node_modules/lodash/keysIn.js", + "./node_modules/lodash/memoize.js", + "./node_modules/lodash/pick.js", + "./node_modules/lodash/property.js", + "./node_modules/lodash/stubArray.js", + "./node_modules/lodash/stubFalse.js", + "./node_modules/lodash/toFinite.js", + "./node_modules/lodash/toInteger.js", + "./node_modules/lodash/toNumber.js", + "./node_modules/lodash/toString.js", + "./node_modules/make-error/index.js", + "./node_modules/marionette-client/lib/marionette/message.js", + "./node_modules/matcher/index.js", + "./node_modules/matcher/node_modules/escape-string-regexp/index.js", + "./node_modules/md5/md5.js", + "./node_modules/media-typer/index.js", + "./node_modules/merge-descriptors/index.js", + "./node_modules/merge-stream/index.js", + "./node_modules/merge2/index.js", + "./node_modules/mime-db/db.json", + "./node_modules/mime-db/index.js", + "./node_modules/mime-types/index.js", + "./node_modules/mime/types.json", + "./node_modules/mimic-response/index.js", + "./node_modules/minimatch/minimatch.js", + "./node_modules/minimist/index.js", + "./node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/lib/browser/progress.js", + "./node_modules/mocha-7.0.1/lib/context.js", + "./node_modules/mocha-7.0.1/lib/errors.js", + "./node_modules/mocha-7.0.1/lib/growl.js", + "./node_modules/mocha-7.0.1/lib/interfaces/bdd.js", + "./node_modules/mocha-7.0.1/lib/interfaces/common.js", + "./node_modules/mocha-7.0.1/lib/interfaces/exports.js", + "./node_modules/mocha-7.0.1/lib/interfaces/index.js", + "./node_modules/mocha-7.0.1/lib/interfaces/qunit.js", + "./node_modules/mocha-7.0.1/lib/interfaces/tdd.js", + "./node_modules/mocha-7.0.1/lib/mocharc.json", + "./node_modules/mocha-7.0.1/lib/pending.js", + "./node_modules/mocha-7.0.1/lib/reporters/doc.js", + "./node_modules/mocha-7.0.1/lib/reporters/html.js", + "./node_modules/mocha-7.0.1/lib/reporters/index.js", + "./node_modules/mocha-7.0.1/lib/reporters/json-stream.js", + "./node_modules/mocha-7.0.1/lib/reporters/json.js", + "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", + "./node_modules/mocha-7.0.1/lib/stats-collector.js", + "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/common.js", + "./node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js", + "./node_modules/mocha-7.0.1/node_modules/mkdirp/index.js", + "./node_modules/mocha-7.0.1/node_modules/ms/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/implementation.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/index.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/polyfill.js", + "./node_modules/mocha-7.0.1/node_modules/object.assign/shim.js", + "./node_modules/mocha-7.0.1/package.json", + "./node_modules/mocha-junit-reporter/node_modules/debug/src/debug.js", + "./node_modules/mocha-junit-reporter/node_modules/ms/index.js", + "./node_modules/mocha-junit-reporter/node_modules/strip-ansi/index.js", + "./node_modules/mocha/lib/browser/progress.js", + "./node_modules/mocha/lib/context.js", + "./node_modules/mocha/lib/interfaces/bdd.js", + "./node_modules/mocha/lib/interfaces/common.js", + "./node_modules/mocha/lib/interfaces/exports.js", + "./node_modules/mocha/lib/interfaces/index.js", + "./node_modules/mocha/lib/interfaces/qunit.js", + "./node_modules/mocha/lib/interfaces/tdd.js", + "./node_modules/mocha/lib/ms.js", + "./node_modules/mocha/lib/pending.js", + "./node_modules/mocha/lib/reporters/doc.js", + "./node_modules/mocha/lib/reporters/html.js", + "./node_modules/mocha/lib/reporters/index.js", + "./node_modules/mocha/lib/reporters/json-stream.js", + "./node_modules/mocha/lib/reporters/json.js", + "./node_modules/mocha/lib/reporters/markdown.js", + "./node_modules/mocha/lib/reporters/tap.js", + "./node_modules/mocha/lib/to-iso-string/index.js", + "./node_modules/mocha/node_modules/debug/src/debug.js", + "./node_modules/mocha/node_modules/diff/lib/convert/dmp.js", + "./node_modules/mocha/node_modules/diff/lib/convert/xml.js", + "./node_modules/mocha/node_modules/diff/lib/diff/array.js", + "./node_modules/mocha/node_modules/diff/lib/diff/base.js", + "./node_modules/mocha/node_modules/diff/lib/diff/character.js", + "./node_modules/mocha/node_modules/diff/lib/diff/css.js", + "./node_modules/mocha/node_modules/diff/lib/diff/json.js", + "./node_modules/mocha/node_modules/diff/lib/diff/line.js", + "./node_modules/mocha/node_modules/diff/lib/diff/sentence.js", + "./node_modules/mocha/node_modules/diff/lib/diff/word.js", + "./node_modules/mocha/node_modules/diff/lib/index.js", + "./node_modules/mocha/node_modules/diff/lib/patch/apply.js", + "./node_modules/mocha/node_modules/diff/lib/patch/create.js", + "./node_modules/mocha/node_modules/diff/lib/patch/parse.js", + "./node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/mocha/node_modules/diff/lib/util/params.js", + "./node_modules/mocha/node_modules/glob/common.js", + "./node_modules/mocha/node_modules/has-flag/index.js", + "./node_modules/mocha/node_modules/he/he.js", + "./node_modules/mocha/node_modules/mkdirp/index.js", + "./node_modules/mocha/node_modules/ms/index.js", + "./node_modules/modify-filename/index.js", + "./node_modules/morgan/node_modules/debug/src/debug.js", + "./node_modules/morgan/node_modules/ms/index.js", + "./node_modules/mount-point/index.js", + "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", + "./node_modules/mount-point/node_modules/pify/index.js", + "./node_modules/move-file/index.js", + "./node_modules/move-file/node_modules/make-dir/index.js", + "./node_modules/ms/index.js", + "./node_modules/negotiator/index.js", + "./node_modules/negotiator/lib/charset.js", + "./node_modules/negotiator/lib/encoding.js", + "./node_modules/negotiator/lib/language.js", + "./node_modules/negotiator/lib/mediaType.js", + "./node_modules/nexus/dist/blocks.js", + "./node_modules/nexus/dist/builder.js", + "./node_modules/nexus/dist/definitions/_types.js", + "./node_modules/nexus/dist/definitions/args.js", + "./node_modules/nexus/dist/definitions/decorateType.js", + "./node_modules/nexus/dist/definitions/definitionBlocks.js", + "./node_modules/nexus/dist/definitions/enumType.js", + "./node_modules/nexus/dist/definitions/extendInputType.js", + "./node_modules/nexus/dist/definitions/extendType.js", + "./node_modules/nexus/dist/definitions/inputObjectType.js", + "./node_modules/nexus/dist/definitions/interfaceType.js", + "./node_modules/nexus/dist/definitions/mutationField.js", + "./node_modules/nexus/dist/definitions/mutationType.js", + "./node_modules/nexus/dist/definitions/objectType.js", + "./node_modules/nexus/dist/definitions/queryField.js", + "./node_modules/nexus/dist/definitions/queryType.js", + "./node_modules/nexus/dist/definitions/scalarType.js", + "./node_modules/nexus/dist/definitions/subscriptionField.js", + "./node_modules/nexus/dist/definitions/subscriptionType.js", + "./node_modules/nexus/dist/definitions/unionType.js", + "./node_modules/nexus/dist/dynamicMethod.js", + "./node_modules/nexus/dist/dynamicProperty.js", + "./node_modules/nexus/dist/extensions.js", + "./node_modules/nexus/dist/lang.js", + "./node_modules/nexus/dist/makeSchema.js", + "./node_modules/nexus/dist/messages.js", + "./node_modules/nexus/dist/plugin.js", + "./node_modules/nexus/dist/plugins/connectionPlugin.js", + "./node_modules/nexus/dist/plugins/fieldAuthorizePlugin.js", + "./node_modules/nexus/dist/plugins/index.js", + "./node_modules/nexus/dist/plugins/nullabilityGuardPlugin.js", + "./node_modules/nexus/dist/plugins/queryComplexityPlugin.js", + "./node_modules/nexus/dist/rebuildType.js", + "./node_modules/nexus/dist/sdlConverter.js", + "./node_modules/nexus/dist/typegenPrinter.js", + "./node_modules/nexus/dist/typegenTypeHelpers.js", + "./node_modules/nexus/package.json", + "./node_modules/nice-try/src/index.js", + "./node_modules/node-fetch/node_modules/tr46/index.js", + "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", + "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", + "./node_modules/node-forge/lib/baseN.js", + "./node_modules/node-forge/lib/forge.js", + "./node_modules/node-forge/lib/md.js", + "./node_modules/node-forge/lib/oids.js", + "./node_modules/normalize-package-data/lib/extract_description.js", + "./node_modules/normalize-package-data/lib/fixer.js", + "./node_modules/normalize-package-data/lib/make_warning.js", + "./node_modules/normalize-package-data/lib/normalize.js", + "./node_modules/normalize-package-data/lib/typos.json", + "./node_modules/normalize-package-data/lib/warning_messages.json", + "./node_modules/normalize-path/index.js", + "./node_modules/npm-conf/index.js", + "./node_modules/npm-conf/lib/util.js", + "./node_modules/npm-run-path/index.js", + "./node_modules/npm-run-path/node_modules/path-key/index.js", + "./node_modules/object-assign/index.js", + "./node_modules/object-keys/implementation.js", + "./node_modules/object-keys/index.js", + "./node_modules/object-keys/isArguments.js", + "./node_modules/omggif/omggif.js", + "./node_modules/on-finished/index.js", + "./node_modules/on-headers/index.js", + "./node_modules/once/once.js", + "./node_modules/onetime/index.js", + "./node_modules/onetime/node_modules/mimic-fn/index.js", + "./node_modules/ospath/index.js", + "./node_modules/p-defer/index.js", + "./node_modules/p-finally/index.js", + "./node_modules/p-map/index.js", + "./node_modules/p-queue/dist/index.js", + "./node_modules/p-queue/dist/lower-bound.js", + "./node_modules/p-queue/dist/priority-queue.js", + "./node_modules/p-queue/node_modules/eventemitter3/index.js", + "./node_modules/p-timeout/index.js", + "./node_modules/p-try/index.js", + "./node_modules/pako/index.js", + "./node_modules/pako/lib/deflate.js", + "./node_modules/pako/lib/inflate.js", + "./node_modules/pako/lib/utils/common.js", + "./node_modules/pako/lib/zlib/adler32.js", + "./node_modules/pako/lib/zlib/constants.js", + "./node_modules/pako/lib/zlib/crc32.js", + "./node_modules/pako/lib/zlib/deflate.js", + "./node_modules/pako/lib/zlib/gzheader.js", + "./node_modules/pako/lib/zlib/inffast.js", + "./node_modules/pako/lib/zlib/inflate.js", + "./node_modules/pako/lib/zlib/inftrees.js", + "./node_modules/pako/lib/zlib/messages.js", + "./node_modules/pako/lib/zlib/zstream.js", + "./node_modules/parse-author/index.js", + "./node_modules/parse-bmfont-ascii/index.js", + "./node_modules/parse-bmfont-binary/index.js", + "./node_modules/parse-bmfont-xml/lib/index.js", + "./node_modules/parse-bmfont-xml/lib/parse-attribs.js", + "./node_modules/parse-glob/index.js", + "./node_modules/parse-glob/node_modules/is-glob/index.js", + "./node_modules/parseurl/index.js", + "./node_modules/path-exists/index.js", + "./node_modules/path-is-absolute/index.js", + "./node_modules/path-is-inside/lib/path-is-inside.js", + "./node_modules/path-key/index.js", + "./node_modules/path-parse/index.js", + "./node_modules/path-type/index.js", + "./node_modules/pend/index.js", + "./node_modules/picocolors/picocolors.js", + "./node_modules/picomatch/lib/parse.js", + "./node_modules/picomatch/lib/scan.js", + "./node_modules/picomatch/lib/utils.js", + "./node_modules/pify/index.js", + "./node_modules/pinkie-promise/index.js", + "./node_modules/pixelmatch/index.js", + "./node_modules/plist/index.js", + "./node_modules/plist/lib/build.js", + "./node_modules/plist/lib/parse.js", + "./node_modules/plist/lib/xmldom/dom-parser.js", + "./node_modules/plist/lib/xmldom/dom.js", + "./node_modules/plist/lib/xmldom/entities.js", + "./node_modules/plist/lib/xmldom/sax.js", + "./node_modules/pluralize/pluralize.js", + "./node_modules/pngjs/lib/bitmapper.js", + "./node_modules/pngjs/lib/bitpacker.js", + "./node_modules/pngjs/lib/constants.js", + "./node_modules/pngjs/lib/crc.js", + "./node_modules/pngjs/lib/filter-pack.js", + "./node_modules/pngjs/lib/filter-parse-sync.js", + "./node_modules/pngjs/lib/filter-parse.js", + "./node_modules/pngjs/lib/format-normaliser.js", + "./node_modules/pngjs/lib/interlace.js", + "./node_modules/pngjs/lib/packer.js", + "./node_modules/pngjs/lib/paeth-predictor.js", + "./node_modules/pngjs/lib/parser.js", + "./node_modules/pngjs/lib/png-sync.js", + "./node_modules/pngjs/lib/sync-reader.js", + "./node_modules/prepend-http/index.js", + "./node_modules/prettier/doc.js", + "./node_modules/prettier/package.json", + "./node_modules/prettier/parser-angular.js", + "./node_modules/prettier/parser-graphql.js", + "./node_modules/prettier/parser-html.js", + "./node_modules/prettier/parser-markdown.js", + "./node_modules/prettier/parser-postcss.js", + "./node_modules/prettier/parser-yaml.js", + "./node_modules/progress/index.js", + "./node_modules/progress/lib/node-progress.js", + "./node_modules/proto-list/proto-list.js", + "./node_modules/proxy-addr/index.js", + "./node_modules/proxy-from-env/index.js", + "./node_modules/pseudomap/pseudomap.js", + "./node_modules/psl/data/rules.json", + "./node_modules/psl/index.js", + "./node_modules/pump/index.js", + "./node_modules/pumpify/node_modules/pump/index.js", + "./node_modules/pupa/index.js", + "./node_modules/querystringify/index.js", + "./node_modules/queue-microtask/index.js", + "./node_modules/ramda/src/F.js", + "./node_modules/ramda/src/T.js", + "./node_modules/ramda/src/__.js", + "./node_modules/ramda/src/add.js", + "./node_modules/ramda/src/addIndex.js", + "./node_modules/ramda/src/adjust.js", + "./node_modules/ramda/src/all.js", + "./node_modules/ramda/src/allPass.js", + "./node_modules/ramda/src/always.js", + "./node_modules/ramda/src/and.js", + "./node_modules/ramda/src/any.js", + "./node_modules/ramda/src/anyPass.js", + "./node_modules/ramda/src/ap.js", + "./node_modules/ramda/src/aperture.js", + "./node_modules/ramda/src/append.js", + "./node_modules/ramda/src/apply.js", + "./node_modules/ramda/src/applySpec.js", + "./node_modules/ramda/src/applyTo.js", + "./node_modules/ramda/src/ascend.js", + "./node_modules/ramda/src/assoc.js", + "./node_modules/ramda/src/assocPath.js", + "./node_modules/ramda/src/binary.js", + "./node_modules/ramda/src/bind.js", + "./node_modules/ramda/src/both.js", + "./node_modules/ramda/src/call.js", + "./node_modules/ramda/src/chain.js", + "./node_modules/ramda/src/clamp.js", + "./node_modules/ramda/src/clone.js", + "./node_modules/ramda/src/comparator.js", + "./node_modules/ramda/src/complement.js", + "./node_modules/ramda/src/compose.js", + "./node_modules/ramda/src/composeK.js", + "./node_modules/ramda/src/composeP.js", + "./node_modules/ramda/src/composeWith.js", + "./node_modules/ramda/src/concat.js", + "./node_modules/ramda/src/cond.js", + "./node_modules/ramda/src/construct.js", + "./node_modules/ramda/src/constructN.js", + "./node_modules/ramda/src/contains.js", + "./node_modules/ramda/src/converge.js", + "./node_modules/ramda/src/countBy.js", + "./node_modules/ramda/src/curry.js", + "./node_modules/ramda/src/curryN.js", + "./node_modules/ramda/src/dec.js", + "./node_modules/ramda/src/defaultTo.js", + "./node_modules/ramda/src/descend.js", + "./node_modules/ramda/src/difference.js", + "./node_modules/ramda/src/differenceWith.js", + "./node_modules/ramda/src/dissoc.js", + "./node_modules/ramda/src/dissocPath.js", + "./node_modules/ramda/src/divide.js", + "./node_modules/ramda/src/drop.js", + "./node_modules/ramda/src/dropLast.js", + "./node_modules/ramda/src/dropLastWhile.js", + "./node_modules/ramda/src/dropRepeats.js", + "./node_modules/ramda/src/dropRepeatsWith.js", + "./node_modules/ramda/src/dropWhile.js", + "./node_modules/ramda/src/either.js", + "./node_modules/ramda/src/empty.js", + "./node_modules/ramda/src/endsWith.js", + "./node_modules/ramda/src/eqBy.js", + "./node_modules/ramda/src/eqProps.js", + "./node_modules/ramda/src/equals.js", + "./node_modules/ramda/src/evolve.js", + "./node_modules/ramda/src/filter.js", + "./node_modules/ramda/src/find.js", + "./node_modules/ramda/src/findIndex.js", + "./node_modules/ramda/src/findLast.js", + "./node_modules/ramda/src/findLastIndex.js", + "./node_modules/ramda/src/flatten.js", + "./node_modules/ramda/src/flip.js", + "./node_modules/ramda/src/forEach.js", + "./node_modules/ramda/src/forEachObjIndexed.js", + "./node_modules/ramda/src/fromPairs.js", + "./node_modules/ramda/src/groupBy.js", + "./node_modules/ramda/src/groupWith.js", + "./node_modules/ramda/src/gt.js", + "./node_modules/ramda/src/gte.js", + "./node_modules/ramda/src/has.js", + "./node_modules/ramda/src/hasIn.js", + "./node_modules/ramda/src/hasPath.js", + "./node_modules/ramda/src/head.js", + "./node_modules/ramda/src/identical.js", + "./node_modules/ramda/src/identity.js", + "./node_modules/ramda/src/ifElse.js", + "./node_modules/ramda/src/inc.js", + "./node_modules/ramda/src/includes.js", + "./node_modules/ramda/src/index.js", + "./node_modules/ramda/src/indexBy.js", + "./node_modules/ramda/src/indexOf.js", + "./node_modules/ramda/src/init.js", + "./node_modules/ramda/src/innerJoin.js", + "./node_modules/ramda/src/insert.js", + "./node_modules/ramda/src/insertAll.js", + "./node_modules/ramda/src/internal/_Set.js", + "./node_modules/ramda/src/internal/_aperture.js", + "./node_modules/ramda/src/internal/_arity.js", + "./node_modules/ramda/src/internal/_arrayFromIterator.js", + "./node_modules/ramda/src/internal/_assertPromise.js", + "./node_modules/ramda/src/internal/_checkForMethod.js", + "./node_modules/ramda/src/internal/_clone.js", + "./node_modules/ramda/src/internal/_cloneRegExp.js", + "./node_modules/ramda/src/internal/_complement.js", + "./node_modules/ramda/src/internal/_concat.js", + "./node_modules/ramda/src/internal/_createPartialApplicator.js", + "./node_modules/ramda/src/internal/_curry1.js", + "./node_modules/ramda/src/internal/_curry2.js", + "./node_modules/ramda/src/internal/_curry3.js", + "./node_modules/ramda/src/internal/_curryN.js", + "./node_modules/ramda/src/internal/_dispatchable.js", + "./node_modules/ramda/src/internal/_dropLast.js", + "./node_modules/ramda/src/internal/_dropLastWhile.js", + "./node_modules/ramda/src/internal/_equals.js", + "./node_modules/ramda/src/internal/_filter.js", + "./node_modules/ramda/src/internal/_flatCat.js", + "./node_modules/ramda/src/internal/_forceReduced.js", + "./node_modules/ramda/src/internal/_functionName.js", + "./node_modules/ramda/src/internal/_has.js", + "./node_modules/ramda/src/internal/_identity.js", + "./node_modules/ramda/src/internal/_includes.js", + "./node_modules/ramda/src/internal/_includesWith.js", + "./node_modules/ramda/src/internal/_indexOf.js", + "./node_modules/ramda/src/internal/_isArguments.js", + "./node_modules/ramda/src/internal/_isArray.js", + "./node_modules/ramda/src/internal/_isArrayLike.js", + "./node_modules/ramda/src/internal/_isFunction.js", + "./node_modules/ramda/src/internal/_isInteger.js", + "./node_modules/ramda/src/internal/_isNumber.js", + "./node_modules/ramda/src/internal/_isObject.js", + "./node_modules/ramda/src/internal/_isPlaceholder.js", + "./node_modules/ramda/src/internal/_isRegExp.js", + "./node_modules/ramda/src/internal/_isString.js", + "./node_modules/ramda/src/internal/_isTransformer.js", + "./node_modules/ramda/src/internal/_makeFlat.js", + "./node_modules/ramda/src/internal/_map.js", + "./node_modules/ramda/src/internal/_objectAssign.js", + "./node_modules/ramda/src/internal/_objectIs.js", + "./node_modules/ramda/src/internal/_of.js", + "./node_modules/ramda/src/internal/_pipe.js", + "./node_modules/ramda/src/internal/_pipeP.js", + "./node_modules/ramda/src/internal/_quote.js", + "./node_modules/ramda/src/internal/_reduce.js", + "./node_modules/ramda/src/internal/_reduced.js", + "./node_modules/ramda/src/internal/_stepCat.js", + "./node_modules/ramda/src/internal/_toISOString.js", + "./node_modules/ramda/src/internal/_toString.js", + "./node_modules/ramda/src/internal/_xall.js", + "./node_modules/ramda/src/internal/_xany.js", + "./node_modules/ramda/src/internal/_xaperture.js", + "./node_modules/ramda/src/internal/_xchain.js", + "./node_modules/ramda/src/internal/_xdrop.js", + "./node_modules/ramda/src/internal/_xdropLast.js", + "./node_modules/ramda/src/internal/_xdropLastWhile.js", + "./node_modules/ramda/src/internal/_xdropRepeatsWith.js", + "./node_modules/ramda/src/internal/_xdropWhile.js", + "./node_modules/ramda/src/internal/_xfBase.js", + "./node_modules/ramda/src/internal/_xfilter.js", + "./node_modules/ramda/src/internal/_xfind.js", + "./node_modules/ramda/src/internal/_xfindIndex.js", + "./node_modules/ramda/src/internal/_xfindLast.js", + "./node_modules/ramda/src/internal/_xfindLastIndex.js", + "./node_modules/ramda/src/internal/_xmap.js", + "./node_modules/ramda/src/internal/_xreduceBy.js", + "./node_modules/ramda/src/internal/_xtake.js", + "./node_modules/ramda/src/internal/_xtakeWhile.js", + "./node_modules/ramda/src/internal/_xtap.js", + "./node_modules/ramda/src/internal/_xwrap.js", + "./node_modules/ramda/src/intersection.js", + "./node_modules/ramda/src/intersperse.js", + "./node_modules/ramda/src/into.js", + "./node_modules/ramda/src/invert.js", + "./node_modules/ramda/src/invertObj.js", + "./node_modules/ramda/src/invoker.js", + "./node_modules/ramda/src/is.js", + "./node_modules/ramda/src/isEmpty.js", + "./node_modules/ramda/src/isNil.js", + "./node_modules/ramda/src/join.js", + "./node_modules/ramda/src/juxt.js", + "./node_modules/ramda/src/keys.js", + "./node_modules/ramda/src/keysIn.js", + "./node_modules/ramda/src/last.js", + "./node_modules/ramda/src/lastIndexOf.js", + "./node_modules/ramda/src/length.js", + "./node_modules/ramda/src/lens.js", + "./node_modules/ramda/src/lensIndex.js", + "./node_modules/ramda/src/lensPath.js", + "./node_modules/ramda/src/lensProp.js", + "./node_modules/ramda/src/lift.js", + "./node_modules/ramda/src/liftN.js", + "./node_modules/ramda/src/lt.js", + "./node_modules/ramda/src/lte.js", + "./node_modules/ramda/src/map.js", + "./node_modules/ramda/src/mapAccum.js", + "./node_modules/ramda/src/mapAccumRight.js", + "./node_modules/ramda/src/mapObjIndexed.js", + "./node_modules/ramda/src/match.js", + "./node_modules/ramda/src/mathMod.js", + "./node_modules/ramda/src/max.js", + "./node_modules/ramda/src/maxBy.js", + "./node_modules/ramda/src/mean.js", + "./node_modules/ramda/src/median.js", + "./node_modules/ramda/src/memoizeWith.js", + "./node_modules/ramda/src/merge.js", + "./node_modules/ramda/src/mergeAll.js", + "./node_modules/ramda/src/mergeDeepLeft.js", + "./node_modules/ramda/src/mergeDeepRight.js", + "./node_modules/ramda/src/mergeDeepWith.js", + "./node_modules/ramda/src/mergeDeepWithKey.js", + "./node_modules/ramda/src/mergeLeft.js", + "./node_modules/ramda/src/mergeRight.js", + "./node_modules/ramda/src/mergeWith.js", + "./node_modules/ramda/src/mergeWithKey.js", + "./node_modules/ramda/src/min.js", + "./node_modules/ramda/src/minBy.js", + "./node_modules/ramda/src/modulo.js", + "./node_modules/ramda/src/move.js", + "./node_modules/ramda/src/multiply.js", + "./node_modules/ramda/src/nAry.js", + "./node_modules/ramda/src/negate.js", + "./node_modules/ramda/src/none.js", + "./node_modules/ramda/src/not.js", + "./node_modules/ramda/src/nth.js", + "./node_modules/ramda/src/nthArg.js", + "./node_modules/ramda/src/o.js", + "./node_modules/ramda/src/objOf.js", + "./node_modules/ramda/src/of.js", + "./node_modules/ramda/src/omit.js", + "./node_modules/ramda/src/once.js", + "./node_modules/ramda/src/or.js", + "./node_modules/ramda/src/otherwise.js", + "./node_modules/ramda/src/over.js", + "./node_modules/ramda/src/pair.js", + "./node_modules/ramda/src/partial.js", + "./node_modules/ramda/src/partialRight.js", + "./node_modules/ramda/src/partition.js", + "./node_modules/ramda/src/path.js", + "./node_modules/ramda/src/pathEq.js", + "./node_modules/ramda/src/pathOr.js", + "./node_modules/ramda/src/pathSatisfies.js", + "./node_modules/ramda/src/pick.js", + "./node_modules/ramda/src/pickAll.js", + "./node_modules/ramda/src/pickBy.js", + "./node_modules/ramda/src/pipe.js", + "./node_modules/ramda/src/pipeK.js", + "./node_modules/ramda/src/pipeP.js", + "./node_modules/ramda/src/pipeWith.js", + "./node_modules/ramda/src/pluck.js", + "./node_modules/ramda/src/prepend.js", + "./node_modules/ramda/src/product.js", + "./node_modules/ramda/src/project.js", + "./node_modules/ramda/src/prop.js", + "./node_modules/ramda/src/propEq.js", + "./node_modules/ramda/src/propIs.js", + "./node_modules/ramda/src/propOr.js", + "./node_modules/ramda/src/propSatisfies.js", + "./node_modules/ramda/src/props.js", + "./node_modules/ramda/src/range.js", + "./node_modules/ramda/src/reduce.js", + "./node_modules/ramda/src/reduceBy.js", + "./node_modules/ramda/src/reduceRight.js", + "./node_modules/ramda/src/reduceWhile.js", + "./node_modules/ramda/src/reduced.js", + "./node_modules/ramda/src/reject.js", + "./node_modules/ramda/src/remove.js", + "./node_modules/ramda/src/repeat.js", + "./node_modules/ramda/src/replace.js", + "./node_modules/ramda/src/reverse.js", + "./node_modules/ramda/src/scan.js", + "./node_modules/ramda/src/sequence.js", + "./node_modules/ramda/src/set.js", + "./node_modules/ramda/src/slice.js", + "./node_modules/ramda/src/sort.js", + "./node_modules/ramda/src/sortBy.js", + "./node_modules/ramda/src/sortWith.js", + "./node_modules/ramda/src/split.js", + "./node_modules/ramda/src/splitAt.js", + "./node_modules/ramda/src/splitEvery.js", + "./node_modules/ramda/src/splitWhen.js", + "./node_modules/ramda/src/startsWith.js", + "./node_modules/ramda/src/subtract.js", + "./node_modules/ramda/src/sum.js", + "./node_modules/ramda/src/symmetricDifference.js", + "./node_modules/ramda/src/symmetricDifferenceWith.js", + "./node_modules/ramda/src/tail.js", + "./node_modules/ramda/src/take.js", + "./node_modules/ramda/src/takeLast.js", + "./node_modules/ramda/src/takeLastWhile.js", + "./node_modules/ramda/src/takeWhile.js", + "./node_modules/ramda/src/tap.js", + "./node_modules/ramda/src/test.js", + "./node_modules/ramda/src/then.js", + "./node_modules/ramda/src/thunkify.js", + "./node_modules/ramda/src/times.js", + "./node_modules/ramda/src/toLower.js", + "./node_modules/ramda/src/toPairs.js", + "./node_modules/ramda/src/toPairsIn.js", + "./node_modules/ramda/src/toString.js", + "./node_modules/ramda/src/toUpper.js", + "./node_modules/ramda/src/transduce.js", + "./node_modules/ramda/src/transpose.js", + "./node_modules/ramda/src/traverse.js", + "./node_modules/ramda/src/trim.js", + "./node_modules/ramda/src/tryCatch.js", + "./node_modules/ramda/src/type.js", + "./node_modules/ramda/src/unapply.js", + "./node_modules/ramda/src/unary.js", + "./node_modules/ramda/src/uncurryN.js", + "./node_modules/ramda/src/unfold.js", + "./node_modules/ramda/src/union.js", + "./node_modules/ramda/src/unionWith.js", + "./node_modules/ramda/src/uniq.js", + "./node_modules/ramda/src/uniqBy.js", + "./node_modules/ramda/src/uniqWith.js", + "./node_modules/ramda/src/unless.js", + "./node_modules/ramda/src/unnest.js", + "./node_modules/ramda/src/until.js", + "./node_modules/ramda/src/update.js", + "./node_modules/ramda/src/useWith.js", + "./node_modules/ramda/src/values.js", + "./node_modules/ramda/src/valuesIn.js", + "./node_modules/ramda/src/view.js", + "./node_modules/ramda/src/when.js", + "./node_modules/ramda/src/where.js", + "./node_modules/ramda/src/whereEq.js", + "./node_modules/ramda/src/without.js", + "./node_modules/ramda/src/xprod.js", + "./node_modules/ramda/src/zip.js", + "./node_modules/ramda/src/zipObj.js", + "./node_modules/ramda/src/zipWith.js", + "./node_modules/randexp/lib/randexp.js", + "./node_modules/randomstring/index.js", + "./node_modules/randomstring/lib/charset.js", + "./node_modules/randomstring/lib/randomstring.js", + "./node_modules/range-parser/index.js", + "./node_modules/raw-body/index.js", + "./node_modules/raw-body/node_modules/bytes/index.js", + "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", + "./node_modules/recast/parsers/_babel_options.js", + "./node_modules/recast/parsers/babel.js", + "./node_modules/recast/parsers/esprima.js", + "./node_modules/recast/parsers/typescript.js", + "./node_modules/regenerator-runtime/runtime.js", + "./node_modules/request-promise-core/configure/request2.js", + "./node_modules/request-promise-core/errors.js", + "./node_modules/request-promise-core/lib/errors.js", + "./node_modules/request-promise-core/lib/plumbing.js", + "./node_modules/requires-port/index.js", + "./node_modules/resolve/lib/caller.js", + "./node_modules/resolve/lib/core.js", + "./node_modules/resolve/lib/core.json", + "./node_modules/resolve/lib/is-core.js", + "./node_modules/resolve/lib/node-modules-paths.js", + "./node_modules/resolve/lib/normalize-options.js", + "./node_modules/responselike/node_modules/lowercase-keys/index.js", + "./node_modules/ret/lib/index.js", + "./node_modules/ret/lib/positions.js", + "./node_modules/ret/lib/sets.js", + "./node_modules/ret/lib/types.js", + "./node_modules/ret/lib/util.js", + "./node_modules/return-deep-diff/dist/return-deep-diff.min.js", + "./node_modules/reusify/reusify.js", + "./node_modules/roarr/dist/constants.js", + "./node_modules/roarr/dist/factories/createMockLogger.js", + "./node_modules/roarr/dist/factories/createNodeWriter.js", + "./node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js", + "./node_modules/roarr/package.json", + "./node_modules/run-applescript/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/index.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/parse.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/run-applescript/node_modules/execa/index.js", + "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", + "./node_modules/run-applescript/node_modules/path-key/index.js", + "./node_modules/run-parallel/index.js", + "./node_modules/sanitize-filename/index.js", + "./node_modules/semver-compare/index.js", + "./node_modules/semver/classes/comparator.js", + "./node_modules/semver/classes/range.js", + "./node_modules/semver/classes/semver.js", + "./node_modules/semver/functions/clean.js", + "./node_modules/semver/functions/cmp.js", + "./node_modules/semver/functions/coerce.js", + "./node_modules/semver/functions/compare-build.js", + "./node_modules/semver/functions/compare-loose.js", + "./node_modules/semver/functions/compare.js", + "./node_modules/semver/functions/diff.js", + "./node_modules/semver/functions/eq.js", + "./node_modules/semver/functions/gt.js", + "./node_modules/semver/functions/gte.js", + "./node_modules/semver/functions/inc.js", + "./node_modules/semver/functions/lt.js", + "./node_modules/semver/functions/lte.js", + "./node_modules/semver/functions/major.js", + "./node_modules/semver/functions/minor.js", + "./node_modules/semver/functions/neq.js", + "./node_modules/semver/functions/parse.js", + "./node_modules/semver/functions/patch.js", + "./node_modules/semver/functions/prerelease.js", + "./node_modules/semver/functions/rcompare.js", + "./node_modules/semver/functions/rsort.js", + "./node_modules/semver/functions/satisfies.js", + "./node_modules/semver/functions/sort.js", + "./node_modules/semver/functions/valid.js", + "./node_modules/semver/index.js", + "./node_modules/semver/internal/constants.js", + "./node_modules/semver/internal/debug.js", + "./node_modules/semver/internal/identifiers.js", + "./node_modules/semver/internal/re.js", + "./node_modules/semver/ranges/gtr.js", + "./node_modules/semver/ranges/intersects.js", + "./node_modules/semver/ranges/ltr.js", + "./node_modules/semver/ranges/max-satisfying.js", + "./node_modules/semver/ranges/min-satisfying.js", + "./node_modules/semver/ranges/min-version.js", + "./node_modules/semver/ranges/outside.js", + "./node_modules/semver/ranges/simplify.js", + "./node_modules/semver/ranges/subset.js", + "./node_modules/semver/ranges/to-comparators.js", + "./node_modules/semver/ranges/valid.js", + "./node_modules/send/node_modules/debug/node_modules/ms/index.js", + "./node_modules/send/node_modules/debug/src/debug.js", + "./node_modules/send/node_modules/ms/index.js", + "./node_modules/serialize-error/index.js", + "./node_modules/serve-static/index.js", + "./node_modules/server-destroy/index.js", + "./node_modules/setprototypeof/index.js", + "./node_modules/shebang-command/index.js", + "./node_modules/shebang-regex/index.js", + "./node_modules/shell-env/index.js", + "./node_modules/shell-env/node_modules/ansi-regex/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/index.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/enoent.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/parse.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/escape.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/readShebang.js", + "./node_modules/shell-env/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./node_modules/shell-env/node_modules/execa/index.js", + "./node_modules/shell-env/node_modules/execa/lib/stdio.js", + "./node_modules/shell-env/node_modules/path-key/index.js", + "./node_modules/shell-env/node_modules/strip-ansi/index.js", + "./node_modules/shell-quote/index.js", + "./node_modules/signal-exit/index.js", + "./node_modules/simple-swizzle/index.js", + "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", + "./node_modules/sort-keys-length/index.js", + "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", + "./node_modules/source-map/lib/array-set.js", + "./node_modules/source-map/lib/base64-vlq.js", + "./node_modules/source-map/lib/base64.js", + "./node_modules/source-map/lib/binary-search.js", + "./node_modules/source-map/lib/mapping-list.js", + "./node_modules/source-map/lib/quick-sort.js", + "./node_modules/source-map/lib/source-map-consumer.js", + "./node_modules/source-map/lib/source-map-generator.js", + "./node_modules/source-map/lib/source-node.js", + "./node_modules/source-map/lib/util.js", + "./node_modules/source-map/source-map.js", + "./node_modules/spdx-correct/index.js", + "./node_modules/spdx-exceptions/index.json", + "./node_modules/spdx-expression-parse/index.js", + "./node_modules/spdx-expression-parse/parse.js", + "./node_modules/spdx-expression-parse/scan.js", + "./node_modules/spdx-license-ids/deprecated.json", + "./node_modules/spdx-license-ids/index.json", + "./node_modules/squirrelly/dist/squirrelly.min.js", + "./node_modules/sshpk/lib/ssh-buffer.js", + "./node_modules/ssl-root-cas/ssl-root-cas.js", + "./node_modules/statuses/codes.json", + "./node_modules/statuses/index.js", + "./node_modules/stealthy-require/lib/index.js", + "./node_modules/stream-parser/index.js", + "./node_modules/stream-parser/node_modules/debug/src/debug.js", + "./node_modules/stream-parser/node_modules/ms/index.js", + "./node_modules/stream-shift/index.js", + "./node_modules/string-width/index.js", + "./node_modules/string-width/node_modules/emoji-regex/index.js", + "./node_modules/string-width/node_modules/is-fullwidth-code-point/index.js", + "./node_modules/string-width/node_modules/strip-ansi/index.js", + "./node_modules/stringify-object/index.js", + "./node_modules/strip-ansi/index.js", + "./node_modules/strip-bom/index.js", + "./node_modules/strip-eof/index.js", + "./node_modules/strip-final-newline/index.js", + "./node_modules/strip-outer/index.js", + "./node_modules/sumchecker/index.js", + "./node_modules/supports-color/node_modules/has-flag/index.js", + "./node_modules/syntax-error/index.js", + "./node_modules/systeminformation/lib/audio.js", + "./node_modules/systeminformation/lib/battery.js", + "./node_modules/systeminformation/lib/bluetooth.js", + "./node_modules/systeminformation/lib/cpu.js", + "./node_modules/systeminformation/lib/docker.js", + "./node_modules/systeminformation/lib/filesystem.js", + "./node_modules/systeminformation/lib/graphics.js", + "./node_modules/systeminformation/lib/internet.js", + "./node_modules/systeminformation/lib/memory.js", + "./node_modules/systeminformation/lib/network.js", + "./node_modules/systeminformation/lib/osinfo.js", + "./node_modules/systeminformation/lib/printer.js", + "./node_modules/systeminformation/lib/processes.js", + "./node_modules/systeminformation/lib/system.js", + "./node_modules/systeminformation/lib/usb.js", + "./node_modules/systeminformation/lib/users.js", + "./node_modules/systeminformation/lib/virtualbox.js", + "./node_modules/systeminformation/lib/wifi.js", + "./node_modules/systeminformation/package.json", + "./node_modules/tar-stream/headers.js", + "./node_modules/tar-stream/index.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js", + "./node_modules/tcp-port-used/index.js", + "./node_modules/tcp-port-used/node_modules/debug/src/common.js", + "./node_modules/tcp-port-used/node_modules/ms/index.js", + "./node_modules/term-size/index.js", + "./node_modules/textextensions/edition-es5/index.js", + "./node_modules/through/index.js", + "./node_modules/timm/lib/timm.js", + "./node_modules/tinycolor2/tinycolor.js", + "./node_modules/to-readable-stream/index.js", + "./node_modules/to-regex-range/index.js", + "./node_modules/to-regex-range/node_modules/is-number/index.js", + "./node_modules/toidentifier/index.js", + "./node_modules/tough-cookie/lib/pathMatch.js", + "./node_modules/tough-cookie/lib/permuteDomain.js", + "./node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./node_modules/tough-cookie/lib/store.js", + "./node_modules/tough-cookie/lib/version.js", + "./node_modules/trash/index.js", + "./node_modules/trash/lib/linux.js", + "./node_modules/trash/lib/macos.js", + "./node_modules/trash/lib/windows.js", + "./node_modules/trash/node_modules/dir-glob/index.js", + "./node_modules/trash/node_modules/glob/common.js", + "./node_modules/trash/node_modules/globby/gitignore.js", + "./node_modules/trash/node_modules/globby/index.js", + "./node_modules/trash/node_modules/path-type/index.js", + "./node_modules/trash/node_modules/pify/index.js", + "./node_modules/trash/node_modules/slash/index.js", + "./node_modules/tree-kill/index.js", + "./node_modules/trim-repeated/index.js", + "./node_modules/truncate-utf8-bytes/lib/truncate.js", + "./node_modules/ts-node/dist-raw/node-internal-constants.js", + "./node_modules/ts-node/dist-raw/node-internal-errors.js", + "./node_modules/ts-node/dist-raw/node-internal-modules-package_json_reader.js", + "./node_modules/ts-node/dist-raw/node-internal-repl-await.js", + "./node_modules/ts-node/dist-raw/node-nativemodule.js", + "./node_modules/ts-node/dist-raw/node-options.js", + "./node_modules/ts-node/dist-raw/node-primordials.js", + "./node_modules/ts-node/dist/cjs-resolve-hooks.js", + "./node_modules/ts-node/dist/file-extensions.js", + "./node_modules/ts-node/dist/module-type-classifier.js", + "./node_modules/ts-node/dist/node-module-type-classifier.js", + "./node_modules/ts-node/dist/resolver-functions.js", + "./node_modules/ts-node/dist/ts-internals.js", + "./node_modules/ts-node/dist/ts-transpile-module.js", + "./node_modules/ts-node/dist/tsconfigs.js", + "./node_modules/ts-node/node_modules/acorn/dist/acorn.js", + "./node_modules/ts-node/node_modules/arg/index.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/dmp.js", + "./node_modules/ts-node/node_modules/diff/lib/convert/xml.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/array.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/base.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/character.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/css.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/json.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/line.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/sentence.js", + "./node_modules/ts-node/node_modules/diff/lib/diff/word.js", + "./node_modules/ts-node/node_modules/diff/lib/index.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/apply.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/create.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/merge.js", + "./node_modules/ts-node/node_modules/diff/lib/patch/parse.js", + "./node_modules/ts-node/node_modules/diff/lib/util/array.js", + "./node_modules/ts-node/node_modules/diff/lib/util/distance-iterator.js", + "./node_modules/ts-node/node_modules/diff/lib/util/params.js", + "./node_modules/ts-node/package.json", + "./node_modules/tslib/tslib.js", + "./node_modules/type-is/index.js", + "./node_modules/typedarray/index.js", + "./node_modules/underscore.string/camelize.js", + "./node_modules/underscore.string/capitalize.js", + "./node_modules/underscore.string/chars.js", + "./node_modules/underscore.string/chop.js", + "./node_modules/underscore.string/classify.js", + "./node_modules/underscore.string/clean.js", + "./node_modules/underscore.string/cleanDiacritics.js", + "./node_modules/underscore.string/count.js", + "./node_modules/underscore.string/dasherize.js", + "./node_modules/underscore.string/decapitalize.js", + "./node_modules/underscore.string/dedent.js", + "./node_modules/underscore.string/endsWith.js", + "./node_modules/underscore.string/escapeHTML.js", + "./node_modules/underscore.string/exports.js", + "./node_modules/underscore.string/helper/adjacent.js", + "./node_modules/underscore.string/helper/defaultToWhiteSpace.js", + "./node_modules/underscore.string/helper/escapeChars.js", + "./node_modules/underscore.string/helper/escapeRegExp.js", + "./node_modules/underscore.string/helper/htmlEntities.js", + "./node_modules/underscore.string/helper/makeString.js", + "./node_modules/underscore.string/helper/strRepeat.js", + "./node_modules/underscore.string/helper/toPositive.js", + "./node_modules/underscore.string/humanize.js", + "./node_modules/underscore.string/include.js", + "./node_modules/underscore.string/insert.js", + "./node_modules/underscore.string/isBlank.js", + "./node_modules/underscore.string/join.js", + "./node_modules/underscore.string/levenshtein.js", + "./node_modules/underscore.string/lines.js", + "./node_modules/underscore.string/lpad.js", + "./node_modules/underscore.string/lrpad.js", + "./node_modules/underscore.string/ltrim.js", + "./node_modules/underscore.string/map.js", + "./node_modules/underscore.string/naturalCmp.js", + "./node_modules/underscore.string/numberFormat.js", + "./node_modules/underscore.string/pad.js", + "./node_modules/underscore.string/pred.js", + "./node_modules/underscore.string/prune.js", + "./node_modules/underscore.string/quote.js", + "./node_modules/underscore.string/repeat.js", + "./node_modules/underscore.string/replaceAll.js", + "./node_modules/underscore.string/reverse.js", + "./node_modules/underscore.string/rpad.js", + "./node_modules/underscore.string/rtrim.js", + "./node_modules/underscore.string/slugify.js", + "./node_modules/underscore.string/splice.js", + "./node_modules/underscore.string/startsWith.js", + "./node_modules/underscore.string/strLeft.js", + "./node_modules/underscore.string/strLeftBack.js", + "./node_modules/underscore.string/strRight.js", + "./node_modules/underscore.string/strRightBack.js", + "./node_modules/underscore.string/stripTags.js", + "./node_modules/underscore.string/succ.js", + "./node_modules/underscore.string/surround.js", + "./node_modules/underscore.string/swapCase.js", + "./node_modules/underscore.string/titleize.js", + "./node_modules/underscore.string/toBoolean.js", + "./node_modules/underscore.string/toNumber.js", + "./node_modules/underscore.string/toSentence.js", + "./node_modules/underscore.string/toSentenceSerial.js", + "./node_modules/underscore.string/trim.js", + "./node_modules/underscore.string/truncate.js", + "./node_modules/underscore.string/underscored.js", + "./node_modules/underscore.string/unescapeHTML.js", + "./node_modules/underscore.string/unquote.js", + "./node_modules/underscore.string/words.js", + "./node_modules/underscore.string/wrap.js", + "./node_modules/universalify/index.js", + "./node_modules/unpipe/index.js", + "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", + "./node_modules/url-parse-lax/index.js", + "./node_modules/url-parse/index.js", + "./node_modules/utf8-stream/index.js", + "./node_modules/utf8-stream/node_modules/isarray/index.js", + "./node_modules/utils-merge/index.js", + "./node_modules/uuid/index.js", + "./node_modules/uuid/lib/bytesToUuid.js", + "./node_modules/uuid/lib/rng.js", + "./node_modules/uuid/v1.js", + "./node_modules/uuid/v4.js", + "./node_modules/v8-compile-cache-lib/v8-compile-cache.js", + "./node_modules/validate-npm-package-license/index.js", + "./node_modules/value-or-promise/build/main/ValueOrPromise.js", + "./node_modules/value-or-promise/build/main/index.js", + "./node_modules/vary/index.js", + "./node_modules/which/which.js", + "./node_modules/widest-line/index.js", + "./node_modules/wonka/dist/wonka.js", + "./node_modules/wrappy/wrappy.js", + "./node_modules/ws/lib/buffer-util.js", + "./node_modules/ws/lib/event-target.js", + "./node_modules/ws/lib/extension.js", + "./node_modules/ws/lib/limiter.js", + "./node_modules/ws/lib/permessage-deflate.js", + "./node_modules/ws/lib/sender.js", + "./node_modules/ws/lib/stream.js", + "./node_modules/ws/lib/validation.js", + "./node_modules/xdg-trashdir/index.js", + "./node_modules/xdg-trashdir/node_modules/pify/index.js", + "./node_modules/xml/lib/escapeForXML.js", + "./node_modules/xml/lib/xml.js", + "./node_modules/xml2js/lib/bom.js", + "./node_modules/xml2js/lib/builder.js", + "./node_modules/xml2js/lib/defaults.js", + "./node_modules/xml2js/lib/parser.js", + "./node_modules/xml2js/lib/processors.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/DocumentPosition.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/NodeType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/WriterState.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLCharacterData.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMImplementation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDOMStringList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLDummy.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLNodeList.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xml2js/node_modules/xmlbuilder/lib/index.js", + "./node_modules/xmlbuilder/lib/Utility.js", + "./node_modules/xmlbuilder/lib/XMLAttribute.js", + "./node_modules/xmlbuilder/lib/XMLCData.js", + "./node_modules/xmlbuilder/lib/XMLComment.js", + "./node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "./node_modules/xmlbuilder/lib/XMLDTDElement.js", + "./node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "./node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "./node_modules/xmlbuilder/lib/XMLDeclaration.js", + "./node_modules/xmlbuilder/lib/XMLDocType.js", + "./node_modules/xmlbuilder/lib/XMLDocument.js", + "./node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "./node_modules/xmlbuilder/lib/XMLElement.js", + "./node_modules/xmlbuilder/lib/XMLNode.js", + "./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "./node_modules/xmlbuilder/lib/XMLRaw.js", + "./node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringWriter.js", + "./node_modules/xmlbuilder/lib/XMLStringifier.js", + "./node_modules/xmlbuilder/lib/XMLText.js", + "./node_modules/xmlbuilder/lib/XMLWriterBase.js", + "./node_modules/xmlbuilder/lib/index.js", + "./node_modules/xtend/immutable.js", + "./node_modules/yallist/iterator.js", + "./node_modules/yallist/yallist.js", + "./node_modules/yn/index.js", + "./node_modules/yn/lenient.js", + "./package.json", + "./packages/config/src/ast-utils/astConfigHelpers.ts", + "./packages/config/src/utils.ts", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", + "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/anymatch/index.js", + "./packages/data-context/node_modules/cross-spawn/index.js", + "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", + "./packages/data-context/node_modules/cross-spawn/lib/parse.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/escape.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/data-context/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/data-context/node_modules/debug/node_modules/ms/index.js", + "./packages/data-context/node_modules/debug/src/common.js", + "./packages/data-context/node_modules/execa/index.js", + "./packages/data-context/node_modules/execa/lib/stdio.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/copy.js", + "./packages/data-context/node_modules/fs-extra/lib/copy/index.js", + "./packages/data-context/node_modules/fs-extra/lib/empty/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/file.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/index.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/link.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/data-context/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/json/output-json.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/data-context/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move-sync/move-sync.js", + "./packages/data-context/node_modules/fs-extra/lib/move/index.js", + "./packages/data-context/node_modules/fs-extra/lib/move/move.js", + "./packages/data-context/node_modules/fs-extra/lib/output/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/index.js", + "./packages/data-context/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/data-context/node_modules/fs-extra/lib/util/buffer.js", + "./packages/data-context/node_modules/fs-extra/lib/util/stat.js", + "./packages/data-context/node_modules/fs-extra/lib/util/utimes.js", + "./packages/data-context/node_modules/micromatch/index.js", + "./packages/data-context/node_modules/minimatch/minimatch.js", + "./packages/data-context/node_modules/path-key/index.js", + "./packages/data-context/src/actions/AppActions.ts", + "./packages/data-context/src/actions/AuthActions.ts", + "./packages/data-context/src/actions/BrowserActions.ts", + "./packages/data-context/src/actions/CohortsActions.ts", + "./packages/data-context/src/actions/DevActions.ts", + "./packages/data-context/src/actions/ElectronActions.ts", + "./packages/data-context/src/actions/ErrorActions.ts", + "./packages/data-context/src/actions/FileActions.ts", + "./packages/data-context/src/actions/LocalSettingsActions.ts", + "./packages/data-context/src/actions/ProjectActions.ts", + "./packages/data-context/src/actions/VersionsActions.ts", + "./packages/data-context/src/codegen/spec-options.ts", + "./packages/data-context/src/data/CypressEnv.ts", + "./packages/data-context/src/data/ProjectLifecycleManager.ts", + "./packages/data-context/src/data/coreDataShape.ts", + "./packages/data-context/src/gen/urql-introspection.gen.ts", + "./packages/data-context/src/sources/EnvDataSource.ts", + "./packages/data-context/src/sources/ErrorDataSource.ts", + "./packages/data-context/src/sources/RemoteRequestDataSource.ts", + "./packages/data-context/src/sources/UtilDataSource.ts", + "./packages/data-context/src/sources/WizardDataSource.ts", + "./packages/data-context/src/sources/migration/legacyOptions.ts", + "./packages/data-context/src/sources/migration/parserUtils.ts", + "./packages/data-context/src/sources/migration/regexps.ts", + "./packages/data-context/src/util/DocumentNodeBuilder.ts", + "./packages/data-context/src/util/autoBindDebug.ts", + "./packages/data-context/src/util/cached.ts", + "./packages/data-context/src/util/file.ts", + "./packages/data-context/src/util/hasTypescript.ts", + "./packages/data-context/src/util/pluginHandlers.ts", + "./packages/data-context/src/util/urqlCacheKeys.ts", + "./packages/data-context/src/util/weightedChoice.ts", + "./packages/electron/lib/install.js", + "./packages/electron/lib/paths.js", + "./packages/electron/node_modules/execa/index.js", + "./packages/electron/node_modules/execa/lib/command.js", + "./packages/electron/node_modules/execa/lib/error.js", + "./packages/electron/node_modules/execa/lib/kill.js", + "./packages/electron/node_modules/execa/lib/promise.js", + "./packages/electron/node_modules/execa/lib/stdio.js", + "./packages/electron/node_modules/execa/lib/stream.js", + "./packages/electron/node_modules/get-stream/index.js", + "./packages/electron/node_modules/is-stream/index.js", + "./packages/electron/node_modules/npm-run-path/index.js", + "./packages/electron/node_modules/path-key/index.js", + "./packages/errors/src/errorTypes.ts", + "./packages/errors/src/errorUtils.ts", + "./packages/errors/src/errors.ts", + "./packages/errors/src/index.ts", + "./packages/errors/src/stackUtils.ts", + "./packages/errors/src/stripIndent.ts", + "./packages/example/index.js", + "./packages/example/lib/example.js", + "./packages/example/node_modules/glob/common.js", + "./packages/extension/index.js", + "./packages/extension/lib/extension.js", + "./packages/extension/lib/util.js", + "./packages/graphql/node_modules/chalk/source/templates.js", + "./packages/graphql/node_modules/chalk/source/util.js", + "./packages/graphql/node_modules/debug/node_modules/ms/index.js", + "./packages/graphql/node_modules/debug/src/common.js", + "./packages/graphql/node_modules/has-flag/index.js", + "./packages/graphql/node_modules/ws/lib/buffer-util.js", + "./packages/graphql/node_modules/ws/lib/event-target.js", + "./packages/graphql/node_modules/ws/lib/extension.js", + "./packages/graphql/node_modules/ws/lib/limiter.js", + "./packages/graphql/node_modules/ws/lib/permessage-deflate.js", + "./packages/graphql/node_modules/ws/lib/sender.js", + "./packages/graphql/node_modules/ws/lib/stream.js", + "./packages/graphql/node_modules/ws/lib/subprotocol.js", + "./packages/graphql/node_modules/ws/lib/validation.js", + "./packages/graphql/src/index.ts", + "./packages/https-proxy/lib/proxy.js", + "./packages/https-proxy/lib/server.js", + "./packages/https-proxy/lib/util/parse.js", + "./packages/https-proxy/test/helpers/https_server.js", + "./packages/launcher/index.ts", + "./packages/launcher/lib/errors.ts", + "./packages/launcher/lib/types.ts", + "./packages/launcher/lib/utils.ts", + "./packages/launcher/node_modules/which/which.js", + "./packages/net-stubbing/lib/external-types.ts", + "./packages/net-stubbing/lib/server/index.ts", + "./packages/net-stubbing/lib/server/intercepted-request.ts", + "./packages/net-stubbing/lib/server/route-matching.ts", + "./packages/net-stubbing/lib/server/state.ts", + "./packages/net-stubbing/lib/server/types.ts", + "./packages/net-stubbing/lib/util.ts", + "./packages/net-stubbing/node_modules/debug/node_modules/ms/index.js", + "./packages/net-stubbing/node_modules/debug/src/common.js", + "./packages/net-stubbing/node_modules/mime-db/db.json", + "./packages/net-stubbing/node_modules/mime-db/index.js", + "./packages/net-stubbing/node_modules/mime-types/index.js", + "./packages/network/lib/allow-destroy.ts", + "./packages/network/lib/blocked.ts", + "./packages/network/lib/concat-stream.ts", + "./packages/network/lib/http-utils.ts", + "./packages/network/lib/index.ts", + "./packages/network/node_modules/minimatch/minimatch.js", + "./packages/proxy/lib/http/util/ast-rewriter.ts", + "./packages/proxy/lib/http/util/cookies.ts", + "./packages/proxy/lib/http/util/inject.ts", + "./packages/proxy/lib/http/util/replace_stream.ts", + "./packages/proxy/lib/http/util/rewriter.ts", + "./packages/proxy/lib/http/util/top-simulation.ts", + "./packages/proxy/lib/index.ts", + "./packages/proxy/lib/network-proxy.ts", + "./packages/proxy/lib/types.ts", + "./packages/proxy/node_modules/iconv-lite/encodings/dbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-codec.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js", + "./packages/proxy/node_modules/iconv-lite/encodings/sbcs-data.js", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/big5-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp936.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp949.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/cp950.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/eucjp.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json", + "./packages/proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json", + "./packages/proxy/node_modules/iconv-lite/encodings/utf16.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf32.js", + "./packages/proxy/node_modules/iconv-lite/encodings/utf7.js", + "./packages/proxy/node_modules/iconv-lite/lib/bom-handling.js", + "./packages/proxy/node_modules/iconv-lite/lib/streams.js", + "./packages/resolve-dist/lib/index.ts", + "./packages/rewriter/lib/async-rewriters.ts", + "./packages/rewriter/lib/constants.json", + "./packages/rewriter/lib/html-rules.ts", + "./packages/rewriter/lib/html.ts", + "./packages/rewriter/lib/index.ts", + "./packages/rewriter/lib/js-rules.ts", + "./packages/rewriter/lib/util/source-maps.ts", + "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", + "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", + "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", + "./packages/rewriter/node_modules/parse5/lib/common/foreign-content.js", + "./packages/rewriter/node_modules/parse5/lib/common/html.js", + "./packages/rewriter/node_modules/parse5/lib/common/unicode.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js", + "./packages/rewriter/node_modules/parse5/lib/serializer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/index.js", + "./packages/rewriter/node_modules/parse5/lib/tokenizer/preprocessor.js", + "./packages/rewriter/node_modules/parse5/lib/tree-adapters/default.js", + "./packages/rewriter/node_modules/parse5/lib/utils/merge-options.js", + "./packages/rewriter/node_modules/parse5/lib/utils/mixin.js", + "./packages/root/index.js", + "./packages/scaffold-config/src/commandFile.ts", + "./packages/scaffold-config/src/component-index-template.ts", + "./packages/scaffold-config/src/dependencies.ts", + "./packages/scaffold-config/src/frameworks.ts", + "./packages/scaffold-config/src/supportFile.ts", + "./packages/server/config/app.json", + "./packages/server/lib/automation/automation.ts", + "./packages/server/lib/automation/index.ts", + "./packages/server/lib/automation/screenshot.ts", + "./packages/server/lib/browsers/protocol.ts", + "./packages/server/lib/cloud/machine_id.js", + "./packages/server/lib/cloud/upload.ts", + "./packages/server/lib/cohorts.ts", + "./packages/server/lib/controllers/client.js", + "./packages/server/lib/controllers/files.js", + "./packages/server/lib/controllers/reporter.js", + "./packages/server/lib/controllers/runner.ts", + "./packages/server/lib/controllers/spec.js", + "./packages/server/lib/controllers/xhrs.js", + "./packages/server/lib/cwd.js", + "./packages/server/lib/exec.js", + "./packages/server/lib/experiments.ts", + "./packages/server/lib/file_server.js", + "./packages/server/lib/files.js", + "./packages/server/lib/fixture.js", + "./packages/server/lib/gui/links.ts", + "./packages/server/lib/gui/menu.js", + "./packages/server/lib/modes/exit.js", + "./packages/server/lib/modes/index.ts", + "./packages/server/lib/modes/info.js", + "./packages/server/lib/modes/pkg.js", + "./packages/server/lib/modes/smoke_test.js", + "./packages/server/lib/override_require.ts", + "./packages/server/lib/plugins/index.ts", + "./packages/server/lib/request.js", + "./packages/server/lib/session.ts", + "./packages/server/lib/studio.ts", + "./packages/server/lib/task.js", + "./packages/server/lib/template_engine.js", + "./packages/server/lib/util/args.js", + "./packages/server/lib/util/cache_buster.js", + "./packages/server/lib/util/ci_provider.js", + "./packages/server/lib/util/class-helpers.ts", + "./packages/server/lib/util/duration.js", + "./packages/server/lib/util/electron-app.js", + "./packages/server/lib/util/env-editors.ts", + "./packages/server/lib/util/env.js", + "./packages/server/lib/util/escape_filename.ts", + "./packages/server/lib/util/file.js", + "./packages/server/lib/util/find_process.js", + "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/headers.js", + "./packages/server/lib/util/human_time.js", + "./packages/server/lib/util/net_profiler.js", + "./packages/server/lib/util/network_failures.js", + "./packages/server/lib/util/newlines.js", + "./packages/server/lib/util/obj_utils.ts", + "./packages/server/lib/util/open.js", + "./packages/server/lib/util/patch-fs.ts", + "./packages/server/lib/util/performance_benchmark.js", + "./packages/server/lib/util/print-run.ts", + "./packages/server/lib/util/profile_cleaner.js", + "./packages/server/lib/util/random.js", + "./packages/server/lib/util/server_destroy.ts", + "./packages/server/lib/util/shell.js", + "./packages/server/lib/util/spec_writer.ts", + "./packages/server/lib/util/status_code.js", + "./packages/server/lib/util/system.js", + "./packages/server/lib/util/terminal-size.js", + "./packages/server/lib/util/terminal.js", + "./packages/server/lib/util/tests_utils.ts", + "./packages/server/lib/util/trash.js", + "./packages/server/lib/util/tty.js", + "./packages/server/node_modules/@babel/parser/lib/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/launcher.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/logger.js", + "./packages/server/node_modules/@benmalka/foxdriver/build/utils.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/copy-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/copy.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/copy/ncp.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/empty/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/file.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/link.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-paths.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink-type.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/ensure/symlink.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/json/output-json.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/mkdirs.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/mkdirs/win32.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move-sync/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/move/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/output/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/remove/rimraf.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/assign.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/buffer.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/fs-extra/lib/util/utimes.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/get-port/index.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/@benmalka/foxdriver/package.json", + "./packages/server/node_modules/ansi-regex/index.js", + "./packages/server/node_modules/cli-table3/index.js", + "./packages/server/node_modules/cli-table3/src/cell.js", + "./packages/server/node_modules/cli-table3/src/layout-manager.js", + "./packages/server/node_modules/cli-table3/src/table.js", + "./packages/server/node_modules/cli-table3/src/utils.js", + "./packages/server/node_modules/cross-spawn/index.js", + "./packages/server/node_modules/cross-spawn/lib/enoent.js", + "./packages/server/node_modules/cross-spawn/lib/parse.js", + "./packages/server/node_modules/cross-spawn/lib/util/escape.js", + "./packages/server/node_modules/cross-spawn/lib/util/readShebang.js", + "./packages/server/node_modules/cross-spawn/lib/util/resolveCommand.js", + "./packages/server/node_modules/eventemitter3/index.js", + "./packages/server/node_modules/execa/index.js", + "./packages/server/node_modules/execa/lib/stdio.js", + "./packages/server/node_modules/execa/node_modules/signal-exit/index.js", + "./packages/server/node_modules/glob/common.js", + "./packages/server/node_modules/glob/node_modules/minimatch/minimatch.js", + "./packages/server/node_modules/graceful-fs/clone.js", + "./packages/server/node_modules/graceful-fs/legacy-streams.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/common.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js", + "./packages/server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js", + "./packages/server/node_modules/launch-editor/editor-info/linux.js", + "./packages/server/node_modules/launch-editor/editor-info/osx.js", + "./packages/server/node_modules/launch-editor/editor-info/windows.js", + "./packages/server/node_modules/launch-editor/get-args.js", + "./packages/server/node_modules/launch-editor/guess.js", + "./packages/server/node_modules/launch-editor/index.js", + "./packages/server/node_modules/mime-db/db.json", + "./packages/server/node_modules/mime-db/index.js", + "./packages/server/node_modules/mime/Mime.js", + "./packages/server/node_modules/mime/index.js", + "./packages/server/node_modules/mime/types/other.js", + "./packages/server/node_modules/mime/types/standard.js", + "./packages/server/node_modules/mkdirp/index.js", + "./packages/server/node_modules/mocha-teamcity-reporter/lib/teamcity.js", + "./packages/server/node_modules/mocha/lib/browser/progress.js", + "./packages/server/node_modules/mocha/lib/context.js", + "./packages/server/node_modules/mocha/lib/errors.js", + "./packages/server/node_modules/mocha/lib/esm-utils.js", + "./packages/server/node_modules/mocha/lib/growl.js", + "./packages/server/node_modules/mocha/lib/interfaces/bdd.js", + "./packages/server/node_modules/mocha/lib/interfaces/common.js", + "./packages/server/node_modules/mocha/lib/interfaces/exports.js", + "./packages/server/node_modules/mocha/lib/interfaces/index.js", + "./packages/server/node_modules/mocha/lib/interfaces/qunit.js", + "./packages/server/node_modules/mocha/lib/interfaces/tdd.js", + "./packages/server/node_modules/mocha/lib/mocharc.json", + "./packages/server/node_modules/mocha/lib/pending.js", + "./packages/server/node_modules/mocha/lib/reporters/doc.js", + "./packages/server/node_modules/mocha/lib/reporters/html.js", + "./packages/server/node_modules/mocha/lib/reporters/index.js", + "./packages/server/node_modules/mocha/lib/reporters/json-stream.js", + "./packages/server/node_modules/mocha/lib/reporters/json.js", + "./packages/server/node_modules/mocha/lib/reporters/markdown.js", + "./packages/server/node_modules/mocha/lib/stats-collector.js", + "./packages/server/node_modules/mocha/lib/utils.js", + "./packages/server/node_modules/mocha/node_modules/debug/node_modules/ms/index.js", + "./packages/server/node_modules/mocha/node_modules/debug/src/common.js", + "./packages/server/node_modules/mocha/package.json", + "./packages/server/node_modules/ms/index.js", + "./packages/server/node_modules/object.assign/implementation.js", + "./packages/server/node_modules/object.assign/index.js", + "./packages/server/node_modules/object.assign/polyfill.js", + "./packages/server/node_modules/object.assign/shim.js", + "./packages/server/node_modules/opn/index.js", + "./packages/server/node_modules/path-key/index.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/async_iterator.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/destroy.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/end-of-stream.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/from.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/pipeline.js", + "./packages/server/node_modules/readable-stream/lib/internal/streams/state.js", + "./packages/server/node_modules/string-width/index.js", + "./packages/server/node_modules/string-width/node_modules/strip-ansi/index.js", + "./packages/server/node_modules/tough-cookie/lib/cookie.js", + "./packages/server/node_modules/tough-cookie/lib/memstore.js", + "./packages/server/node_modules/tough-cookie/lib/pathMatch.js", + "./packages/server/node_modules/tough-cookie/lib/permuteDomain.js", + "./packages/server/node_modules/tough-cookie/lib/pubsuffix-psl.js", + "./packages/server/node_modules/tough-cookie/lib/store.js", + "./packages/server/node_modules/tough-cookie/lib/version.js", + "./packages/server/node_modules/uuid/dist/nil.js", + "./packages/server/node_modules/uuid/dist/parse.js", + "./packages/server/node_modules/uuid/dist/regex.js", + "./packages/server/node_modules/uuid/dist/stringify.js", + "./packages/server/node_modules/uuid/dist/v35.js", + "./packages/server/node_modules/uuid/dist/validate.js", + "./packages/server/node_modules/uuid/dist/version.js", + "./packages/socket/node_modules/engine.io-parser/lib/commons.js", + "./packages/socket/node_modules/engine.io-parser/lib/decodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/encodePacket.js", + "./packages/socket/node_modules/engine.io-parser/lib/index.js", + "./packages/socket/node_modules/socket.io-client/package.json", + "./packages/socket/node_modules/socket.io-parser/dist/binary.js", + "./packages/socket/node_modules/socket.io-parser/dist/index.js", + "./packages/socket/node_modules/socket.io-parser/dist/is-binary.js", + "./packages/socket/node_modules/socket.io/dist/client.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/index.js", + "./packages/socket/node_modules/socket.io/node_modules/engine.io/lib/parser-v3/utf8.js", + "./packages/socket/node_modules/socket.io/package.json", + "./packages/ts/registerDir.js", + "./packages/types/src/auth.ts", + "./packages/types/src/automation.ts", + "./packages/types/src/browser.ts", + "./packages/types/src/cache.ts", + "./packages/types/src/config.ts", + "./packages/types/src/constants.ts", + "./packages/types/src/driver.ts", + "./packages/types/src/editors.ts", + "./packages/types/src/git.ts", + "./packages/types/src/index.ts", + "./packages/types/src/modeOptions.ts", + "./packages/types/src/preferences.ts", + "./packages/types/src/reporter.ts", + "./packages/types/src/server.ts", + "./packages/types/src/spec.ts", + "./packages/types/src/util.ts", + "./packages/types/src/video.ts", + "./packages/types/src/warning.ts", + "./tooling/v8-snapshot/cache/prod-win32/snapshot-entry.js" + ], + "deferredHashFile": "yarn.lock", + "deferredHash": "5a515f98fe67a8a56a035563ff9c8b9e4a9edc4d035907c3fa5fef1bb60f1dfc" +} \ No newline at end of file diff --git a/tooling/v8-snapshot/package.json b/tooling/v8-snapshot/package.json new file mode 100644 index 0000000000..75def08741 --- /dev/null +++ b/tooling/v8-snapshot/package.json @@ -0,0 +1,59 @@ +{ + "name": "@tooling/v8-snapshot", + "version": "0.0.0-development", + "description": "Various utils related to create v8 snapshots for electron apps.", + "private": true, + "main": "dist/v8-snapshot.js", + "scripts": { + "build": "tsc && (rimraf ./dist/blueprint && cpr ./src/blueprint ./dist/blueprint)", + "build-prod": "yarn build", + "check-ts": "tsc --noEmit && yarn -s tslint", + "clean-deps": "rimraf node_modules", + "clean": "rimraf dist", + "test": "yarn test-unit", + "test-integration": "mocha test/integration/**/*.spec.ts --config ./test/.mocharc.js", + "test-unit": "mocha test/unit/**/*.spec.ts --config ./test/.mocharc.js", + "tslint": "tslint --config ../ts/tslint.json --project .", + "watch": "tsc --watch" + }, + "dependencies": { + "@tooling/electron-mksnapshot": "0.0.0-development", + "@tooling/packherd": "0.0.0-development", + "ansi-colors": "^4.1.1", + "convert-source-map": "^1.8.0", + "debug": "^4.1.1", + "resolve-from": "^5.0.0", + "source-map-js": "^0.6.2", + "temp-dir": "^2.0.0", + "tslib": "^2.0.1", + "worker-nodes": "^2.3.0" + }, + "devDependencies": { + "@tooling/system-tests": "0.0.0-development", + "cpr": "^3.0.1", + "mocha": "7.0.1", + "rimraf": "^3.0.2", + "snap-shot-it": "7.9.3", + "stealthy-require": "^1.1.1" + }, + "files": [ + "dist", + "src/v8-snapshot.ts" + ], + "types": "src/v8-snapshot.ts", + "optionalDependencies": { + "@cypress/snapbuild-android-arm64": "1.0.1", + "@cypress/snapbuild-darwin-64": "1.0.1", + "@cypress/snapbuild-darwin-arm64": "1.0.1", + "@cypress/snapbuild-freebsd-64": "1.0.1", + "@cypress/snapbuild-freebsd-arm64": "1.0.1", + "@cypress/snapbuild-linux-32": "1.0.1", + "@cypress/snapbuild-linux-64": "1.0.1", + "@cypress/snapbuild-linux-arm": "1.0.1", + "@cypress/snapbuild-linux-arm64": "1.0.1", + "@cypress/snapbuild-linux-mips64le": "1.0.1", + "@cypress/snapbuild-linux-ppc64le": "1.0.1", + "@cypress/snapbuild-windows-32": "1.0.1", + "@cypress/snapbuild-windows-64": "1.0.1" + } +} diff --git a/tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js b/tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js new file mode 100644 index 0000000000..5725d139b1 --- /dev/null +++ b/tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js @@ -0,0 +1,7 @@ +process.env.DEBUG = process.env.DEBUG ?? 'cypress:snapgen:info' + +const { setupV8Snapshots } = require('../dist/setup') + +if (!['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE)) { + setupV8Snapshots() +} diff --git a/tooling/v8-snapshot/src/blueprint/custom-require.js b/tooling/v8-snapshot/src/blueprint/custom-require.js new file mode 100644 index 0000000000..f69ffc9412 --- /dev/null +++ b/tooling/v8-snapshot/src/blueprint/custom-require.js @@ -0,0 +1,309 @@ +/* global generateSnapshot, PATH_SEP, __pathResolver */ + +// +// +// +let require = (moduleName) => { + throw new Error( + `[SNAPSHOT_CACHE_FAILURE] Cannot require module "${moduleName}"`, + ) +} + +/** + * The `require` function that is used from inside the snapshot. + * It is invoked during snapshot creation as well as while the app is running + * and `require`s originate from inside the snapshot. + * + * The inline code comments explain in detail the algorithm which serves to + * resolve a module as efficiently as possible, ideally from a snapshotted + * export or definition and only in the worst case by falling back to the + * Node.js module loader. + * + * During snapshotting for each issue it throws errors that are understood by + * the snapshot doctor and will result in the correct resolution for the issue + * encountered. + * + * @param modulePath the path to the module + * @param modulePathFromAppRoot the path to the module relative to the app root + * @param parentRelFilename the filename of the module importing the + * modulePath, relative to app root + * @param parentRelDirname the director of the module importing the modulePath, + * relative to app root + */ +function customRequire ( + modulePath, + modulePathFromAppRoot, + parentRelFilename, + parentRelDirname, +) { + // 1. Detect if we're currently being snapshotted or if we're running the app + const snapshotting = generateSnapshot != null + + // 2. Short circuit Node.js core modules + if ( + !snapshotting && + require.builtInModules != null && + require.builtInModules.has(modulePath) + ) { + return require(modulePath) + } + + // The relative path to the module is used to resolve modules from the various caches + let key = modulePathFromAppRoot + + // 3. Try to determine the parent module from the `this` variable. + // This is a somewhat brittle attempt to resolve the parent if it is the + // receiver + const loader /* NodeModule? */ = + this != null && this !== global && this.id != null && this.filename != null + ? this + : undefined + + // Loaded from is used to signal to packherd how a module resolution should be counted + let loadedFrom + + // 4. First try to resolve the fully initialized module from the cache + let mod = key == null ? null : customRequire.exports[key] + + if (mod != null) { + // 4.1. Try to construct the module parent from the information that we have + + // This is not very clean, but in order to create a proper module we need to + // assume some path to base id, filename and dirname on + if (modulePathFromAppRoot == null) { + modulePathFromAppRoot = modulePath + } + + // Create a parent as close as we can to what Node.js would provide + const { parent, filename, dirname } = resolvePathsAndParent( + snapshotting, + modulePathFromAppRoot, + parentRelFilename, + parentRelDirname, + loader, + ) + + mod.parent = parent + mod.id = filename + mod.filename = filename + mod.dirname = dirname + loadedFrom = 'exports' + } + + // 5. Determine if we can use a cached version of the required module + // There are two reasons why a module cannot be used from the cache: + // a) it wasn't found in the cache + // b) it was found, but was deleted from the Node.js module cache and in + // order to have things work the same as without the snapshot we need to + // reload it + const cannotUseCached = + mod == null || + (!snapshotting && + typeof require.shouldBypassCache === 'function' && + require.shouldBypassCache(mod)) + + // 6. Produce the module exports since the module wasn't found in the cache + // or we cannot use it + if (cannotUseCached) { + // Construct the module first + if (modulePathFromAppRoot == null) { + modulePathFromAppRoot = modulePath + } + + // 6.1. Try our best to construct a valid parent + const { parent, filename, dirname } = resolvePathsAndParent( + snapshotting, + modulePathFromAppRoot, + parentRelFilename, + parentRelDirname, + ) + + // 6.2. Create a module matching the Node.js module as best we can + mod = { + exports: {}, + children: [], + loaded: true, + parent, + paths: [], + require: customRequire, + filename, + id: filename, + path: dirname, + } + + // 6.3. populate its exports if its definition is cached + if (customRequire.definitions.hasOwnProperty(key)) { + customRequire.exports[key] = mod + customRequire.definitions[key].apply(mod.exports, [ + mod.exports, + mod, + filename, + dirname, + customRequire, + ]) + + loadedFrom = 'definitions' + } else { + // 6.4. if it wasn't cached we need to load it via the Node.js loader + // which we'll do via packherd's `tryLoad` which was attached to the + // `require` + if (!snapshotting) { + loadedFrom = 'Counted already' + const { exports, fullPath } = require._tryLoad( + modulePath, + parent, + false, + ) + // 6.5. If all went well the module should now be in the module + // cache, otherwise we use the module we constructed above and fill + // in the exports + const cachedMod = require.cache[fullPath] + + if (cachedMod != null) { + mod = cachedMod + } else { + mod.exports = exports + } + } else { + // While snapshotting we load the module and add it to the exports cache + mod.exports = require(modulePath) + customRequire.exports[modulePath] = mod + } + } + } + + // 7. Finally we need to register the module as loaded so that packherd can + // track which modules were loaded and how. It will also add it to the + // require cache in order to detect if a previously loaded module was deleted + // from the require cache later. + if (typeof require.registerModuleLoad === 'function') { + require.registerModuleLoad(mod, loadedFrom) + } + + // 8. Return the module exports + return mod.exports +} + +customRequire.extensions = {} +customRequire.exports = {} + +/** + * Constructs a proper parent as best we can from the given information. + * + * It uses the `__pathResolver` which is injected into the snapshot when we + * initialize it during app startup. + * Since we cannot access core modules like path while shapshotting, in order + * to join paths it uses the `PATH_SEP` which is set while snapshotting. + * + * @param snapshotting if `true` that means we're currently snapshotting + * @param modulePathFromAppRoot relative module path from app root + * @param parentRelFilename filename of parent relative to app root + * @param parentRelDirname dirname of parent relative to app root + * @param loader our guess at a parent Module (derived from `this`) + * @returns {{parent: {path: string, filename: string, id: string}, filename: string, dirname: string}} + */ +function resolvePathsAndParent ( + snapshotting, + modulePathFromAppRoot, + parentRelFilename, + parentRelDirname, + loader, /* NodeModule? */ +) { + let filename; let dirname; let parentFilename; let parentDirname + + if (modulePathFromAppRoot == null) { + throw new Error('Cannot resolve paths without modulePathFromAppRoot') + } + + if (snapshotting || !modulePathFromAppRoot.startsWith('.')) { + // Have to hard code / here since we can't use `path` in the snapshot + filename = modulePathFromAppRoot.split('/').join(PATH_SEP) + dirname = filename.split(PATH_SEP).slice(0, -1).join(PATH_SEP) + parentFilename = parentRelFilename + parentDirname = parentRelDirname + } else if (modulePathFromAppRoot != null) { + filename = __pathResolver.resolve(modulePathFromAppRoot) + dirname = __pathResolver.resolve( + filename.split(PATH_SEP).slice(0, -1).join(PATH_SEP), + ) + + parentFilename = __pathResolver.resolve(parentRelFilename) + parentDirname = __pathResolver.resolve(parentRelDirname) + } + + const parent = + loader ?? + (parentFilename == null || parentDirname == null + ? null + : { + id: parentFilename, + filename: parentFilename, + path: parentDirname, + }) + + return { parent, filename, dirname } +} + +/** + * Creates info object that is used when invoking `require.resolve` in order to + * give packherd more information when resolving a module. + * + * @param relFilename filename or module to resolve relative to project root + * @param relDirname dirname or module to resolve relative to project root + * @returns { resolveOpts: + * { id: string, + * relFilename: string, + * relPath: string, + * filename: string, + * isResolve: boolean, + * fromSnapshot: boolean } + * } + */ +function createResolveOpts (relFilename, relDirname) { + const filename = __pathResolver.resolve(relFilename) + const dirname = __pathResolver.resolve(relDirname) + + return { + id: filename, + relFilename, + relPath: relDirname, + filename, + path: dirname, + fromSnapshot: true, + isResolve: true, + } +} + +/** + * Overrides `require.resolve` and is applied when a path is resolved from + * inside the snapshot. + * Invokes `require.resolve` with specific info that the packherd's override of + * `require.resolve` can use to resolve the path. + * + * @param mod the module to resolve + * @param relFilename filename or module to resolve relative to project root + * @param relDirname dirname or module to resolve relative to project root + * @returns result of invoking `require.resolve` with enhanced info + */ +customRequire.resolve = function (mod, ...args) { + try { + // Handle the case where args is { paths: string[] }. The module is expected to be outside of the cypress snapshot. + if (args.length === 0 || (args[0] != null && typeof args[0] !== 'string')) { + return require.resolve(mod, ...args) + } + + const [relFilename = null, relDirname = null] = args + const opts = + relFilename != null && relDirname != null + ? createResolveOpts(relFilename, relDirname) + : undefined + + return require.resolve(mod, opts) + } catch (err) { + throw err + } +} + +// +// +// diff --git a/tooling/v8-snapshot/src/blueprint/globals-strict.js b/tooling/v8-snapshot/src/blueprint/globals-strict.js new file mode 100644 index 0000000000..14f08862b3 --- /dev/null +++ b/tooling/v8-snapshot/src/blueprint/globals-strict.js @@ -0,0 +1,115 @@ +// +// +// + +// The below is only included when verifying the snapshot. +// When generating a snapshot to feed to mksnapshot they cannot +// be included as then they'd modify the environment when running the +// snapshotted application. +// These are included in addition to the commmon globals, see: ./globals.js +// +// NOTE: that the errors it throws for particular issues are designed to be +// parsed by the snapshot doctor such that it can handle it by deferring +// the module. + +function cannotAccess (proto, prop) { + return function () { + throw `[SNAPSHOT_CACHE_FAILURE] Cannot access ${proto}.${prop} during snapshot creation` + } +} +function cannotDefine (proto, prop) { + throw `[SNAPSHOT_CACHE_FAILURE] Cannot define ${proto}.${prop} during snapshot creation` +} + +function cannotDelete (proto, prop) { + throw `[SNAPSHOT_CACHE_FAILURE] Cannot delete ${proto}.${prop} during snapshot creation` +} + +function getsetPrevent (proto, prop) { + return { + get: cannotAccess(proto, `${prop} getter`), + set: cannotAccess(proto, `${prop} setter`), + } +} + +function proxyPrevent (item, { construction, get, set, apply, define, del }) { + const key = item.prototype.constructor.name + const proxyHandler = {} + + if (construction) { + proxyHandler.construct = cannotAccess(key, 'constructor') + } + + if (get) { + proxyHandler.get = function (_target, prop, _receiver) { + cannotAccess(key, prop)() + } + } + + if (set) { + proxyHandler.set = function (_tarset, prop, _value) { + cannotAccess(key, prop)() + } + } + + if (apply) { + proxyHandler.apply = function (target, _thisArg, _args) { + cannotAccess(key, target.name)() + } + } + + if (define) { + proxyHandler.defineProperty = function (_target, prop, _descriptor) { + cannotDefine(key, prop) + } + } + + if (del) { + proxyHandler.deleteProperty = function (_target, prop) { + cannotDelete(key, prop)() + } + } + + return new Proxy(item, proxyHandler) +} + +// +// Error +// +Object.defineProperties(Error, { + captureStackTrace: { value: cannotAccess('Error', 'captureStackTrace') }, + stackTraceLimit: getsetPrevent('Error', 'stackTraceLimit'), + prepareStackTrace: getsetPrevent('Error', 'prepareStackTrace'), + name: getsetPrevent('Error', 'name'), +}) + +// +// Promise +// +proxyPrevent(Promise, { + construction: true, + get: true, + set: true, + apply: true, + define: true, + del: true, +}) + +// +// Arrays +// + +const arrayPreventors = { construction: true } + +Uint8Array = proxyPrevent(Uint8Array, arrayPreventors) +Uint16Array = proxyPrevent(Uint16Array, arrayPreventors) +Uint32Array = proxyPrevent(Uint32Array, arrayPreventors) +Uint8ClampedArray = proxyPrevent(Uint8ClampedArray, arrayPreventors) +Int8Array = proxyPrevent(Int8Array, arrayPreventors) +Int16Array = proxyPrevent(Int16Array, arrayPreventors) +Int32Array = proxyPrevent(Int32Array, arrayPreventors) +Array = proxyPrevent(Array, arrayPreventors) + +// +// +// diff --git a/tooling/v8-snapshot/src/blueprint/globals.js b/tooling/v8-snapshot/src/blueprint/globals.js new file mode 100644 index 0000000000..a069a2308c --- /dev/null +++ b/tooling/v8-snapshot/src/blueprint/globals.js @@ -0,0 +1,901 @@ +// +// +// + +// These stub common globals during snapshot creation and are switched out when +// the app initializes the snapshot on startup. See ./set-globals.js + +const outerScope = this + +function createElement (_type) { + return { + innerHTML: '', + style: {}, + } +} + +let documentElement = { + textContent: '', + style: { + cssFloat: '', + }, +} +let document = {} + +Object.defineProperties(document, { + createElement: { + value: createElement, + enumerable: false, + }, + addEventListener: { + value () {}, + enumerable: false, + }, + documentElement: { + value: documentElement, + enumerable: false, + }, + oninput: { + value: {}, + enumerable: false, + }, + onchange: { + value: {}, + enumerable: false, + }, +}) + +// eslint-disable-next-line no-unused-vars +function get_document () { + return document +} + +let global = {} + +Object.defineProperties(global, { + document: { + value: document, + enumerable: false, + }, + process: { + value: process, + enumerable: false, + }, + WeakMap: { + value: WeakMap, + enumerable: false, + }, + isGeneratingSnapshot: { + value: true, + enumerable: false, + }, +}) + +// eslint-disable-next-line no-unused-vars +function get_global () { + return global +} // Globally visible function and constructor names that are available in an Electron renderer window, but not visible +// during snapshot creation. +// See test/samples/list-globals.js for the generation code. +// - Manually remove "webkitURL" which is deprecated to avoid a warning on startup. + +const globalFunctionNames = [ + 'USBOutTransferResult', + 'USBIsochronousOutTransferResult', + 'USBIsochronousOutTransferPacket', + 'USBIsochronousInTransferResult', + 'USBIsochronousInTransferPacket', + 'USBInTransferResult', + 'USBInterface', + 'USBEndpoint', + 'USBDevice', + 'USBConnectionEvent', + 'USBConfiguration', + 'USBAlternateInterface', + 'USB', + 'NFC', + 'BluetoothUUID', + 'BluetoothRemoteGATTService', + 'BluetoothRemoteGATTServer', + 'BluetoothRemoteGATTDescriptor', + 'BluetoothRemoteGATTCharacteristic', + 'BluetoothDevice', + 'BluetoothCharacteristicProperties', + 'Bluetooth', + 'WebAuthentication', + 'PublicKeyCredential', + 'AuthenticatorResponse', + 'AuthenticatorAttestationResponse', + 'AuthenticatorAssertionResponse', + 'WebGLRenderingContext', + 'WebGL2RenderingContext', + 'Path2D', + 'CanvasPattern', + 'CanvasGradient', + 'TextDetector', + 'FaceDetector', + 'DetectedText', + 'DetectedFace', + 'DetectedBarcode', + 'BarcodeDetector', + 'NavigationPreloadManager', + 'SensorErrorEvent', + 'Sensor', + 'RelativeOrientationSensor', + 'OrientationSensor', + 'Magnetometer', + 'LinearAccelerationSensor', + 'Gyroscope', + 'AmbientLightSensor', + 'Accelerometer', + 'AbsoluteOrientationSensor', + 'webkitSpeechRecognitionEvent', + 'webkitSpeechRecognitionError', + 'webkitSpeechRecognition', + 'webkitSpeechGrammarList', + 'webkitSpeechGrammar', + 'SpeechSynthesisUtterance', + 'SpeechSynthesisEvent', + 'RemotePlayback', + 'RTCRtpSender', + 'PushSubscriptionOptions', + 'PushSubscription', + 'PushManager', + 'PresentationReceiver', + 'PresentationConnectionList', + 'PresentationRequest', + 'PresentationConnectionCloseEvent', + 'PresentationConnectionAvailableEvent', + 'PresentationConnection', + 'PresentationAvailability', + 'Presentation', + 'PermissionStatus', + 'Permissions', + 'PaymentResponse', + 'PaymentRequestUpdateEvent', + 'PaymentRequest', + 'PaymentAddress', + 'PaymentManager', + 'Notification', + 'VideoPlaybackQuality', + 'TrackDefaultList', + 'TrackDefault', + 'CanvasCaptureMediaStreamTrack', + 'PhotoCapabilities', + 'MediaSettingsRange', + 'ImageCapture', + 'IDBObserverChanges', + 'IDBObserver', + 'IDBObservation', + 'StorageManager', + 'CompositorWorker', + 'BudgetService', + 'BroadcastChannel', + 'SyncManager', + 'BackgroundFetchRegistration', + 'BackgroundFetchManager', + 'BackgroundFetchFetch', + 'AudioParamMap', + 'XSLTProcessor', + 'Worklet', + 'VTTRegion', + 'KeyframeEffectReadOnly', + 'KeyframeEffect', + 'DocumentTimeline', + 'AnimationTimeline', + 'AnimationPlaybackEvent', + 'AnimationEffectTimingReadOnly', + 'AnimationEffectTiming', + 'AnimationEffectReadOnly', + 'Animation', + 'VisualViewport', + 'SharedWorker', + 'PerformanceServerTiming', + 'SVGMPathElement', + 'SVGDiscardElement', + 'SVGAnimationElement', + 'ResizeObserverEntry', + 'ResizeObserver', + 'PerformancePaintTiming', + 'PerformanceObserverEntryList', + 'PerformanceObserver', + 'PerformanceNavigationTiming', + 'IntersectionObserverEntry', + 'IntersectionObserver', + 'StaticRange', + 'InputEvent', + 'DOMRectReadOnly', + 'DOMRect', + 'DOMQuad', + 'DOMPointReadOnly', + 'DOMPoint', + 'DOMMatrixReadOnly', + 'DOMMatrix', + 'ScrollTimeline', + 'StylePropertyMapReadonly', + 'StylePropertyMap', + 'CSSVariableReferenceValue', + 'CSSURLImageValue', + 'CSSUnparsedValue', + 'CSSUnitValue', + 'CSSTranslation', + 'CSSTransformValue', + 'CSSTransformComponent', + 'CSSStyleValue', + 'CSSSkew', + 'CSSScale', + 'CSSRotation', + 'CSSResourceValue', + 'CSSPositionValue', + 'CSSPerspective', + 'CSSNumericValue', + 'CSSMatrixComponent', + 'CSSKeywordValue', + 'CSSImageValue', + 'VideoTrackList', + 'VideoTrack', + 'AudioTrackList', + 'AudioTrack', + 'AccessibleNodeList', + 'AccessibleNode', + 'webkitRTCPeerConnection', + 'webkitMediaStream', + 'WebSocket', + 'WebGLVertexArrayObject', + 'WebGLUniformLocation', + 'WebGLTransformFeedback', + 'WebGLTexture', + 'WebGLSync', + 'WebGLShaderPrecisionFormat', + 'WebGLShader', + 'WebGLSampler', + 'WebGLRenderbuffer', + 'WebGLQuery', + 'WebGLProgram', + 'WebGLFramebuffer', + 'WebGLContextEvent', + 'WebGLBuffer', + 'WebGLActiveInfo', + 'WaveShaperNode', + 'TextEncoder', + 'TextDecoder', + 'SubtleCrypto', + 'StorageEvent', + 'Storage', + 'StereoPannerNode', + 'SourceBufferList', + 'SourceBuffer', + 'ServiceWorkerRegistration', + 'ServiceWorkerContainer', + 'ServiceWorker', + 'ScriptProcessorNode', + 'ScreenOrientation', + 'Response', + 'Request', + 'RTCStatsReport', + 'RTCSessionDescription', + 'RTCRtpReceiver', + 'RTCRtpContributingSource', + 'RTCPeerConnectionIceEvent', + 'RTCPeerConnection', + 'RTCIceCandidate', + 'RTCDataChannelEvent', + 'RTCDataChannel', + 'RTCCertificate', + 'Plugin', + 'PluginArray', + 'PeriodicWave', + 'PasswordCredential', + 'PannerNode', + 'OscillatorNode', + 'OfflineAudioContext', + 'OfflineAudioCompletionEvent', + 'NetworkInformation', + 'MimeType', + 'MimeTypeArray', + 'MediaStreamTrackEvent', + 'MediaStreamTrack', + 'MediaStreamEvent', + 'MediaStream', + 'MediaStreamAudioSourceNode', + 'MediaStreamAudioDestinationNode', + 'MediaSource', + 'MediaRecorder', + 'MediaKeys', + 'MediaKeySystemAccess', + 'MediaKeyStatusMap', + 'MediaKeySession', + 'MediaKeyMessageEvent', + 'MediaEncryptedEvent', + 'MediaElementAudioSourceNode', + 'MediaDevices', + 'MediaDeviceInfo', + 'MIDIPort', + 'MIDIOutputMap', + 'MIDIOutput', + 'MIDIMessageEvent', + 'MIDIInputMap', + 'MIDIInput', + 'MIDIConnectionEvent', + 'MIDIAccess', + 'ImageBitmapRenderingContext', + 'IIRFilterNode', + 'IDBVersionChangeEvent', + 'IDBTransaction', + 'IDBRequest', + 'IDBOpenDBRequest', + 'IDBObjectStore', + 'IDBKeyRange', + 'IDBIndex', + 'IDBFactory', + 'IDBDatabase', + 'IDBCursorWithValue', + 'IDBCursor', + 'Headers', + 'GamepadEvent', + 'Gamepad', + 'GamepadButton', + 'GainNode', + 'FederatedCredential', + 'EventSource', + 'DynamicsCompressorNode', + 'DeviceOrientationEvent', + 'DeviceMotionEvent', + 'DelayNode', + 'DOMError', + 'CryptoKey', + 'Crypto', + 'CredentialsContainer', + 'Credential', + 'ConvolverNode', + 'ConstantSourceNode', + 'CloseEvent', + 'ChannelSplitterNode', + 'ChannelMergerNode', + 'CanvasRenderingContext2D', + 'CacheStorage', + 'Cache', + 'BlobEvent', + 'BiquadFilterNode', + 'BeforeInstallPromptEvent', + 'BatteryManager', + 'BaseAudioContext', + 'AudioScheduledSourceNode', + 'AudioProcessingEvent', + 'AudioParam', + 'AudioNode', + 'AudioListener', + 'AudioDestinationNode', + 'AudioContext', + 'AudioBufferSourceNode', + 'AudioBuffer', + 'AppBannerPromptResult', + 'AnalyserNode', + 'postMessage', + 'blur', + 'focus', + 'close', + 'XPathResult', + 'XPathExpression', + 'XPathEvaluator', + 'XMLSerializer', + 'XMLHttpRequestUpload', + 'XMLHttpRequestEventTarget', + 'XMLHttpRequest', + 'XMLDocument', + 'Worker', + 'Window', + 'WheelEvent', + 'ValidityState', + 'VTTCue', + 'URLSearchParams', + 'URL', + 'UIEvent', + 'TreeWalker', + 'TransitionEvent', + 'TrackEvent', + 'TouchList', + 'TouchEvent', + 'Touch', + 'TimeRanges', + 'TextTrackList', + 'TextTrackCueList', + 'TextTrackCue', + 'TextTrack', + 'TextMetrics', + 'TextEvent', + 'Text', + 'TaskAttributionTiming', + 'StyleSheetList', + 'StyleSheet', + 'ShadowRoot', + 'Selection', + 'SecurityPolicyViolationEvent', + 'Screen', + 'SVGViewElement', + 'SVGUseElement', + 'SVGUnitTypes', + 'SVGTransformList', + 'SVGTransform', + 'SVGTitleElement', + 'SVGTextPositioningElement', + 'SVGTextPathElement', + 'SVGTextElement', + 'SVGTextContentElement', + 'SVGTSpanElement', + 'SVGSymbolElement', + 'SVGSwitchElement', + 'SVGStyleElement', + 'SVGStringList', + 'SVGStopElement', + 'SVGSetElement', + 'SVGScriptElement', + 'SVGSVGElement', + 'SVGRectElement', + 'SVGRect', + 'SVGRadialGradientElement', + 'SVGPreserveAspectRatio', + 'SVGPolylineElement', + 'SVGPolygonElement', + 'SVGPointList', + 'SVGPoint', + 'SVGPatternElement', + 'SVGPathElement', + 'SVGNumberList', + 'SVGNumber', + 'SVGMetadataElement', + 'SVGMatrix', + 'SVGMaskElement', + 'SVGMarkerElement', + 'SVGLinearGradientElement', + 'SVGLineElement', + 'SVGLengthList', + 'SVGLength', + 'SVGImageElement', + 'SVGGraphicsElement', + 'SVGGradientElement', + 'SVGGeometryElement', + 'SVGGElement', + 'SVGForeignObjectElement', + 'SVGFilterElement', + 'SVGFETurbulenceElement', + 'SVGFETileElement', + 'SVGFESpotLightElement', + 'SVGFESpecularLightingElement', + 'SVGFEPointLightElement', + 'SVGFEOffsetElement', + 'SVGFEMorphologyElement', + 'SVGFEMergeNodeElement', + 'SVGFEMergeElement', + 'SVGFEImageElement', + 'SVGFEGaussianBlurElement', + 'SVGFEFuncRElement', + 'SVGFEFuncGElement', + 'SVGFEFuncBElement', + 'SVGFEFuncAElement', + 'SVGFEFloodElement', + 'SVGFEDropShadowElement', + 'SVGFEDistantLightElement', + 'SVGFEDisplacementMapElement', + 'SVGFEDiffuseLightingElement', + 'SVGFEConvolveMatrixElement', + 'SVGFECompositeElement', + 'SVGFEComponentTransferElement', + 'SVGFEColorMatrixElement', + 'SVGFEBlendElement', + 'SVGEllipseElement', + 'SVGElement', + 'SVGDescElement', + 'SVGDefsElement', + 'SVGComponentTransferFunctionElement', + 'SVGClipPathElement', + 'SVGCircleElement', + 'SVGAnimatedTransformList', + 'SVGAnimatedString', + 'SVGAnimatedRect', + 'SVGAnimatedPreserveAspectRatio', + 'SVGAnimatedNumberList', + 'SVGAnimatedNumber', + 'SVGAnimatedLengthList', + 'SVGAnimatedLength', + 'SVGAnimatedInteger', + 'SVGAnimatedEnumeration', + 'SVGAnimatedBoolean', + 'SVGAnimatedAngle', + 'SVGAnimateTransformElement', + 'SVGAnimateMotionElement', + 'SVGAnimateElement', + 'SVGAngle', + 'SVGAElement', + 'Range', + 'RadioNodeList', + 'PromiseRejectionEvent', + 'ProgressEvent', + 'ProcessingInstruction', + 'PopStateEvent', + 'PointerEvent', + 'PerformanceTiming', + 'PerformanceResourceTiming', + 'PerformanceNavigation', + 'PerformanceMeasure', + 'PerformanceMark', + 'PerformanceLongTaskTiming', + 'PerformanceEntry', + 'Performance', + 'PageTransitionEvent', + 'NodeList', + 'NodeIterator', + 'NodeFilter', + 'Node', + 'Navigator', + 'NamedNodeMap', + 'MutationRecord', + 'MutationObserver', + 'MutationEvent', + 'MouseEvent', + 'MessagePort', + 'MessageEvent', + 'MessageChannel', + 'MediaQueryListEvent', + 'MediaQueryList', + 'MediaList', + 'MediaError', + 'Location', + 'KeyboardEvent', + 'InputDeviceCapabilities', + 'ImageData', + 'ImageBitmap', + 'IdleDeadline', + 'History', + 'HashChangeEvent', + 'HTMLVideoElement', + 'HTMLUnknownElement', + 'HTMLUListElement', + 'HTMLTrackElement', + 'HTMLTitleElement', + 'HTMLTextAreaElement', + 'HTMLTemplateElement', + 'HTMLTableSectionElement', + 'HTMLTableRowElement', + 'HTMLTableElement', + 'HTMLTableColElement', + 'HTMLTableCellElement', + 'HTMLTableCaptionElement', + 'HTMLStyleElement', + 'HTMLSpanElement', + 'HTMLSourceElement', + 'HTMLSlotElement', + 'HTMLShadowElement', + 'HTMLSelectElement', + 'HTMLScriptElement', + 'HTMLQuoteElement', + 'HTMLProgressElement', + 'HTMLPreElement', + 'HTMLPictureElement', + 'HTMLParamElement', + 'HTMLParagraphElement', + 'HTMLOutputElement', + 'HTMLOptionsCollection', + 'Option', + 'HTMLOptionElement', + 'HTMLOptGroupElement', + 'HTMLObjectElement', + 'HTMLOListElement', + 'HTMLModElement', + 'HTMLMeterElement', + 'HTMLMetaElement', + 'HTMLMenuElement', + 'HTMLMediaElement', + 'HTMLMarqueeElement', + 'HTMLMapElement', + 'HTMLLinkElement', + 'HTMLLegendElement', + 'HTMLLabelElement', + 'HTMLLIElement', + 'HTMLInputElement', + 'Image', + 'HTMLImageElement', + 'HTMLIFrameElement', + 'HTMLHtmlElement', + 'HTMLHeadingElement', + 'HTMLHeadElement', + 'HTMLHRElement', + 'HTMLFrameSetElement', + 'HTMLFrameElement', + 'HTMLFormElement', + 'HTMLFormControlsCollection', + 'HTMLFontElement', + 'HTMLFieldSetElement', + 'HTMLEmbedElement', + 'HTMLElement', + 'HTMLDocument', + 'HTMLDivElement', + 'HTMLDirectoryElement', + 'HTMLDialogElement', + 'HTMLDetailsElement', + 'HTMLDataListElement', + 'HTMLDListElement', + 'HTMLContentElement', + 'HTMLCollection', + 'HTMLCanvasElement', + 'HTMLButtonElement', + 'HTMLBodyElement', + 'HTMLBaseElement', + 'HTMLBRElement', + 'Audio', + 'HTMLAudioElement', + 'HTMLAreaElement', + 'HTMLAnchorElement', + 'HTMLAllCollection', + 'FormData', + 'FontFaceSetLoadEvent', + 'FontFace', + 'FocusEvent', + 'FileReader', + 'FileList', + 'File', + 'EventTarget', + 'Event', + 'ErrorEvent', + 'Element', + 'DragEvent', + 'DocumentType', + 'DocumentFragment', + 'Document', + 'DataTransferItemList', + 'DataTransferItem', + 'DataTransfer', + 'DOMTokenList', + 'DOMStringMap', + 'DOMStringList', + 'DOMParser', + 'DOMImplementation', + 'DOMException', + 'CustomEvent', + 'CustomElementRegistry', + 'CompositionEvent', + 'Comment', + 'ClipboardEvent', + 'Clipboard', + 'CharacterData', + 'CSSViewportRule', + 'CSSSupportsRule', + 'CSSStyleSheet', + 'CSSStyleRule', + 'CSSStyleDeclaration', + 'CSSRuleList', + 'CSSRule', + 'CSSPageRule', + 'CSSNamespaceRule', + 'CSSMediaRule', + 'CSSKeyframesRule', + 'CSSKeyframeRule', + 'CSSImportRule', + 'CSSGroupingRule', + 'CSSFontFaceRule', + 'CSS', + 'CSSConditionRule', + 'CDATASection', + 'Blob', + 'BeforeUnloadEvent', + 'BarProp', + 'Attr', + 'ApplicationCacheErrorEvent', + 'ApplicationCache', + 'AnimationEvent', + 'WebKitCSSMatrix', + 'WebKitMutationObserver', + 'WebKitAnimationEvent', + 'WebKitTransitionEvent', + 'onerror', + 'onload', + 'stop', + 'open', + 'alert', + 'confirm', + 'prompt', + 'print', + 'requestAnimationFrame', + 'cancelAnimationFrame', + 'requestIdleCallback', + 'cancelIdleCallback', + 'captureEvents', + 'releaseEvents', + 'getComputedStyle', + 'matchMedia', + 'moveTo', + 'moveBy', + 'resizeTo', + 'resizeBy', + 'getSelection', + 'find', + 'getMatchedCSSRules', + 'webkitRequestAnimationFrame', + 'webkitCancelAnimationFrame', + 'btoa', + 'atob', + 'setTimeout', + 'clearTimeout', + 'setInterval', + 'clearInterval', + 'createImageBitmap', + 'scroll', + 'scrollTo', + 'scrollBy', + 'fetch', + 'getComputedStyleMap', + 'webkitRequestFileSystem', + 'webkitResolveLocalFileSystemURL', + 'openDatabase', + 'SharedArrayBuffer', + 'Buffer', + 'setImmediate', + 'clearImmediate', + 'require', + 'BudgetState', + 'WebView', + 'measure', + 'profile', + 'dir', + 'dirxml', + 'profileEnd', + 'clear', + 'table', + 'keys', + 'values', + 'debug', + 'undebug', + 'monitor', + 'unmonitor', + 'inspect', + 'copy', + 'getEventListeners', + 'monitorEvents', + 'unmonitorEvents', + '$', + '$$', + '$x', +] // During snapshot generation, this is null. +// After snapshot load and setGlobals() is called, this is an object with global function names as keys and the real +// global functions as values. + +let globalFunctionTrampoline = null // Create a placeholder function to install as a global in place of a function that may be available after snapshot +// load, at runtime. Uses the current state of globalFunctionTrampoline to either call the real function or throw +// an appropriate error for improper use. + +function makeGlobalPlaceholder (globalFunctionName) { + return function () { + if (globalFunctionTrampoline === null) { + throw new Error( + `[SNAPSHOT_CACHE_FAILURE] Attempt to call ${globalFunctionName} during snapshot generation ` + + `or before snapshotResult.setGlobals()`, + ) + } else if (globalFunctionTrampoline[globalFunctionName] === undefined) { + throw new ReferenceError( + `[SNAPSHOT_CACHE_FAILURE] Global method ${globalFunctionName} was still not ` + + `defined after the snapshot was loaded`, + ) + } else if (new.target === undefined) { + // Not called as a constructor + return globalFunctionTrampoline[globalFunctionName](...arguments) + } else { + // Called as a constructor + return new globalFunctionTrampoline[globalFunctionName](...arguments) + } + } +} // Install a placeholder function for each global function we expect to have access to at runtime. Placeholder +// functions are set as properties on our "global" stand-in and also in this function's scope, so bare references +// will also capture the placeholder function (`var a = setTimeout` and `var a = global.setTimeout`). + +for (const globalFunctionName of globalFunctionNames) { + if (outerScope[globalFunctionName] !== undefined) { + // This happens when the snapshot script is eval'd in tests. + continue + } + + const placeholder = makeGlobalPlaceholder(globalFunctionName) + + Object.defineProperties(global, { + [globalFunctionName]: { + value: placeholder, + enumerable: false, + }, + }) + + outerScope[globalFunctionName] = placeholder +} + +let window = {} + +Object.defineProperties(window, { + document: { + value: document, + enumerable: false, + }, + location: { + value: { + href: '', + }, + enumerable: false, + }, + addEventListener: { + value () {}, + enumerable: false, + }, + screen: { + value: {}, + enumerable: false, + }, +}) + +// eslint-disable-next-line no-unused-vars +function get_window () { + return window +} + +let console = {} + +function consoleNoop () { + throw new Error( + '[SNAPSHOT_CACHE_FAILURE] Cannot use `console` functions in the snapshot.', + ) +} + +Object.defineProperties(console, { + debug: { + value: consoleNoop, + enumerable: false, + }, + error: { + value: consoleNoop, + enumerable: false, + }, + info: { + value: consoleNoop, + enumerable: false, + }, + log: { + value: consoleNoop, + enumerable: false, + }, + warn: { + value: consoleNoop, + enumerable: false, + }, + time: { + value: consoleNoop, + enumerable: false, + }, + timeEnd: { + value: consoleNoop, + enumerable: false, + }, +}) + +// eslint-disable-next-line no-unused-vars +function get_console () { + return console +} + +// Resolves paths like __dirname/__filename relative to projectBaseDir +let __pathResolver = {} + +Object.defineProperties(__pathResolver, { + resolve: { + value: function resolve (_local) { + throw new Error( + '[SNAPSHOT_CACHE_FAILURE] Cannot resolve `__dirname` in the snapshot', + ) + }, + enumerable: false, + }, +}) + +// eslint-disable-next-line no-unused-vars +function __resolve_path (dir) { + return __pathResolver.resolve(dir) +} + +// +// +// diff --git a/tooling/v8-snapshot/src/blueprint/set-globals.js b/tooling/v8-snapshot/src/blueprint/set-globals.js new file mode 100644 index 0000000000..21dd4ed1b1 --- /dev/null +++ b/tooling/v8-snapshot/src/blueprint/set-globals.js @@ -0,0 +1,59 @@ +// eslint-disable-next-line no-unused-vars +/* globals globalFunctionTrampoline, window, document, __pathResolver */ + +/** + * Replaces globals that have been stubbed during snapshot creation with the + * instances that are present in the app on startup. + */ +// eslint-disable-next-line no-unused-vars +function setGlobals ( + newGlobal, + newProcess, + newWindow, + newDocument, + newConsole, + newPathResolver, + nodeRequire, +) { + // Populate the global function trampoline with the real global functions defined on newGlobal. + globalFunctionTrampoline = newGlobal + + for (let key of Object.keys(global)) { + newGlobal[key] = global[key] + } + + global = newGlobal + + if (typeof newProcess !== 'undefined') { + for (let key of Object.keys(process)) { + newProcess[key] = process[key] + } + } + + process = newProcess + + if (typeof newWindow !== 'undefined') { + for (let key of Object.keys(window)) { + newWindow[key] = window[key] + } + } + + window = newWindow + + if (typeof newDocument !== 'undefined') { + for (let key of Object.keys(document)) { + newDocument[key] = document[key] + } + } + + document = newDocument + + for (let key of Object.keys(console)) { + // eslint-disable-next-line no-console + newConsole[key] = console[key] + } + + console = newConsole + __pathResolver = newPathResolver + require = nodeRequire +} diff --git a/tooling/v8-snapshot/src/constants.ts b/tooling/v8-snapshot/src/constants.ts new file mode 100644 index 0000000000..e3488be638 --- /dev/null +++ b/tooling/v8-snapshot/src/constants.ts @@ -0,0 +1,4 @@ +/** + * Name under which the snapshotted file will appear in tools like DevTools. + */ +export const EMBEDDED = '' diff --git a/tooling/v8-snapshot/src/doctor/circular-imports.ts b/tooling/v8-snapshot/src/doctor/circular-imports.ts new file mode 100644 index 0000000000..750e9a945e --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/circular-imports.ts @@ -0,0 +1,60 @@ +import type { Metadata, Entries } from '../types' + +class CircularImports { + private readonly _visited: Set = new Set() + private _parent: string = '' + + constructor ( + private readonly _inputs: Metadata['inputs'], + private readonly _entries: Entries, + ) {} + + findCircularImports () { + const map: Map> = new Map() + + for (const [key, { imports }] of this._entries) { + this._parent = key + const circs: string[] = [] + + for (const p of imports.map((x) => x.path)) { + this._visited.clear() + if (this._leadsBackToParent(p)) circs.push(p) + } + if (circs.length > 0) map.set(key, new Set(circs)) + } + + return map + } + + private _leadsBackToParent (p: string) { + this._visited.add(p) + const imports = this._inputs[p].imports + + // Check for direct circular import first + if (imports.some((x) => x.path === this._parent)) return true + + // Check for indirect circular imports recursively + for (const { path } of imports) { + if (this._visited.has(path)) continue + + if (this._leadsBackToParent(path)) return true + } + + return false + } +} + +/** + * Resolves circular references in the module tree given a list of entries + * included in the bundle. + * + * @param inputs map of filesincluding information about the modules they are + * importing. See {@link Metadata} inputs. + * @param entries iterable version of inputs + */ +export function circularImports ( + inputs: Metadata['inputs'], + entries: Entries, +) { + return new CircularImports(inputs, entries).findCircularImports() +} diff --git a/tooling/v8-snapshot/src/doctor/determine-deferred.ts b/tooling/v8-snapshot/src/doctor/determine-deferred.ts new file mode 100644 index 0000000000..2b1393397f --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/determine-deferred.ts @@ -0,0 +1,140 @@ +import { strict as assert } from 'assert' +import debug from 'debug' +import fs from 'fs' +import path from 'path' +import { SnapshotDoctor } from './snapshot-doctor' +import { canAccess, createHashForFile, matchFileHash } from '../utils' + +const logInfo = debug('cypress:snapgen:info') + +export async function determineDeferred ( + bundlerPath: string, + projectBaseDir: string, + snapshotEntryFile: string, + cacheDir: string, + opts: { + nodeModulesOnly: boolean + previousDeferred: Set + previousHealthy: Set + previousNoRewrite: Set + forceNoRewrite: Set + useHashBasedCache: boolean + nodeEnv: string + }, +) { + const jsonPath = path.join(cacheDir, 'snapshot-meta.json') + + let hashFilePath: string | undefined + let hash + + if (opts.useHashBasedCache) { + hashFilePath = await findHashFile(projectBaseDir) + assert( + hashFilePath != null, + `Unable to find hash file inside ${projectBaseDir}`, + ) + + const { + match, + hash: currentHash, + deferred, + norewrite, + healthy, + } = await validateExistingDeferred(jsonPath, hashFilePath) + + if (match && opts.nodeModulesOnly) { + const combined: Set = new Set([ + ...norewrite, + ...opts.forceNoRewrite, + ]) + + return { + norewrite: Array.from(combined), + deferred, + healthy, + } + } + + hash = currentHash + } + + logInfo( + 'Did not find valid excludes for current project state, will determine them ...', + ) + + const doctor = new SnapshotDoctor({ + bundlerPath, + entryFilePath: snapshotEntryFile, + baseDirPath: projectBaseDir, + nodeModulesOnly: opts.nodeModulesOnly, + previousDeferred: opts.previousDeferred, + previousHealthy: opts.previousHealthy, + previousNoRewrite: opts.previousNoRewrite, + forceNoRewrite: opts.forceNoRewrite, + nodeEnv: opts.nodeEnv, + supportTypeScript: opts.nodeModulesOnly, + }) + + const { + deferred: updatedDeferred, + norewrite: updatedNorewrite, + healthy: updatedHealty, + } = await doctor.heal() + const deferredHashFile = opts.useHashBasedCache + ? path.relative(projectBaseDir, hashFilePath!) + : '' + + const cachedDeferred = { + norewrite: updatedNorewrite, + deferred: updatedDeferred, + healthy: updatedHealty, + deferredHashFile, + deferredHash: hash, + } + + await fs.promises.writeFile( + jsonPath, + JSON.stringify(cachedDeferred, null, 2), + 'utf8', + ) + + return { + norewrite: updatedNorewrite, + deferred: updatedDeferred, + healthy: updatedHealty, + } +} + +async function validateExistingDeferred ( + jsonPath: string, + hashFilePath: string, +) { + if (!(await canAccess(jsonPath))) { + const hash = await createHashForFile(hashFilePath) + + return { deferred: [], match: false, hash } + } + + const { deferredHash, norewrite, deferred, healthy } = require(jsonPath) + const res = await matchFileHash(hashFilePath, deferredHash) + + return { + norewrite, + deferred, + match: res.match, + hash: res.hash, + healthy, + } +} + +async function findHashFile (projectBaseDir: string) { + const yarnLock = path.join(projectBaseDir, 'yarn.lock') + const packageLock = path.join(projectBaseDir, 'package.json.lock') + const packageJson = path.join(projectBaseDir, 'package.json') + + for (const x of [yarnLock, packageLock, packageJson]) { + if (await canAccess(x)) return x + } + + return +} diff --git a/tooling/v8-snapshot/src/doctor/process-script.async.ts b/tooling/v8-snapshot/src/doctor/process-script.async.ts new file mode 100644 index 0000000000..a431c1b881 --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/process-script.async.ts @@ -0,0 +1,66 @@ +import debug from 'debug' +import { strict as assert } from 'assert' +import os from 'os' +import WorkerNodes from 'worker-nodes' +import type { ProcessScriptOpts, ProcessScriptResult } from '../types' + +const workerScript = require.resolve('../../dist/doctor/process-script.worker') + +const logInfo = debug('cypress:snapgen:info') +const logTrace = debug('cypress:snapgen:trace') + +/** + * Spreads the assembling and processing snapshot scripts based on a generated + * bundle across multiple workers. + * This results in a very considerable speedup. + */ +export class AsyncScriptProcessor { + private readonly _workers: WorkerNodesInstance + private _isDisposed: boolean + + /** + * Creates a new {@link AsyncScriptProcessor} instance. + */ + constructor () { + logInfo('Initializing async script processor') + + // On CI, we're limited in resources, so we should limit the number of workers + const maxWorkers = process.env.CI ? 1 : os.cpus().length + const minWorkers = process.env.CI ? 1 : maxWorkers / 2 + + const opts = { + autoStart: true, + lazyStart: false, + minWorkers, + maxWorkers, + maxTasksPerWorker: 1, + taskMaxRetries: 0, + } + + this._isDisposed = false + + this._workers = new WorkerNodes(workerScript, opts) + } + + /** + * Processes the provided snapshot script and verifies its soundness. + * + * @param opts passed to the worker in order to configure how the script is + * assembled and which entryPoint to use + */ + async processScript (opts: ProcessScriptOpts): Promise { + assert(!this._isDisposed, 'should not processScript when disposed') + + return this._workers.call.processScript(opts) + } + + /** + * Terminates all workers and refuses to take on any work after that + */ + dispose () { + logTrace('Disposing AsyncScriptProcessor') + this._isDisposed = true + + return this._workers.terminate() + } +} diff --git a/tooling/v8-snapshot/src/doctor/process-script.worker.ts b/tooling/v8-snapshot/src/doctor/process-script.worker.ts new file mode 100644 index 0000000000..4ba9e39375 --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/process-script.worker.ts @@ -0,0 +1,101 @@ +import { strict as assert } from 'assert' +import debug from 'debug' +import fs from 'fs' +import { assembleScript } from '../generator/create-snapshot-script' +import { SnapshotVerifier } from '../generator/snapshot-verifier' +import type { ProcessScriptOpts, ProcessScriptResult } from '../types' +import { createHash } from '../utils' + +process.env.DEBUG_COLOR = '1' + +const logInfo = debug('cypress:snapgen:info') + +const bundleState: { contents?: Buffer, hash?: string } = { + contents: undefined, + hash: undefined, +} + +function getBundle (bundlePath?: string, bundleHash?: string) { + assert( + bundlePath != null, + 'either bundle content or path need to be provided', + ) + + assert( + bundleHash != null, + 'either bundle content or hash need to be provided', + ) + + if ( + bundleState.hash == null || + bundleState.contents == null || + bundleState.hash !== bundleHash + ) { + logInfo('AsyncScriptProcessor is reading updated bundle file') + const contents = fs.readFileSync(bundlePath) + const hash = createHash(contents) + + assert(hash === bundleHash, 'bundle should not change while processing') + + bundleState.contents = contents + bundleState.hash = hash + } + + return bundleState.contents +} + +const snapshotVerifier = new SnapshotVerifier() + +/** + * Assembles a script from the provided bundle using the provided `entryPoint` + * and verifies it. + * + * The same bundle is used to determine _healthyness_ of different modules in + * parallel by providing a different entry point for each worker. + * + * This worker process stores the bundle content from the previous call and + * only loads it from the file system again if the `bundleHash` changed. + * + * @param bundlePath path to the bundle to process + * @param bundleHash the hash of that bundle + * @param baseDirPath base dir of the project we're snapshotting + * @param entryFilepath the path to the file to use as the entry to the app + * direct/indirect dependents are either included directly or a discoverable by + * following the imports present + * @param entryPoint the entry file to use during verification + * @param nodeEnv the string to provide to `process.env.NODE_ENV` during + * script verification + */ +export function processScript ({ + bundlePath, + bundleHash, + baseDirPath, + entryFilePath, + entryPoint, + nodeEnv, + supportTypeScript, +}: ProcessScriptOpts): ProcessScriptResult { + const bundleContent = getBundle(bundlePath, bundleHash) + let snapshotScript + + try { + snapshotScript = assembleScript(bundleContent, baseDirPath, entryFilePath, { + entryPoint, + includeStrictVerifiers: true, + nodeEnv, + baseSourcemapExternalPath: undefined, + processedSourcemapExternalPath: undefined, + supportTypeScript, + }).script + } catch (err: any) { + return { outcome: 'failed:assembleScript', error: err } + } + + try { + snapshotVerifier.verify(snapshotScript, ``) + } catch (err: any) { + return { outcome: 'failed:verifyScript', error: err } + } + + return { outcome: 'completed' } +} diff --git a/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts b/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts new file mode 100644 index 0000000000..ae3dfad427 --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts @@ -0,0 +1,722 @@ +import { strict as assert } from 'assert' +import debug from 'debug' +import fs from 'fs' +import { tmpdir } from 'os' +import path from 'path' +import { circularImports } from './circular-imports' +import { createBundleAsync } from '../generator/create-snapshot-script' +import { AsyncScriptProcessor } from './process-script.async' +import type { CreateSnapshotScriptOpts, Entries, Metadata } from '../types' +import { + bundleFileNameFromHash, + createHash, + ensureDirSync, + tryRemoveFile, +} from '../utils' +import { + stringifyWarning, + Warning, + WarningConsequence, + WarningsProcessor, +} from './warnings-processor' + +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') +const logTrace = debug('cypress:snapgen:trace') +const logError = debug('cypress:snapgen:error') + +/** + * Configure the snapshot doctor + * + * @property previousDeferred See {@link GenerationOpts} previousDeferred + * @property previousHealthy See {@link GenerationOpts} previousHealthy + * @property previousNoRewrite See {@link GenerationOpts} previousNoRewrite + * @property forceNoRewrite See {@link GenerationOpts} forceNoRewrite + */ +export type SnapshotDoctorOpts = Omit< + CreateSnapshotScriptOpts, + | 'deferred' + | 'includeStrictVerifiers' + | 'sourcemap' + | 'sourcemapEmbed' + | 'sourcemapInline' + | 'sourcemapExternalPath' +> & { + previousDeferred: Set + previousHealthy: Set + previousNoRewrite: Set + forceNoRewrite: Set +} + +/** + * Tracks which modules have been deferred, need to be deferred and so on + * during the doctor process + */ +class HealState { + processedLeaves: boolean + + /** + * Creates an instance of {@link HealState}. + * + * @param meta esbuild metadata {@link https://esbuild.github.io/api/#metafile} + * @param healthy modules determined as healthy + * @param deferred modules that need to be deferred + * @param norewrite modules that cannot be rewritten + * @param needDefer modules that need to be deferred but haven't been added + * to `deferred` yet + * @param needNorewrite modules that cannot be rewritten but haven't been + * added to `norewrite` yet + */ + constructor ( + readonly meta: Readonly, + readonly healthy: Set = new Set(), + readonly deferred: Set = new Set(), + readonly norewrite: Set = new Set(), + readonly needDefer: Set = new Set(), + readonly needNorewrite: Set = new Set(), + ) { + this.processedLeaves = false + } +} + +/** + * Sorts modules by leafness via these steps: + * + * 1. add leafs which are modules that import no other module + * 2. add modules that have imports but all those imports have been added in + * a previous step + * 3. Repeat 2. with updated `handled` Set until no all `entries` have ben + * added + * + * @param meta module metatdata which contains information about which other + * modules a module imports + * + * @param entries all modules that we need to handle + * + * @param circulars all modules which have circular imports which need to be + * considered in order to avoid an infinite loop + */ +function sortModulesByLeafness ( + meta: Metadata, + entries: Entries, + circulars: Map>, +) { + const sorted: string[] = [] + const handled: Set = new Set() + + while (handled.size < entries.length) { + const justSorted: string[] = [] + + // Include modules whose children have been included already + for (const [key, { imports }] of entries) { + if (handled.has(key)) continue + + const circular = circulars.get(key) + const children = imports.map((x) => x.path) + + if ( + children.every( + (x) => handled.has(x) || (circular != null && circular.has(x)), + ) + ) { + justSorted.push(key) + } + } + // Sort them further by number of imports + justSorted.sort((a, b) => { + const lena = meta.inputs[a].imports.length + const lenb = meta.inputs[b].imports.length + + return lena > lenb ? -1 : 1 + }) + + for (const x of justSorted) { + sorted.push(x) + handled.add(x) + } + } + + return sorted +} + +/** + * Sorts all modules by leafness and filters out any module that is not part of + * `deferred` modules. + * + * @param meta module metatdata which contains information about which other + * modules a module imports + * + * @param entries all modules that we need to handle + * + * @param circulars all modules which have circular imports which need to be + * considered in order to avoid an infinite loop + * + * @param deferred modules that should be included in the result + */ +function sortDeferredByLeafness ( + meta: Metadata, + entries: Entries, + circulars: Map>, + deferred: Set, +) { + return sortModulesByLeafness(meta, entries, circulars).filter((x) => { + return deferred.has(x) + }) +} + +/** + * Maps the given keys to relative paths + */ +function pathify (keys: Iterable) { + const xs: string[] = [] + + for (const x of keys) { + if (x.startsWith('.') || x.startsWith(path.sep)) { + xs.push(x) + } else { + xs.push(`./${x}`) + } + } + + return xs +} +/** + * Maps the given keys to relative paths and sorts them + */ +function pathifyAndSort (keys: Set) { + const xs = pathify(keys) + + xs.sort() + + return xs +} + +/** + * Maps the given paths to keys, i.e. the inverse of {@link pathify}. + */ +function unpathify (keys: Set) { + const unpathified: Set = new Set() + + for (const x of keys) { + if (!x.startsWith('./')) { + unpathified.add(x) + } else { + unpathified.add(x.slice(2)) + } + } + + return unpathified +} + +/** + * The snapshot doctor performs a series of steps in order to arrive at + * metadata which distinguishes between non-problematic aka _healthy_ and + * problematic aka _deferred_ and _norewrite_ modules. + * + * This metada is used when generating the final snapshot script to initialize + * the snapshot. + * + * ## Snapshot Doctor Metadata + * + * - `norewrite`: modules that should not be rewritten when generating the + * snapshot script as + * - `deferred`: modules that need to be deferred, that is they can not be + * initialized during snapshot inialization + * - `healthy`: modules that can be fully initialized during snapshot + * initialization + * - `deferredHashFile`: the file use to derive at the current project state + * hash, usually the local `yarn.lock` + * - `deferredHash`: the hash of the `deferredHashFile` at the time that this + * metatdata was generated + * + * The `hash` related properties tell the snapshot doctor for future runs if + * the metadata can be used as is since the project state didn't change, i.e. + * no dependencies were changed nor added or removed. + * + * If the `deferredHash` does not match the current state then the doctor + * will start fresh, however if you pass one ore more of the following as part + * of the {@link SnapshotDoctorOpts | snapshot opts} it will take those as a + * starting point and complete much faster. + * + * ```ts + * previousDeferred: Set + * previousHealthy: Set + * previousNoRewrite: Set + * ``` + * + * ## Snapshot Doctor Steps + * + * When {@link SnapshotDoctor.heal} is invoked the doctor will keep adapting + * the bundle that is generated by the bundle until it can be used to + * initialize the snapshot without running into any issues. + * + * It does so by refining the health state and communicating it to the bundler + * via a config which in turn produces a slightly different bundle each time, + * designed to avoid those issues. + */ +export class SnapshotDoctor { + private readonly baseDirPath: string + private readonly entryFilePath: string + private readonly bundlerPath: string + private readonly nodeModulesOnly: boolean + private readonly previousDeferred: Set + private readonly previousHealthy: Set + private readonly previousNoRewrite: Set + private readonly forceNoRewrite: Set + private readonly nodeEnv: string + private readonly _scriptProcessor: AsyncScriptProcessor + private readonly _warningsProcessor: WarningsProcessor + + /** + * Creates an instance of the {@link SnapshotDoctor} + * + * @param opts configures the _healing_ process of the doctor + */ + constructor (opts: SnapshotDoctorOpts) { + this.baseDirPath = opts.baseDirPath + this.entryFilePath = opts.entryFilePath + this.bundlerPath = opts.bundlerPath + this._scriptProcessor = new AsyncScriptProcessor() + this._warningsProcessor = new WarningsProcessor(this.baseDirPath) + this.nodeModulesOnly = opts.nodeModulesOnly + this.previousDeferred = unpathify(opts.previousDeferred) + this.previousHealthy = unpathify(opts.previousHealthy) + this.previousNoRewrite = unpathify(opts.previousNoRewrite) + this.forceNoRewrite = unpathify(opts.forceNoRewrite) + this.nodeEnv = opts.nodeEnv + } + + /** + * The healing process of a given app consists of the following main steps + * which are described in more detail in the code below. + * + * 1. Produce an initial bundle and extract all modules from the metadata + * 2. Start with an empty heal state or one derived from previous meta data + * 3. Process the bundle which is generated respecting the current heal + * state and update the heal state via the issues we discover during that + * process + * 4. Keep doing that until we arrive at a heal state which will result in a + * bundle that doesn't cause any issues when assembled into a snapshot script + * and used to initialize the snapshot + * 5. Return that heal state as well as the last collected bundle and related + * metadata + */ + async heal (): Promise<{ + healthy: string[] + deferred: string[] + norewrite: string[] + bundle: Buffer + meta: Metadata + }> { + // 1. Generate the metadata not deferring anything yet + const { meta } = await this._createScript() + + // 2. Extract all module inputs from the metadata and detect circular + // imports + const entries = Object.entries(meta.inputs) + const circulars = circularImports(meta.inputs, entries) + + logDebug({ circulars }) + + const filterStaleImports = (imports: Set) => { + return new Set(Array.from(imports).filter((x) => !!meta.inputs[x])) + } + + const filteredPreviousHealthy = filterStaleImports(this.previousHealthy) + const filteredPreviousDeferred = filterStaleImports(this.previousDeferred) + const filteredPreviousNoRewrite = filterStaleImports(this.previousNoRewrite) + + // 3. Initialize the heal state with data from previous runs that was + // provided to us + // forceNoRewrite is provided for modules which we manually determined + // to result in invalid/problematic code when rewritten + const healState = new HealState( + meta, + filteredPreviousHealthy, + filteredPreviousDeferred, + new Set([...filteredPreviousNoRewrite, ...this.forceNoRewrite]), + ) + + // 4. Generate the initial bundle and warnings using what was done previously + const { warnings, bundle } = await this._createScript(new Set(filteredPreviousDeferred), new Set([...filteredPreviousNoRewrite, ...this.forceNoRewrite])) + + // 5. Process the initial bundle in order to detect issues during + // verification + // The heal state we pass is mutated in this step + await this._processCurrentScript(bundle, warnings, healState, circulars) + + // 6. As long as the heal state indicates there is work left todo we add + // problematic modules (needDefer and needNorewrite) to the appropriate + // set and repeat the process + // Each new run will defer/norewrite more and more modules until we + // arrive at a snapshot script that passes verification + while (healState.needDefer.size > 0 || healState.needNorewrite.size > 0) { + for (const x of healState.needDefer) { + healState.deferred.add(x) + healState.healthy.delete(x) + } + for (const x of healState.needNorewrite) { + healState.norewrite.add(x) + healState.healthy.delete(x) + } + + const { warnings, bundle } = await this._createScript( + healState.deferred, + healState.norewrite, + ) + + healState.needDefer.clear() + healState.needNorewrite.clear() + await this._processCurrentScript(bundle, warnings, healState, circulars) + } + + // 7. Sort results + const sortedDeferred = sortDeferredByLeafness( + meta, + entries, + circulars, + healState.deferred, + ) + + const sortedNorewrite = Array.from(healState.norewrite).sort() + + logInfo({ allDeferred: sortedDeferred, len: sortedDeferred.length }) + logInfo({ norewrite: sortedNorewrite, len: sortedNorewrite.length }) + + // 8. Cleanup + await this._scriptProcessor.dispose() + + // 9. Return collected metadata as well as the bundle that respected the + // collected heal state + return { + healthy: pathifyAndSort(healState.healthy), + deferred: pathifyAndSort(new Set(sortedDeferred)), + norewrite: pathify(sortedNorewrite), + bundle, + meta, + } + } + + private async _writeBundle (bundle: Buffer) { + const bundleTmpDir = path.join(tmpdir(), 'v8-snapshot') + + ensureDirSync(bundleTmpDir) + const bundleHash = createHash(bundle) + const filename = bundleFileNameFromHash(bundleHash) + const bundlePath = path.join(bundleTmpDir, filename) + + await fs.promises.writeFile(bundlePath, bundle) + + return { bundleHash, bundlePath } + } + + /** + * The bundler produced a bundle respecting the current heal state. + * Now we need to test different modules as entry points in order to identify + * if initializing a particular module in isolation would cause issues. + * + * Note that even though we use the same bundle, by changing the entry point + * we can check multiple modules with it. + * + * We first look at the warnings and take the needed consequence for some of + * them, either marking a module to be deferred or as not rewritable. + * + * The bundle is invalid if we encountered extra modules that cannot be + * rewritten. In that case we return immediately causing a new bundle to be + * generated that doesn't have rewrites for those modules. + * + * @param bundle the bundle returned by the bundler + * @param warnings the warnings emitted by the bundler + * @param healState current heal state + * @param circulars circular imports + * @private + */ + private async _processCurrentScript ( + bundle: Buffer, + warnings: Warning[], + healState: HealState, + circulars: Map>, + ) { + // 1. Filter out warnings we've seen before and map them to warnings that + // signal the consequence + const processedWarnings = this._warningsProcessor.process(warnings, { + deferred: healState.deferred, + norewrite: healState.norewrite, + }) + + for (const warning of processedWarnings) { + const s = stringifyWarning(this.baseDirPath, warning) + + switch (warning.consequence) { + case WarningConsequence.Defer: + logError('Encountered warning triggering defer: %s', s) + healState.needDefer.add(warning.location.file) + break + case WarningConsequence.NoRewrite: + logError('Encountered warning triggering no-rewrite: %s', s) + healState.needNorewrite.add(warning.location.file) + break + case WarningConsequence.None: + logDebug('Encountered warning without consequence: %s', s) + break + default: + break + } + } + + // If norewrite is required we actually need to rebuild the bundle so we + // exit early + if (healState.needNorewrite.size > 0) { + return + } + + // 3. Write the bundle so that the workers can read it in order to assemble + // the snapshot script from it + logInfo('Preparing to process current script') + const { bundleHash, bundlePath } = await this._writeBundle(bundle) + + logDebug('Stored bundle file (%s)', bundleHash) + logTrace(bundlePath) + /* START using (bundlePath) */ { + // 4. Obtain the set of modules we need to verify as healthy until no + // more can be verified until a new bundle is created which will + // respect the heal state we're obtaining + for ( + let nextStage = this._findNextStage(healState, circulars); + nextStage.length > 0; + nextStage = this._findNextStage(healState, circulars) + ) { + // 5. Process the module verification in parallel + const promises = nextStage.map(async (key): Promise => { + logDebug('Testing entry in isolation "%s"', key) + // 5.1. The script processor distributes processing modules across + // multiple worker threads + const result = await this._scriptProcessor.processScript({ + bundlePath, + bundleHash, + baseDirPath: this.baseDirPath, + entryFilePath: this.entryFilePath, + entryPoint: `./${key}`, + nodeEnv: this.nodeEnv, + supportTypeScript: this.nodeModulesOnly, + }) + + assert(result != null, 'expected result from script processor') + + // 5.2. Query the outcome and depending on its consequence mark + // modules as healthy, deferred or non-rewritable + switch (result.outcome) { + case 'completed': { + healState.healthy.add(key) + logDebug('Verified as healthy "%s"', key) + break + } + case 'failed:assembleScript': + case 'failed:verifyScript': { + logError('%s script with entry "%s"', result.outcome, key) + logError(result.error!.toString()) + + const warning = this._warningsProcessor.warningFromError( + result.error!, + key, + healState, + ) + + if (warning != null) { + switch (warning.consequence) { + case WarningConsequence.Defer: { + logInfo('Deferring "%s"', key) + healState.needDefer.add(key) + break + } + case WarningConsequence.NoRewrite: { + logInfo( + 'Not rewriting "%s" as it results in incorrect code', + key, + ) + + healState.needNorewrite.add(key) + break + } + case WarningConsequence.None: { + // eslint-disable-next-line no-console + console.error(result.error) + assert.fail('I do not know what to do with this error') + break + } + default: + break + } + } + + break + } + default: + break + } + }) + + await Promise.all(promises) + } + } /* END using (bundlePath) */ + + // 6. Remove the bundle file in order to not flood our /tmp folder + logDebug('Removing bundle file (%s)', bundleHash) + logTrace(bundlePath) + const err = await tryRemoveFile(bundlePath) + + if (err != null) { + logError('Failed to remove bundle file', err) + } + } + + /** + * Creates a bundle providing the modules that should be deferred or not + * rewritten to the bundler. + * + * The bundler will rewrite the code such that deferreds are wrapped inside + * functions and only resolved once accessed. + * The bundler only transpiles code of modules that should not be rewritten + * but doesn't rewrite it in any way. + * + * The resulting bundle is then wrapped inside a snapshot script. + * + * @private + */ + private async _createScript ( + deferred?: Set, + norewrite?: Set, + ): Promise<{ + meta: Metadata + bundle: Buffer + warnings: Warning[] + }> { + const deferredArg = deferred == null ? undefined : Array.from(deferred) + const norewriteArg = norewrite == null ? undefined : Array.from(norewrite) + + try { + const { warnings, meta, bundle } = await createBundleAsync({ + baseDirPath: this.baseDirPath, + entryFilePath: this.entryFilePath, + bundlerPath: this.bundlerPath, + nodeModulesOnly: this.nodeModulesOnly, + sourcemap: false, + includeStrictVerifiers: true, + deferred: deferredArg, + norewrite: norewriteArg, + supportTypeScript: this.nodeModulesOnly, + }) + + return { warnings, meta: meta as Metadata, bundle } + } catch (err) { + logError('Failed creating initial bundle') + throw err + } + } + + /** + * Finds the next set modules that we should verify to be healthy or not or + * empty if no more can be verified. + * + * @param healState current heal state + * @param circulars circular imports + * @private + */ + private _findNextStage ( + healState: HealState, + circulars: Map>, + ) { + if (healState.processedLeaves) { + return this._findVerifiables(healState, circulars) + } + + healState.processedLeaves = true + const nextStage = this._findLeaves(healState) + + return nextStage.length === 0 ? this._findVerifiables(healState, circulars) : nextStage + } + + /** + * Finds all modules that import no other modules. + * This is only called the very first time during the doctor process. + * + * @param healState current heal state + * @private + */ + private _findLeaves (healState: HealState) { + const leaves: string[] = [] + + for (const [key, { imports }] of Object.entries(healState.meta.inputs)) { + if ( + healState.healthy.has(key) || + healState.deferred.has(key) || + healState.norewrite.has(key) + ) { + continue + } + + if (imports.length === 0) leaves.push(key) + } + + return leaves + } + + /** + * Finds modules that only depend on previously handled modules and thus can + * be verified at this point. + * + * If no such modules are found it returns an empty array. + * + * @param healState current heal state + * @param circulars circular imports + * @private + */ + private _findVerifiables ( + healState: HealState, + circulars: Map>, + ) { + const verifiables: string[] = [] + + for (const [key, { imports }] of Object.entries(healState.meta.inputs)) { + if (healState.needNorewrite.has(key)) continue + + if (healState.needDefer.has(key)) continue + + if ( + this._wasHandled( + key, + healState.healthy, + healState.deferred, + healState.norewrite, + ) + ) { + continue + } + + const circular = circulars.get(key) ?? new Set() + const allImportsHandledOrCircular = imports.every( + (x) => { + return this._wasHandled( + x.path, + healState.healthy, + healState.deferred, + healState.norewrite, + ) || circular.has(x.path) + }, + ) + + if (allImportsHandledOrCircular) verifiables.push(key) + } + + return verifiables + } + + private _wasHandled ( + key: string, + healthy: Set, + deferred: Set, + norewrite: Set, + ) { + return healthy.has(key) || deferred.has(key) || norewrite.has(key) + } +} diff --git a/tooling/v8-snapshot/src/doctor/warnings-processor.ts b/tooling/v8-snapshot/src/doctor/warnings-processor.ts new file mode 100644 index 0000000000..4d3999c989 --- /dev/null +++ b/tooling/v8-snapshot/src/doctor/warnings-processor.ts @@ -0,0 +1,235 @@ +import type { CreateBundleResult } from '@tooling/packherd' +import path from 'path' + +/** + * Marker that the + * {@link https://github.com/cypress-io/esbuild/tree/thlorenz/snap | snapshot bundler} + * includes to indicate that rewriting the module's code resulted in invalid JavaScript. + * @category snapshot + */ +export const SNAPSHOT_REWRITE_FAILURE = '[SNAPSHOT_REWRITE_FAILURE]' + +/** + * Marker that the + * {@link https://github.com/cypress-io/esbuild/tree/thlorenz/snap | snapshot bundler} + * includes to indicate that the module includes code that would cause issues + * during snapshot generation and thus needs to be deferred. + * @category snapshot + */ +export const SNAPSHOT_CACHE_FAILURE = '[SNAPSHOT_CACHE_FAILURE]' + +/** + * This error is raised for missing Node.js globals like Buffer + * @category snapshot + */ +export const REFERENCE_ERROR_DEFER = + /^(Reference|Type)?Error: (.+ is not defined|Cannot read property|Cannot read properties)/i + +/** + * This error is raised due to missing functions, most likely due to incorrect rewrite + * Note that the `__.+__ is not defined` part catches rewrite errors that led to a functions + * replacement to be used before defined or similar + * @category snapshot + */ +export const REFERENCE_ERROR_NOREWRITE = + /^(Reference|Type)?Error: (.+ is not a function|__.+__ is not defined)/i + +/** + * The history of warnings we processed already. + * We keep it in order to avoid logging the same warning over and over + * @category snapshot + */ +export type WarningsProcessHistory = { + deferred: Set + norewrite: Set +} + +/** + * The consequence of a specific type of warning. + * + * - Defer: we need to defer the module in order to prevent it from loading + * - NoRewrite: we should not rewrite the module as it results in invalid code + * - None: no consequence, i.e. a light weight warning for informative purposes only + * @category snapshot + */ +export enum WarningConsequence { + Defer, + NoRewrite, + None, +} + +/** + * The warning as we receive it from the bundler. + * See {@link CreateBundleResult} warnings. + * @category snapshot + */ +export type Warning = CreateBundleResult['warnings'][number] + +/** + * A {@link Warning} that has been processed to resolve the location in the + * file that triggered the warning as well as the consequence. + * @category snapshot + */ +export type ProcessedWarning = { + location: Warning['location'] & { fullPath: string } + consequence: WarningConsequence + text: Warning['text'] +} + +/** + * Converts a {@link ProcessedWarning} into a summary that we can log to the + * console. + * @category snapshot + */ +export function stringifyWarning ( + projectBaseDir: string, + warning: ProcessedWarning, +) { + const loc = warning.location + const p = path.relative(projectBaseDir, loc.fullPath) + + return ` + ${warning.text} at ./${p}:${loc.line}:${loc.column} (${loc.file}) + | ${loc.line} ${warning.location.lineText} + | ${' '.repeat(loc.column + loc.line.toString().length)} ^ + ` +} + +/** + * Processes raw {@link Warning}s emitted from the snapshot bundler. + * + * Determines what {@link WarningConsequence} for the module where the it + * originated the warning has as well as preparing it for printing to the + * console. + * @category snapshot + */ +export class WarningsProcessor { + /** + * Creates an instance of the {@link WarningsProcessor}. + * + * @param _projectBasedir root of the project which we are currently snapshotting + * @param _warningsWithoutConsequenceReported the warnings of no consequence reported earlier + * @category snapshot + */ + constructor ( + private readonly _projectBasedir: string, + private readonly _warningsWithoutConsequenceReported: Set = new Set(), + ) {} + + /** + * Takes a list of warnings as well as a history of warnings processed previously. + * It then processes each warning in a {@link ProcessedWarning}, filters out + * the ones already processed previously and returns the remaining ones. + * + * The consequence of the warning is determined by parsing its {@link + * Warning} text via regexes and string comparisons and thus is highly + * dependent on the format in which the + * {@link https://github.com/cypress-io/esbuild/tree/thlorenz/snap | snapshot bundler} emits them. + * + * @param warnings warnings emitted by the snapshot script bundler + * @param hist history of previously processed warnings + * @category snapshot + */ + public process ( + warnings: Warning[], + hist: WarningsProcessHistory, + ): ProcessedWarning[] { + return warnings + .map((x) => this._processWarning(x, hist)) + .filter( + (x: ProcessedWarning | null): boolean => x != null, + ) as ProcessedWarning[] + } + + private _processWarning ( + warning: Omit, + hist: WarningsProcessHistory, + ): ProcessedWarning | null { + // We cannot do anything useful if we don't know what file the warning pertains to + if (warning.location == null) return null + + const fullPath = path.resolve(this._projectBasedir, warning.location.file) + const location = Object.assign({}, warning.location, { fullPath }) + const text = warning.text.trim() + + // NOTE: we are checking for rewrite indicators first as the regexes overlap + + // prettier-ignore + const consequence = + text.includes(SNAPSHOT_REWRITE_FAILURE) + || REFERENCE_ERROR_NOREWRITE.test(text) ? WarningConsequence.NoRewrite + : text.includes(SNAPSHOT_CACHE_FAILURE) + || REFERENCE_ERROR_DEFER.test(text) ? WarningConsequence.Defer + : WarningConsequence.None + + // We don't know what this warning means, just pass it along with no consequence + return this._nullIfAlreadyProcessed( + { + location, + text, + consequence, + }, + hist, + ) + } + + private _nullIfAlreadyProcessed ( + x: ProcessedWarning, + { deferred, norewrite }: WarningsProcessHistory, + ) { + if (x == null) return null + + switch (x.consequence) { + case WarningConsequence.Defer: { + if (deferred.has(x.location.file)) return null + + return x + } + case WarningConsequence.NoRewrite: { + if (norewrite.has(x.location.file)) return null + + return x + } + case WarningConsequence.None: { + if (this._warningsWithoutConsequenceReported.has(x.location.file)) { + return null + } + + this._warningsWithoutConsequenceReported.add(x.location.file) + + return x + } + default: + return null + } + } + + /** + * Converts an error that was raised during verification of the script via + * the {@link SnapshotVerifier} to a {@link ProcessedWarning}. + * + * @param err the error + * @param file relative path to the file from which the error originated + * @param hist history of previously processed warnings + * @category snapshot + */ + warningFromError (err: Error, file: string, hist: WarningsProcessHistory) { + let location: Warning['location'] = { + file, + namespace: 'file:', + line: 1, + column: 0, + length: 0, + lineText: '', + suggestion: '', + } + let text = err.toString() + + let warning: Omit = { + location, + text, + } + + return this._processWarning(warning, hist) + } +} diff --git a/tooling/v8-snapshot/src/generator/blueprint.ts b/tooling/v8-snapshot/src/generator/blueprint.ts new file mode 100644 index 0000000000..80f8cd6b7f --- /dev/null +++ b/tooling/v8-snapshot/src/generator/blueprint.ts @@ -0,0 +1,224 @@ +import fs from 'fs' +import path from 'path' +import { BUNDLE_WRAPPER_OPEN } from './create-snapshot-script' +import { processSourceMap } from '../sourcemap/process-sourcemap' +import debug from 'debug' +import { forwardSlash } from '../utils' + +const logDebug = debug('cypress:snapgen:debug') + +function read (part: string, indent = ' ') { + const p = require.resolve(`../blueprint/${part}`) + const s = fs.readFileSync(p, 'utf8') + + return s.split('\n').join(`\n${indent}`) +} + +const globals = read('globals') +const strictGlobals = read('globals-strict') +const customRequire = read('custom-require') +const setGlobals = read('set-globals') + +/** + * Configures the generation of the snapshot script from the _Blueprint_ + * templates. + * + * @property processPlatform value to return during snapshot creation for `process.platform` + * @property processNodeVersion value to return during snapshot creation for `process.version` + * @property mainModuleRequirePath relative path to the module we consider the + * main entry point. + * NOTE: the {@link SnapshotDoctor} changes this in order to verify multiple + * modules using the same bundle. + * @property auxiliaryData data to embed with the snapshot + * @property customRequireDefinitions a hash of module initializer functions + * that are bundled + * @property includeStrictVerifiers see {@link GenerationOpts} includeStrictVerifiers + * @property nodeEnv see {@link GenerationOpts} nodeEnv + * @property basedir the base dir of the project for which we are creating the + * snapshot + * @property sourceMap {@link Buffer} with content of raw sourcemaps + * @property supportTypeScript see {@link GenerationOpts} supportTypeScript + */ +export type BlueprintConfig = { + processPlatform: string + processNodeVersion: string + mainModuleRequirePath: string + auxiliaryData: string + customRequireDefinitions: Buffer + includeStrictVerifiers: boolean + nodeEnv: string + basedir: string + sourceMap: Buffer | undefined + processedSourceMapPath: string | undefined + supportTypeScript: boolean +} + +const pathSep = path.sep === '\\' ? '\\\\' : path.sep + +/** + * Generates the snapshot script from the templates found inside `./blueprint` + * and the provided {@link BlueprintConfig} and returns it a long with the + * processed sourcemaps. + * + * When rendering the snapshot script we take care of the following + * (in order of occurrence in the rendered script): + * + * 1. We embedd the path separator so that we have it available inside the + * snapshot without having to refer to the `path` module + * + * 2. We also include helper methods like `cannotAccess` which are invoked + * whenever a feature of JavaScript is accessed that would cause issues + * when snapshotting. + * We use this to throw an error during snapshot script verification in + * order to signal to the doctor that something went wrong. + * Additionally it allows us to debug any issues in a better way than + * looking at a `mksnapshot` tool Segfault. + * + * 3. Additionally we stub out a minimal version of `process` to be used + * while snapshotting + * + * 4. In order to catch all problems during snapshot verification we include + * stricter verifiers from `./blueprint/globals-strict.js` while we are + * running the doctor. + * We also set `require.isStrict = true` to query it inside + * ./blueprint/custom-require.js in order to optimize error messages for + * the specific context. + * When we create the final snapshot script which will be snapshotted we + * include less stricter versions of globals from ./blueprint/globals.js. + */ +export function scriptFromBlueprint (config: BlueprintConfig): { + script: Buffer + processedSourceMap: string | undefined +} { + const { + processPlatform, + processNodeVersion, + mainModuleRequirePath, + auxiliaryData, + customRequireDefinitions, + includeStrictVerifiers, + nodeEnv, + basedir, + sourceMap, + supportTypeScript, + } = config + + const normalizedMainModuleRequirePath = forwardSlash(mainModuleRequirePath) + + const wrapperOpen = Buffer.from( + ` +const PATH_SEP = '${pathSep}' +var snapshotAuxiliaryData = ${auxiliaryData} + +function generateSnapshot() { + // + // + // + function cannotAccess(proto, prop) { + return function () { + throw 'Cannot access ' + proto + '.' + prop + ' during snapshot creation' + } + } + function getPrevent(proto, prop) { + return { + get: cannotAccess(proto, prop) + } + } + + let process = {} + Object.defineProperties(process, { + platform: { + value: '${processPlatform}', + enumerable: false, + }, + argv: { + value: [], + enumerable: false, + }, + env: { + value: { + NODE_ENV: '${nodeEnv}', + }, + enumerable: false, + }, + version: { + value: '${processNodeVersion}', + enumerable: false, + }, + versions: { + value: { node: '${processNodeVersion}' }, + enumerable: false, + }, + nextTick: getPrevent('process', 'nextTick') + }) + + function get_process() { + return process + } + // + // + // + + ${globals} + ${includeStrictVerifiers ? strictGlobals : ''} +`, + 'utf8', + ) + const wrapperClose = Buffer.from( + ` + ${customRequire} + ${includeStrictVerifiers ? 'require.isStrict = true' : ''} + + customRequire(${normalizedMainModuleRequirePath}, ${normalizedMainModuleRequirePath}) + return { + customRequire, + setGlobals: ${setGlobals}, + } +} + +var snapshotResult = generateSnapshot.call({}) +var supportTypeScript = ${supportTypeScript} +generateSnapshot = null +`, + 'utf8', + ) + + const buffers = [wrapperOpen, customRequireDefinitions, wrapperClose] + + // Now we rendered the prelude and can calculate the bundle line offset and thus + // process and include source maps. Since it is expensive we only do this if we + // have a valid sourcemap. + let offsetToBundle: number | undefined = undefined + + let processedSourceMap: string | undefined + + if (sourceMap != null) { + offsetToBundle = + newLinesInBuffer(wrapperOpen) + newLinesInBuffer(BUNDLE_WRAPPER_OPEN) + + processedSourceMap = processSourceMap(sourceMap, basedir, offsetToBundle) + + if (processedSourceMap != null && config.processedSourceMapPath != null) { + logDebug( + '[sourcemap] writing sourcemap to "%s"', + config.processedSourceMapPath, + ) + + fs.writeFileSync(config.processedSourceMapPath, processedSourceMap) + } + } + + return { script: Buffer.concat(buffers), processedSourceMap } +} + +const CR_CODE = '\n'.charCodeAt(0) + +/** + * Fast way to count new lines in a buffer. + * Converting to string and splitting on new-line would be slow. + */ +function newLinesInBuffer (buf: Buffer) { + const newLines = buf.filter((x) => x === CR_CODE) + + return newLines.length +} diff --git a/tooling/v8-snapshot/src/generator/create-snapshot-bundle.ts b/tooling/v8-snapshot/src/generator/create-snapshot-bundle.ts new file mode 100644 index 0000000000..4298614102 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/create-snapshot-bundle.ts @@ -0,0 +1,68 @@ +import { createBundleAsync } from './create-snapshot-script' +import type { CreateSnapshotScriptOpts, Metadata } from '../types' + +const prelude = `function get_process() { + if (typeof process === 'undefined') return undefined + return process +} +function get_document() { + if (typeof document === 'undefined') return undefined + return document +} + +function get_global() { + if (typeof global === 'undefined') return undefined + return global +} + +function get_window() { + if (typeof window === 'undefined') return undefined + return window +} + +function get_console() { + if (typeof console === 'undefined') return undefined + return console +} + +let __pathResolver = {} +Object.defineProperties(__pathResolver, { + resolve: { + value: function resolve(_local) { + throw new Error( + '[SNAPSHOT_CACHE_FAILURE] Cannot resolve path in the snapshot' + ) + }, + enumerable: false, + }, +}) + +function __resolve_path(local) { + __pathResolver.resolve(local) +} +` + +const postlude = ` +module.exports = __commonJS` + +export type ExportScript = { snapshotBundle: string, meta: Metadata, bundle: Buffer } + +/** + * Similar to see {@link createSnapshotScript}, but creates a bundle instead which provides all + * definitions via its export. + * This is mostly used when diagnosing/debugging why a particular snapshot script has problems. + * + * @param opts + * @return the paths and contents of the originally created bundle and related metadata + * as well as the version which includes module exports. + */ +export async function createExportScript ( + opts: CreateSnapshotScriptOpts, +): Promise { + const { bundle, meta } = await createBundleAsync(opts) + const snapshotBundle = `${prelude} +${bundle.toString()} +${postlude}` + + return { snapshotBundle, meta: meta as Metadata, bundle } +} diff --git a/tooling/v8-snapshot/src/generator/create-snapshot-script.ts b/tooling/v8-snapshot/src/generator/create-snapshot-script.ts new file mode 100644 index 0000000000..766b44a624 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/create-snapshot-script.ts @@ -0,0 +1,404 @@ +import debug from 'debug' +import { strict as assert } from 'assert' +import { readFileSync } from 'fs' +import path from 'path' +import { execSync, ExecSyncOptions, StdioOptions } from 'child_process' +import { BlueprintConfig, scriptFromBlueprint } from './blueprint' +import type { CreateBundleOpts, CreateSnapshotScriptOpts, Metadata } from '../types' +import { + CreateBundle, + packherd, + CreateBundleOpts as PackherdCreateBundleOpts, + CreateBundleResult, + CreateBundleSourcemap, +} from '@tooling/packherd' +import { dependencyMapArrayFromInputs } from '../meta/dependency-map' +import { writeConfigJSON } from './write-config-json' +import { tryRemoveFileSync } from '../utils' + +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') +const logTrace = debug('cypress:snapgen:trace') +const logError = debug('cypress:snapgen:error') + +const keepConfig = process.env.SNAPSHOT_KEEP_CONFIG != null + +/** + * The comment injected to denote the start of the bundle content included with + * the snapshot script. + * @category snapshot + */ +export const BUNDLE_WRAPPER_OPEN = Buffer.from( + ` + // + // + // +`, + 'utf8', +) + +/** + * The comment injected to denote the end of the bundle content included with + * the snapshot script. + * Additionally it assigns `customRequire.definitions` to the bundle module + * hash. + * @category snapshot + */ +export const BUNDLE_WRAPPER_CLOSE = Buffer.from( + ` + // + // + // + + customRequire.definitions = __commonJS +`, + 'utf8', +) + +/** + * The function type to create a snapshot script which receives the {@link + * CreateSnapshotScriptOpts} as configuration. + * @category snapshot + */ +export type CreateSnapshotScript = ( + opts: CreateSnapshotScriptOpts +) => Promise<{ snapshotScript: string }> + +const requireDefinitions = (bundle: Buffer, entryPoint: string) => { + const code = Buffer.concat([ + BUNDLE_WRAPPER_OPEN, + bundle, + BUNDLE_WRAPPER_CLOSE, + ]) + + return { + code, + mainModuleRequirePath: entryPoint, + } +} + +function getMainModuleRequirePath (basedir: string, entryFullPath: string) { + logDebug('Obtaining main module require path given', { + basedir, + entryFullPath, + }) + + const relPath = path.relative(basedir, entryFullPath) + + return `./${relPath}` +} + +/** + * Assembles a snapshot script for the provided bundle configured for the + * provided meta data, basedir and opts. + * + * @param bundle contents of the bundle created previously + * @param basedir project root directory + * @param entryFilepath the path to the file to use as the entry to the app + * direct/indirect dependents are either included directly or a discoverable by + * following the imports present + * @param opts configure how the script is generated and assembled and are + * mainly a subset of {@link GenerationOpts} + * + * @return the contents of the assembled script as well as the source map + * preprocessed + * + * @category snapshot + */ +export function assembleScript ( + bundle: Buffer, + basedir: string, + entryFilePath: string, + opts: { + auxiliaryData?: Record + entryPoint?: string + includeStrictVerifiers?: boolean + sourceMap?: Buffer + baseSourcemapExternalPath: string | undefined + processedSourcemapExternalPath: string | undefined + nodeEnv: string + resolverMap?: Record + meta?: Metadata + supportTypeScript: boolean + }, +): { script: Buffer, processedSourceMap?: string } { + const includeStrictVerifiers = opts.includeStrictVerifiers ?? false + const auxiliaryData = Object.assign({}, opts.auxiliaryData) + + // Prefer the provided resolver map over the one found in the current meta data. + // This allows us to use the app entry file when generating this map and another + // snapshotting specific entry, possibly generated, to create the snapshot. + const resolverMap = opts.resolverMap ?? opts.meta?.resolverMap + + if (resolverMap != null) { + if (logDebug.enabled) { + logDebug( + 'Embedding resolver map with %d entries into snapshot', + Object.keys(resolverMap).length, + ) + } + + auxiliaryData.resolverMap = resolverMap + } + + // 1. Prepare the resolver map to be included in the snapshot and embed it via auxiliaryData + if (opts.meta?.inputs != null) { + const mapArray = dependencyMapArrayFromInputs(opts.meta.inputs) + + logDebug('Embedding dependency map into snapshot') + auxiliaryData.dependencyMapArray = mapArray + } + + const auxiliaryDataString = JSON.stringify(auxiliaryData) + + // 2. Determine the path of the main module which needs to be required in + // order to trigger initialization o the modules we want to embedd during + // snapshot creation + const mainModuleRequirePath = + opts.entryPoint ?? getMainModuleRequirePath(basedir, entryFilePath) + + assert( + mainModuleRequirePath != null, + 'metadata should have exactly one entry point', + ) + + // 3. Prepare the bundled definitions for inclusion in the snapshot script + const defs = requireDefinitions(bundle, mainModuleRequirePath) + + // 4. Prepare the config which we'll use to generate the snapshot script from + // the ./blueprint templates + const config: BlueprintConfig = { + processPlatform: process.platform, + processNodeVersion: process.version, + mainModuleRequirePath: JSON.stringify(defs.mainModuleRequirePath), + auxiliaryData: auxiliaryDataString, + customRequireDefinitions: defs.code, + includeStrictVerifiers, + sourceMap: opts.sourceMap, + nodeEnv: opts.nodeEnv, + basedir, + processedSourceMapPath: opts.processedSourcemapExternalPath, + supportTypeScript: opts.supportTypeScript, + } + + // 5. Finally return the rendered script buffer and optionally processed + // sourcemaps + return scriptFromBlueprint(config) +} + +/** + * Creates bundle and meta file via the provided bundler written in Go + * and reads and returns its contents asynchronously. + * + * @param opts + * @return promise of the paths and contents of the created bundle and related metadata + * @category snapshot + */ +export async function createBundleAsync (opts: CreateBundleOpts): Promise<{ + warnings: CreateBundleResult['warnings'] + meta: Metadata + bundle: Buffer + sourceMap?: Buffer +}> { + return createBundle(opts) +} + +export type SnapshotScript = { snapshotScript: Buffer, meta: Metadata, bundle: Buffer } + +/** + * Creates a bundle for the provided entry file and then assembles a + * snapshot script from them. + * + * @param opts + * @return the paths and contents of the created bundle and related metadata + * as well as the created snapshot script + * @category snapshot + */ +export async function createSnapshotScript ( + opts: CreateSnapshotScriptOpts, +): Promise { + const { bundle, sourceMap, meta } = await createBundleAsync(opts) + + logDebug('Assembling snapshot script') + const { script } = assembleScript( + bundle, + opts.baseDirPath, + opts.entryFilePath, + { + auxiliaryData: opts.auxiliaryData, + includeStrictVerifiers: opts.includeStrictVerifiers, + sourceMap, + baseSourcemapExternalPath: opts.baseSourcemapExternalPath, + processedSourcemapExternalPath: opts.processedSourcemapExternalPath, + nodeEnv: opts.nodeEnv, + resolverMap: opts.resolverMap, + meta, + supportTypeScript: opts.supportTypeScript, + }, + ) + + return { snapshotScript: script, meta: meta as Metadata, bundle } +} + +function stringToBuffer (contents: string) { + return Buffer.from(contents, 'hex') +} + +/** + * This creates the {@link CreateBundle} function that we provide to packherd. + * + * It combines the provided {@link CreateBundleOpts} and {@link + * PackherdCreateBundleOpts} in order to configure how that step is performed. + * @category snapshot + */ +const makePackherdCreateBundle: (opts: CreateBundleOpts) => CreateBundle = + (opts: CreateBundleOpts) => { + return (popts: PackherdCreateBundleOpts) => { + const basedir = path.resolve(process.cwd(), opts.baseDirPath) + // 1. Write the config to a file so that the bundler can pick it up + const { configPath, config } = writeConfigJSON( + opts, + popts.entryFilePath, + basedir, + opts.baseSourcemapExternalPath, + ) + + // 2. Launch bundler providing it the path to the config file + const cmd = `${opts.bundlerPath} ${configPath}` + + logDebug('Running "%s"', cmd) + logTrace(config) + + // the returned bundle content could be very large, we're making sure we don't exceed the buffer size + const _MB = 1024 * 1024 + const execOpts: ExecSyncOptions = Object.assign( + { + maxBuffer: 8000 * _MB, + cwd: basedir, + env: { + NODE_OPTIONS: '--max-old-space-size=16384', + }, + }, + // Windows doesn't properly support piping stdio + process.platform === 'win32' + ? {} + : { stdio: ['pipe', 'pipe', 'pipe'] as StdioOptions }, + ) + + try { + // 3. Receive the JSON encoded result via stdout and parse it + const stdout = execSync(cmd, execOpts) + const { warnings, outfiles, metafile } = JSON.parse(stdout.toString()) + + // 4. verify we got what we expected + assert(outfiles.length >= 1, 'need at least one outfile') + assert(metafile != null, 'expected metafile to be included in result') + assert( + metafile.contents != null, + 'expected metafile to include contents buffer', + ) + + const bundleContents = outfiles[0].contents + const bundle = { contents: stringToBuffer(bundleContents) } + + // Sourcemaps are optional + const includedSourcemaps = outfiles.length === 2 + + if (opts.sourcemap) { + assert( + includedSourcemaps, + 'should include sourcemap when sourcemap is configured', + ) + } else { + assert( + !includedSourcemaps, + 'should only include sourcemap when sourcemap is configured', + ) + } + + assert( + opts.sourcemap !== true || opts.baseSourcemapExternalPath != null, + 'should include sourcemapExternalPath when sourcemap option is set', + ) + + if (opts.sourcemap) { + logInfo( + 'External sourcemaps written to "%s"', + opts.baseSourcemapExternalPath, + ) + } + + // 5. Optionally write the sourcemap to a file + let sourceMap: CreateBundleSourcemap | undefined = undefined + + if (opts.baseSourcemapExternalPath != null) { + try { + sourceMap = { + contents: readFileSync(opts.baseSourcemapExternalPath), + } + } catch (err: any) { + logError( + 'Failed to read sourcemap from "%s"', + opts.baseSourcemapExternalPath, + ) + } + } + + // 6. Parse out metadata created as part of the bundling process + const metadata: Metadata = JSON.parse( + stringToBuffer(metafile.contents).toString(), + ) + // 7. Piece together the result and return it + const result: CreateBundleResult = { + warnings, + outputFiles: [bundle], + sourceMap, + metafile: metadata, + } + + return Promise.resolve(result) + } catch (err: any) { + if (err.stderr != null) { + logError(err.stderr.toString()) + } + + if (err.stdout != null) { + logDebug(err.stdout.toString()) + } + + logError(err) + + return Promise.reject(new Error(`Failed command: "${cmd}"`)) + } finally { + if (!keepConfig) { + const err = tryRemoveFileSync(configPath) + + // We log the error here, but don't fail since the config file might not have been created and thus removing it + // fails. Also removing this temp file is not essential to snapshot creation. + if (err != null) { + logError(err) + } + } else { + logInfo('Kept config at %s', configPath) + } + } + } + } + +/** + * Creates a bundle via {@link https://github.com/thlorenz/packherd} + * Note that we override the `createBundle` function in order to use our custom + * bundler and handle extracting the results from JSON passed via `stdout`. + * + * @param opts configure how the bundle is generated {@link CreateBundleOpts} + * @category snapshot + */ +async function createBundle (opts: CreateBundleOpts) { + const { warnings, bundle, sourceMap, meta } = await packherd({ + entryFile: opts.entryFilePath, + nodeModulesOnly: opts.nodeModulesOnly, + createBundle: makePackherdCreateBundle(opts), + }) + + return { warnings, bundle, sourceMap, meta: meta as Metadata } +} diff --git a/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-dependencies.ts b/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-dependencies.ts new file mode 100644 index 0000000000..eb2b92817a --- /dev/null +++ b/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-dependencies.ts @@ -0,0 +1,138 @@ +import debug from 'debug' +import path from 'path' +import { promises as fs } from 'fs' +import { createBundleAsync } from './create-snapshot-script' +import type { CreateBundleOpts, Metadata } from '../types' +import { getBundlerPath } from '../utils' + +const snapshotUtils = require('../../package.json').name +const logInfo = debug('cypress:snapgen:info') +const logError = debug('cypress:snapgen:error') + +type PathsMapper = (s: string) => string +const identityMapper: PathsMapper = (s: string) => s + +class SnapshotEntryGeneratorViaWalk { + readonly bundlerPath: string + constructor ( + readonly entryFile: string, + readonly projectBaseDir: string, + readonly fullPathToSnapshotEntry: string, + readonly nodeModulesOnly: boolean, + readonly pathsMapper: PathsMapper, + ) { + this.bundlerPath = getBundlerPath() + } + + async createSnapshotScript () { + const meta = await this.getMetadata() + const paths = this._resolveRelativePaths(meta) + + paths.sort() + + return paths + .map((x) => x.replace(/\\/g, '/')) + .map((x) => `exports['${x}'] = require('${x}')`) + .join('\n') + } + + private _resolveRelativePaths (meta: Metadata) { + let fullPaths = Object.values(meta.inputs) + .map((x) => x.fileInfo.fullPath) + .filter((x) => !x.includes(`/${snapshotUtils}/`)) + + if (this.nodeModulesOnly) { + fullPaths = fullPaths.filter((x) => x.includes('node_modules')) + } + + return fullPaths + .map((x) => path.relative(path.dirname(this.fullPathToSnapshotEntry), x)) + .map((x) => x.replace(/^node_modules\//, './node_modules/')) + .map(this.pathsMapper) + } + + async getMetadata (): Promise { + const opts: CreateBundleOpts = { + bundlerPath: this.bundlerPath, + baseDirPath: this.projectBaseDir, + entryFilePath: this.entryFile, + nodeModulesOnly: this.nodeModulesOnly, + sourcemap: false, + supportTypeScript: this.nodeModulesOnly, + } + const { meta } = await createBundleAsync(opts) + + return meta as Metadata + } +} + +const DEFAULT_GENERATE_CONFIG: Partial & { + nodeModulesOnly: boolean + pathsMapper: PathsMapper +} = { + nodeModulesOnly: true, + pathsMapper: identityMapper, +} + +type GenerateDepsDataOpts = { + entryFile: string + nodeModulesOnly?: boolean + pathsMapper?: PathsMapper +} + +export type BundlerMetadata = Metadata & { projectBaseDir: string } + +export async function generateBundlerMetadata ( + projectBaseDir: string, + fullPathToSnapshotEntry: string, + config: GenerateDepsDataOpts, +): Promise { + const fullConf = Object.assign({}, DEFAULT_GENERATE_CONFIG, config) + const generator = new SnapshotEntryGeneratorViaWalk( + fullConf.entryFile, + projectBaseDir, + fullPathToSnapshotEntry, + fullConf.nodeModulesOnly, + fullConf.pathsMapper, + ) + const meta = await generator.getMetadata() + + return { ...meta, projectBaseDir } +} + +/** + * Obtains all dependencies via `esbuild` metadata + * + * @param projectRoot root of the project whose dependencies we are collecting + * @param fullPathToSnapshotEntry path to the file to which to write the + * snapshot entry which will include all deps + * @param partial_opts + */ +export async function generateSnapshotEntryFromEntryDependencies ( + projectBaseDir: string, + fullPathToSnapshotEntry: string, + config: GenerateDepsDataOpts, +) { + const fullConf = Object.assign({}, DEFAULT_GENERATE_CONFIG, config) + const generator = new SnapshotEntryGeneratorViaWalk( + fullConf.entryFile, + projectBaseDir, + fullPathToSnapshotEntry, + fullConf.nodeModulesOnly, + fullConf.pathsMapper, + ) + + try { + const script = await generator.createSnapshotScript() + + logInfo( + 'Writing snapshot script (len: %s) to "%s"', + script.length, + fullPathToSnapshotEntry, + ) + + await fs.writeFile(fullPathToSnapshotEntry, script, 'utf8') + } catch (err) { + logError(err) + } +} diff --git a/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-yarn.ts b/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-yarn.ts new file mode 100644 index 0000000000..e8370f940a --- /dev/null +++ b/tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-yarn.ts @@ -0,0 +1,139 @@ +import { promisify } from 'util' +import { exec as origExec } from 'child_process' +import { promises as fs } from 'fs' +const exec = promisify(origExec) + +import debug from 'debug' + +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') +const logError = debug('cypress:snapgen:error') + +type YarnTreeChild = { + name: string + color: 'dim' | 'bold' + shadow: boolean +} + +type YarnTree = { + name: string + children: YarnTreeChild[] +} + +type YarnList = { + type: 'tree' + data: { + type: 'list' + trees: YarnTree[] + } +} + +type ExtractDependenciesOpts = { toplevelOnly: boolean } +const DEFAULT_EXTRACT_OPTS: ExtractDependenciesOpts = { + toplevelOnly: false, +} + +function depWithoutVersion (dep: string): string { + const parts = dep.split('@') + + return parts.length > 2 + ? // @babel/code-frame@^7.10.4 + `@${ parts[0] }${parts[1]}` + : // convert-source-map@^1.7.0 + parts[0] +} + +/** + * Extracts dependencies from a dep list obtained via `yarn`. + */ +export function extractDependencies ( + yarnList: YarnList, + partial_opts?: Partial, +) { + const opts = Object.assign({}, DEFAULT_EXTRACT_OPTS, partial_opts) + + const deps = yarnList.data.trees.reduce((acc: string[], x: YarnTree) => { + acc.push(depWithoutVersion(x.name)) + if (!opts.toplevelOnly) { + for (const childDep of x.children.map((x) => depWithoutVersion(x.name))) { + acc.push(childDep) + } + } + + return acc + }, []) + + return deps +} + +type CreateSnapshotScriptOpts = ExtractDependenciesOpts +const DEFAULT_SNAPSHOT_SCRIPT_OPTS = Object.assign({}, DEFAULT_EXTRACT_OPTS) + +/** + * Creates a snapshot script from the provided list of deps obtained via `yarn`. + */ +export function createSnapshotScriptFromYarnScript ( + yarnList: YarnList, + partial_opts?: Partial, +) { + const opts = Object.assign({}, DEFAULT_SNAPSHOT_SCRIPT_OPTS, partial_opts) + const deps = extractDependencies(yarnList, opts) + + return deps.map((x) => `exports['${x}'] = require('${x}')`).join('\n') +} + +type GenerateSnapshotScriptOpts = CreateSnapshotScriptOpts & { prod: boolean } +const DEFAULT_GENERATE_SCRIPT_OPTS = Object.assign( + {}, + DEFAULT_SNAPSHOT_SCRIPT_OPTS, + { prod: true }, +) + +/** + * An alternative to obtaining dependencies which uses `yarn` and generating + * a snapshot entry file from them. + * At this point it is not used. + * + * @param projectRoot root of the project whose dependencies we are collecting + * @param fullPathToSnapshotEntry path to the file to which to write the + * snapshot entry + * @param partial_opts + */ +export async function generateSnapshotEntryFromYarnList ( + projectRoot: string, + fullPathToSnapshotEntry: string, + partial_opts?: Partial, +) { + const opts: GenerateSnapshotScriptOpts = Object.assign( + {}, + DEFAULT_GENERATE_SCRIPT_OPTS, + partial_opts, + ) + + logInfo('Running yarn list') + const args = ['list', '--json'] + + if (opts.prod) { + args.push('--prod') + } + + const cmd = `yarn ${args.join(' ')}` + + logDebug('Running "%s"', cmd) + try { + const result = await exec(cmd, { cwd: projectRoot }) + const json = result.stdout + const yarnList: YarnList = JSON.parse(json) + const script = createSnapshotScriptFromYarnScript(yarnList, opts) + + logInfo( + 'Writing snapshot script (len: %s) to "%s"', + script.length, + fullPathToSnapshotEntry, + ) + + await fs.writeFile(fullPathToSnapshotEntry, script, 'utf8') + } catch (err) { + logError(err) + } +} diff --git a/tooling/v8-snapshot/src/generator/snapshot-generator-flags.ts b/tooling/v8-snapshot/src/generator/snapshot-generator-flags.ts new file mode 100644 index 0000000000..3330d990d4 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/snapshot-generator-flags.ts @@ -0,0 +1,39 @@ +/** + * Bitwise flags which means they can be combined, + * i.e. `Flags.Script | Flags.DoctorFresh` + * + * See {@link GeneratorFlags}. + */ +// prettier-ignore +export enum Flag { + None = 0x0000, + /** if set a snapshot script is generated */ + Script = 0x0001, + /** if set a snapshot binary is generated from the snapshot script */ + MakeSnapshot = 0x0002, + /** + * if set the doctor will use previously collected information about which + * modules should be defererred, etc. as long as the yarn.lock file didn't + * change + */ + ReuseDoctorArtifacts = 0x0004, +} + +/** + * API to {@link SnapshotGenerator} {@link Flag}s. + */ +export class GeneratorFlags { + constructor (private flags: Flag) {} + + public has (flag: number): boolean { + return !!(this.flags & flag) + } + + public add (flag: Flag) { + this.flags |= flag + } + + public delete (flag: Flag) { + this.flags &= ~flag + } +} diff --git a/tooling/v8-snapshot/src/generator/snapshot-generator.ts b/tooling/v8-snapshot/src/generator/snapshot-generator.ts new file mode 100644 index 0000000000..43f01c22c3 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/snapshot-generator.ts @@ -0,0 +1,599 @@ +import { strict as assert } from 'assert' +import debug from 'debug' +import fs from 'fs' +import { dirname, join, basename } from 'path' +import { minify } from 'terser' +import { createSnapshotScript, SnapshotScript } from './create-snapshot-script' +import { SnapshotVerifier } from './snapshot-verifier' +import { determineDeferred } from '../doctor/determine-deferred' +import { + backupName, + checkDirSync, + installedElectronResourcesFilePath, + ensureDirSync, + fileExistsSync, + getBundlerPath, + resolveElectronVersion, +} from '../utils' +import { createExportScript, ExportScript } from './create-snapshot-bundle' +import { Flag, GeneratorFlags } from './snapshot-generator-flags' +import { syncAndRun } from '@tooling/electron-mksnapshot' +import tempDir from 'temp-dir' + +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') +const logError = debug('cypress:snapgen:error') + +/** + * Configure snapshot creation. + * + * @property cacheDir the path to store the snapshot script and all snapshot generation related meta data in + * + * @property nodeModulesOnly if `true` only node modules will be included in the snapshot and app modules are omitted + * + * @property previousHealthy relative paths to modules that were previously + * determined to be _healthy_ that is they can be included into the snapshot + * without being deferred + * + * @property previousDeferred relative paths to modules that were previously + * determined as problematic, that is it cannot be initialized during snapshot + * creation and thus need to be _deferred_ during snapshot creation + * + * @property previousNoRewrite relative paths to modules that were previously + * determined to result in invalid code when the snapshot bundler rewrites + * their code and thus should not be rewritten + * + * @property forceNoRewrite relative paths to modules that we know will cause + * problems when rewritten and we manually want to exclude them from snapshot + * bundler rewrites + * + * @property resolverMap the map which will be embedded into the snapshot in + * order to resolve modules without relying on the Node.js module resolution + * mechanism which requires I/O. + * + * This map is determined via metadata that the bundler emits during bundle + * generation. The keys are the directory relative to the project base dir, + * from which a module was resolved concatenated with the import request + * string (separated by `'***'`, see ./loading/snapshot-require + * RESOLVER_MAP_KEY_SEP) and the value the fully resolved path relative to the + * project base dir. + * + * #### Example + * + *```text + * Given this statement inside: + * + * /dev/project/base/pack-uno/lib/foo.js: `const bar = require('../bar')` + * + * which resolved to + * + * /dev/project/base/pack-uno/bar/index.js + * + * The following is stored inside the map: + * + * `{ './pack-uno/lib***../bar': './pack-uno/bar/index.js' }` + * ``` + * ` + * + * @property flags snapshot script creation flags + * + * @property nodeEnv the string to provide to `process.env.NODE_ENV` during + * snapshot creation + * + * @property minify if `true` the snapshot script will be minified + * + * @property supportTypeScript if `true` then TypeScript should be supported + * when using snapshot require + * + * @category snapshot + */ +export type GenerationOpts = { + cacheDir: string + snapshotBinDir: string + nodeModulesOnly: boolean + previousHealthy?: string[] + previousDeferred?: string[] + previousNoRewrite?: string[] + forceNoRewrite?: string[] + resolverMap?: Record + flags: Flag + nodeEnv: string + minify: boolean + supportTypeScript: boolean +} + +function getDefaultGenerationOpts (projectBaseDir: string): GenerationOpts { + return { + cacheDir: join(projectBaseDir, 'cache'), + snapshotBinDir: projectBaseDir, + nodeModulesOnly: true, + previousDeferred: [], + previousHealthy: [], + previousNoRewrite: [], + flags: Flag.Script | Flag.MakeSnapshot | Flag.ReuseDoctorArtifacts, + nodeEnv: 'development', + minify: false, + supportTypeScript: false, + } +} + +/** + * The snapshot generator provides the top level API to create a snapshot + * script and then convert that into a snapshot binary and finally install it + * to the correct location. + * + * NOTE: that most fields are directly derived from {@link GenerationOpts} and + * you should refer to the documentation there for more info. + * + * @category snapshot + */ +export class SnapshotGenerator { + /** See {@link GenerationOpts} cacheDir */ + private readonly cacheDir: string + /** See {@link GenerationOpts} snapshotScriptPath */ + private readonly snapshotScriptPath: string + /** Path to store snapshot script inside {@link GenerationOpts} cacheDir */ + private readonly snapshotExportScriptPath: string + /** See {@link GenerationOpts} snapshotBinDir */ + private readonly snapshotBinDir: string + /** See {@link GenerationOpts} ?: */ + private readonly resolverMap?: Record + /** See {@link GenerationOpts} ?: */ + private readonly auxiliaryData?: Record + /** See {@link GenerationOpts} electronVersion */ + private readonly electronVersion: string + /** See {@link GenerationOpts} nodeModulesOnly */ + private readonly nodeModulesOnly: boolean + /** See {@link GenerationOpts} previousDeferred */ + private readonly previousDeferred: Set + /** See {@link GenerationOpts} previousHealthy */ + private readonly previousHealthy: Set + /** See {@link GenerationOpts} previousNoRewrite */ + private readonly previousNoRewrite: Set + /** See {@link GenerationOpts} forceNoRewrite */ + private readonly forceNoRewrite: Set + /** See {@link GenerationOpts} nodeEnv */ + private readonly nodeEnv: string + /** See {@link GenerationOpts} minify */ + private readonly minify: boolean + /** + * Path to the Go bundler binary used to generate the bundle with rewritten code + * {@link https://github.com/cypress-io/esbuild/tree/thlorenz/snap} + */ + private readonly bundlerPath: string + private readonly _snapshotVerifier: SnapshotVerifier + /** See {@link GenerationOpts} flags */ + private readonly _flags: GeneratorFlags + + /** + * Path where snapshot bin is stored, derived from {@link GenerationOpts} snapshotBinDir + */ + private snapshotBinPath?: string + /** + * Path where v8context bin is stored, derived from {@link GenerationOpts} snapshotBinDir + */ + private v8ContextFile?: string + + /** + * Generated snapshot script, needs to be set before calling `makeSnapshot`. + */ + snapshotScript?: Buffer + /** + * Generated snapshot export script, see {@link GeneratorFlags}. + */ + snapshotExportScript?: string + + /** + * Creates a new instance of the {@link SnapshotGenerator}. + * + * @param projectBaseDir the root of the app for which we create the snapshot + * @param snapshotEntryFile the file to use as the entry for our app, best is + * to use one generated via `./snapshot-generate-entry-via-deps`. + * @param opts further configuration {@link GenerationOpts} + * + * @category snapshot + */ + constructor ( + readonly projectBaseDir: string, + readonly snapshotEntryFile: string, + opts: Partial = {}, + ) { + const { + cacheDir, + nodeModulesOnly, + previousDeferred, + previousHealthy, + previousNoRewrite, + forceNoRewrite, + flags: mode, + nodeEnv, + minify, + }: GenerationOpts = Object.assign( + getDefaultGenerationOpts(projectBaseDir), + opts, + ) + + this.cacheDir = cacheDir + ensureDirSync(this.cacheDir) + + this.snapshotBinDir = join(tempDir, 'cy-v8-snapshot-bin') + ensureDirSync(this.snapshotBinDir) + + this._snapshotVerifier = new SnapshotVerifier() + this.snapshotScriptPath = join(cacheDir, 'snapshot.js') + this.snapshotExportScriptPath = join(cacheDir, 'snapshot-bundle.js') + this.resolverMap = opts.resolverMap + this.electronVersion = resolveElectronVersion(projectBaseDir) + + this.nodeModulesOnly = nodeModulesOnly + this.previousDeferred = new Set(previousDeferred) + this.previousHealthy = new Set(previousHealthy) + this.previousNoRewrite = new Set(previousNoRewrite) + this.forceNoRewrite = new Set(forceNoRewrite) + this.nodeEnv = nodeEnv + this._flags = new GeneratorFlags(mode) + this.bundlerPath = getBundlerPath() + this.minify = minify + + const auxiliaryDataKeys = Object.keys(this.auxiliaryData || {}) + + logInfo({ + projectBaseDir, + cacheDir, + snapshotScriptPath: this.snapshotScriptPath, + nodeModulesOnly: this.nodeModulesOnly, + previousDeferred: this.previousDeferred.size, + previousHealthy: this.previousHealthy.size, + previousNoRewrite: this.previousNoRewrite.size, + forceNoRewrite: this.forceNoRewrite.size, + auxiliaryData: auxiliaryDataKeys, + }) + } + + private _addGitignore () { + const gitignore = 'snapshot.js\nbase.snapshot.js.map\nprocessed.snapshot.js.map\nesbuild-meta.json\nsnapshot-meta.json\nsnapshot-entry.js\n' + + const gitignorePath = join(this.cacheDir, '.gitignore') + + return fs.promises.writeFile(gitignorePath, gitignore) + } + + /** + * Creates the snapshot script for the provided configuration + */ + async createScript () { + let deferred + let norewrite + + try { + // 1. Try to obtain a starting point so we don't always start from scratch + // If we're bundling for the first time and no then this will + // return empty arrays + ({ deferred, norewrite } = await determineDeferred( + this.bundlerPath, + this.projectBaseDir, + this.snapshotEntryFile, + this.cacheDir, + { + nodeModulesOnly: this.nodeModulesOnly, + previousDeferred: this.previousDeferred, + previousHealthy: this.previousHealthy, + previousNoRewrite: this.previousNoRewrite, + forceNoRewrite: this.forceNoRewrite, + useHashBasedCache: this._flags.has(Flag.ReuseDoctorArtifacts), + nodeEnv: this.nodeEnv, + }, + )) + } catch (err) { + logError('Failed obtaining deferred modules to create script') + throw err + } + + let result: SnapshotScript + + try { + // 2. Create the initial snapshot script using whatever info we + // collected in step 1 as well as the provided configuration + result = await createSnapshotScript({ + baseDirPath: this.projectBaseDir, + entryFilePath: this.snapshotEntryFile, + bundlerPath: this.bundlerPath, + includeStrictVerifiers: false, + deferred, + norewrite, + resolverMap: this.resolverMap, + auxiliaryData: this.auxiliaryData, + nodeModulesOnly: this.nodeModulesOnly, + sourcemap: true, + baseSourcemapExternalPath: this.snapshotScriptPath.replace('snapshot.js', 'base.snapshot.js.map'), + processedSourcemapExternalPath: this.snapshotScriptPath.replace('snapshot.js', 'processed.snapshot.js.map'), + nodeEnv: this.nodeEnv, + supportTypeScript: this.nodeModulesOnly, + }) + } catch (err) { + logError('Failed creating script') + throw err + } + logDebug( + Object.assign({}, result, { + snapshotScript: `len: ${result.snapshotScript.length}`, + bundle: `len: ${result.bundle.length}`, + meta: '', + }), + ) + + this.snapshotScript = result.snapshotScript + + // 3. Since we don't want the `mksnapshot` command to bomb with cryptic + // errors we verify that the generated script is snapshot-able. + logInfo('Verifying snapshot script') + try { + this._verifyScript() + } catch (err) { + logInfo(`Script failed verification, writing to ${this.snapshotScriptPath}`) + + await fs.promises.writeFile( + this.snapshotScriptPath, + this.snapshotScript, + ) + + throw err + } + + await this._addGitignore() + + logInfo(`Writing snapshot script to ${this.snapshotScriptPath}`) + + if (this.minify) { + const minified = await minify(this.snapshotScript!.toString(), { + sourceMap: false, + }) + + if (!minified.code) { + await fs.promises.writeFile(this.snapshotScriptPath, this.snapshotScript) + throw new Error(`Failed to minify snapshot script. Writing unminified code to ${this.snapshotScriptPath}`) + } + + return fs.promises.writeFile(this.snapshotScriptPath, minified.code) + } + + // 4. Write the snapshot script to the configured file + return fs.promises.writeFile(this.snapshotScriptPath, this.snapshotScript) + } + + /** + * Creates an export bundle. + * This is almost identical to `createScript` except that it will export + * all definitions. + * This is mostly useful for tests. + * + */ + async createExportBundle () { + // As the steps are almost identical to `createScript` no extra code + // comments were added. + let deferred + let norewrite + + try { + ({ deferred, norewrite } = await determineDeferred( + this.bundlerPath, + this.projectBaseDir, + this.snapshotEntryFile, + this.cacheDir, + { + nodeModulesOnly: this.nodeModulesOnly, + previousHealthy: this.previousHealthy, + previousDeferred: this.previousDeferred, + previousNoRewrite: this.previousNoRewrite, + forceNoRewrite: this.forceNoRewrite, + useHashBasedCache: this._flags.has(Flag.ReuseDoctorArtifacts), + nodeEnv: this.nodeEnv, + }, + )) + } catch (err) { + logError('Failed obtaining deferred modules to create script') + throw err + } + + logInfo('determined deferred %o', { deferred, norewrite }) + + let result: ExportScript + + try { + result = await createExportScript({ + baseDirPath: this.projectBaseDir, + entryFilePath: this.snapshotEntryFile, + bundlerPath: this.bundlerPath, + includeStrictVerifiers: false, + deferred, + norewrite, + nodeModulesOnly: this.nodeModulesOnly, + sourcemap: false, + resolverMap: this.resolverMap, + auxiliaryData: this.auxiliaryData, + nodeEnv: this.nodeEnv, + supportTypeScript: this.nodeModulesOnly, + }) + } catch (err) { + logError('Failed creating script') + throw err + } + logDebug( + Object.assign({}, result, { + snapshotBundle: `len: ${result.snapshotBundle.length}`, + bundle: `len: ${result.bundle.length}`, + meta: '', + }), + ) + + this.snapshotExportScript = result.snapshotBundle + + logInfo(`Writing export bundle script to ${this.snapshotExportScriptPath}`) + + return fs.promises.writeFile( + this.snapshotExportScriptPath, + this.snapshotExportScript, + ) + } + + /** + * This will call the `mksnapshot` command feeding it the snapshot script + * previously created via `createScript` which needs to be invoked before + * running this function. + * + * The resulting snapshot binary is written to `this.snapshotBinPath` and + * needs to be moved to the correct location by calling `installSnapshot`. + */ + async makeSnapshot () { + function runInstructions () { + const bin = require.resolve('@tooling/electron-mksnapshot/dist/mksnapshot-bin') + const cmd = `node ${bin} ${args.join(' ')}` + + logError(`Run:\n ${cmd}\n to investigate.`) + } + // 1. Check that everything is prepared to create the snapshot + assert( + this.snapshotScript != null, + 'Run `createScript` first to create snapshotScript', + ) + + assert( + this._flags.has(Flag.MakeSnapshot), + 'Cannot makeSnapshot when MakeSnapshot flag is not set', + ) + + // 2. Run the `mksnapshot` binary providing it the path to our snapshot + // script + const args = [this.snapshotScriptPath, '--output_dir', this.snapshotBinDir] + + try { + const { snapshotBlobFile, v8ContextFile } = await syncAndRun( + this.electronVersion, + args, + ) as { snapshotBlobFile: string, v8ContextFile: string } + + this.v8ContextFile = v8ContextFile + this.snapshotBinPath = join(this.snapshotBinDir, snapshotBlobFile) + + // 3. Verify that all worked out and the snapshot binary is where we + // expect it + if (!fileExistsSync(this.snapshotBinPath)) { + logError( + `Cannot find ${this.snapshotBinPath} which should've been created.\n` + + `This could be due to the mksnapshot command silently failing.`, + ) + + runInstructions() + + throw new Error('Failed `mksnapshot` command') + } + + return { v8ContextFile: this.v8ContextFile, snapshotBinDir: this.snapshotBinDir } + } catch (err: any) { + if (err.stderr != null) { + logError(err.stderr.toString()) + } + + if (err.stdout != null) { + logDebug(err.stdout.toString()) + } + + // If things went wrong print instructions on how to execute the + // `mksnapshot` command directly to trouble shoot + runInstructions() + throw new Error('Failed `mksnapshot` command') + } + } + + /** + * Calling this function will first back up the existing electron snapshot + * unless it was previously backed up. This allows to always revert back + * to a version of the app without any modified snapshot binary, see + * `uninstallSnapshot`. + * + * Then it will move the snapshot bin into the correct location such that + * when electron starts up it will load it. + */ + installSnapshot () { + // 1. Check that we performed all required steps + assert( + this.snapshotScript != null, + 'Run `createScript` and `makeSnapshot` first to create snapshot', + ) + + assert( + this._flags.has(Flag.MakeSnapshot), + 'Cannot install when MakeSnapshot flag is not set', + ) + + assert( + this.snapshotBinPath != null && fileExistsSync(this.snapshotBinPath), + `Run \`makeSnapshot\` first to create snapshot bin file ${ + this.snapshotBinPath}`, + ) + + assert( + this.v8ContextFile != null, + 'mksnapshot ran but v8ContextFile was not set', + ) + + // 2. Back up the original electron snapshot + const electronV8ContextBin = installedElectronResourcesFilePath( + this.projectBaseDir, + this.v8ContextFile, + ) + const electronResourcesDir = dirname(electronV8ContextBin) + + checkDirSync(electronResourcesDir) + + const v8ContextBackupName = backupName(this.v8ContextFile) + const originalV8ContextBin = join(electronResourcesDir, v8ContextBackupName) + + if (!fileExistsSync(originalV8ContextBin)) { + logInfo( + `Backing up original electron v8-context to '${originalV8ContextBin}'`, + ) + + assert( + fileExistsSync(electronV8ContextBin), + 'cannot find original electron snapshot', + ) + + fs.copyFileSync(electronV8ContextBin, originalV8ContextBin) + } + + const v8ContextFullPath = join(this.snapshotBinDir, this.v8ContextFile) + + logInfo(`Moving ${this.v8ContextFile} to '${electronV8ContextBin}'`) + fs.renameSync(v8ContextFullPath, electronV8ContextBin) + + // 3. Move the snapshot binary we want to install into the electron + // snapshot location + const snapshotBinFile = basename(this.snapshotBinPath) + const electronSnapshotBin = join(electronResourcesDir, snapshotBinFile) + + logInfo(`Moving ${snapshotBinFile} to ${electronSnapshotBin}`) + fs.renameSync(this.snapshotBinPath, electronSnapshotBin) + } + + /** + * Convenience function that invokes `makeSnapshot` followed by + * `installSnapshot`. + */ + async makeAndInstallSnapshot () { + const res = await this.makeSnapshot() + + if (res != null) { + this.installSnapshot() + + return res + } + + throw new Error('make snapshot failed') + } + + private _verifyScript () { + assert(this.snapshotScript != null, 'need snapshotScript to be set') + this._snapshotVerifier.verify(this.snapshotScript, this.snapshotScriptPath) + } +} diff --git a/tooling/v8-snapshot/src/generator/snapshot-verifier.ts b/tooling/v8-snapshot/src/generator/snapshot-verifier.ts new file mode 100644 index 0000000000..05ebc24b54 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/snapshot-verifier.ts @@ -0,0 +1,17 @@ +import vm from 'vm' + +/** + * Runs the provided `snapshostScript` inside a Node.js VM in order to verify + * that it completes initialization without errors. + * Since during the doctor step the bundle is built in _strict_ mode this will + * also cause an error to be thrown here if we access objects like `Promise`s + * that we shouldn't since that breaks snapshotting. + */ +export class SnapshotVerifier { + verify (snapshotScript: Buffer, filename: string) { + vm.runInNewContext(snapshotScript.toString(), undefined, { + filename, + displayErrors: true, + }) + } +} diff --git a/tooling/v8-snapshot/src/generator/write-config-json.ts b/tooling/v8-snapshot/src/generator/write-config-json.ts new file mode 100644 index 0000000000..65dbcfafc6 --- /dev/null +++ b/tooling/v8-snapshot/src/generator/write-config-json.ts @@ -0,0 +1,85 @@ +import path from 'path' +import fs from 'fs' +import type { CreateBundleOpts } from '../types' +import { tmpdir } from 'os' +import { createHash, ensureDirSync } from '../utils' + +type SnapshotConfig = { + entryfile: string + outfile?: string + basedir: string + deferred: string[] + norewrite: string[] + metafile: boolean + doctor: boolean + sourcemap: string | undefined +} + +function isNonEmptyArray (arr: T[] | undefined): arr is T[] { + if (arr == null) return false + + return arr.length > 0 +} + +function argumentify (arr: string[]) { + // esbuild stores modules in sub directories with backslash on windows, i.e. './lib\\deferred.js' + // so we need to send the keys of deferred and norewrite modules in the same manner + return path.sep === '/' + ? arr.map((x) => { + const PREFIX = x.startsWith('./') ? '' : './' + + return `${PREFIX}${x}` + }) + : arr.map((x) => { + if (x.startsWith('./')) x = x.slice(2) + + return `./${x.replace(/\//g, path.sep)}` + }) +} + +/** + * Writes the config derived from the provided opts to the [configPath]. + * The [configPath] is assumed to be writable and no checks to ensure that are performed. + * This config is then used by the `esbuild` bundler to build the bundle and rewriting the code as indicated in the + * config. + * The main reason why we cannot just send it as an argument is windows. + * + * @category snapshot + */ +export function writeConfigJSON ( + opts: CreateBundleOpts, + entryfile: string, + basedir: string, + sourcemapExternalPath?: string, +): { configPath: string, config: SnapshotConfig } { + const deferred = isNonEmptyArray(opts.deferred) + ? argumentify(opts.deferred) + : [] + const norewrite = isNonEmptyArray(opts.norewrite) + ? argumentify(opts.norewrite) + : [] + + const sourcemap = opts.sourcemap != null ? sourcemapExternalPath : undefined + const config: SnapshotConfig = { + basedir, + entryfile, + deferred, + norewrite, + doctor: opts.includeStrictVerifiers ?? false, + metafile: true, + sourcemap, + } + const json = JSON.stringify(config) + const jsonBuffer = Buffer.from(json, 'utf8') + const configHash = createHash(jsonBuffer) + const configPath = path.join( + tmpdir(), + 'v8-snapshot', + `snapshot-config.${configHash}.json`, + ) + + ensureDirSync(path.dirname(configPath)) + fs.writeFileSync(configPath, jsonBuffer) + + return { configPath, config } +} diff --git a/tooling/v8-snapshot/src/meta/dependency-map.ts b/tooling/v8-snapshot/src/meta/dependency-map.ts new file mode 100644 index 0000000000..b4345bd658 --- /dev/null +++ b/tooling/v8-snapshot/src/meta/dependency-map.ts @@ -0,0 +1,111 @@ +import type { Metadata } from '../types' +import type { DependencyMapArray, DependencyNode } from '@packages/v8-snapshot-require' + +/** + * Builds a dependency map from the inputs of the {@link + * https://esbuild.github.io/api/#metafile | esbuild metadata}. + * + * This map is embedded into the snapshot in order to allow quickly determine + * direct and transitive dependencies of a module. + * + * The map's keys are the module keys. + * The map's values are {@link DependencyNode}s. + * + * This dependency map is queried when modules load in order to determine if + * they can be loaded from the cache or if they need to be refreshed to respect + * Node.js module cache modifications. + * + * @param inputs a hashmap of modules included with the snapshot along with + * their imports + */ +export function buildDependencyMap ( + inputs: Metadata['inputs'], +): Map { + const dependencyMap: Map = new Map() + + for (const key of Object.keys(inputs)) { + const imports = inputs[key].imports.map((x) => x.path) + + dependencyMap.set(key, { + directDeps: new Set(imports), + allDeps: new Set(imports), + }) + } + + for (const [id, node] of dependencyMap.entries()) { + node.allDeps = allDependencies( + id, + dependencyMap, + node, + node.allDeps, + new Set(), + ) + } + + return dependencyMap +} + +/** + * Determines all dependencies, direct or indirect of a given module. + * It calls itself recursively to traverse the dependency tree depth-first + * until all its deps were visited. + * + * @param rootId the id of the module for which we gather dependencies + * @param map the map of all dependencies + * @param node the node we're currently processing + * @param acc the set of collected dependencies + * @param visited the set of dependencies we've visited already + * + * @private + */ +function allDependencies ( + rootId: string, + map: Map, + node: DependencyNode, + acc: Set, + visited: Set, +) { + for (const x of node.directDeps) { + if (visited.has(x)) continue + + visited.add(x) + if (x !== rootId) acc.add(x) + + allDependencies(rootId, map, map.get(x)!, acc, visited) + } + + return acc +} + +/** + * Converts the {@link Map} DependencyMap into a {@link DependencyMapArray}. + * + * @param dependencyMap the map of dependencies + * @private + */ +function dependencyMapToArray (dependencyMap: Map) { + const arr: DependencyMapArray = [] + + for (const [k, { directDeps, allDeps }] of dependencyMap.entries()) { + arr.push([ + k, + { directDeps: Array.from(directDeps), allDeps: Array.from(allDeps) }, + ]) + } + + return arr +} + +/** + * Convenience function that creates a map from the provided inputs, converts + * it to an array representation and returns it to be embedded into the + * snapshot. + * @param inputs a hashmap of modules included with the snapshot along with + * their imports + */ +export function dependencyMapArrayFromInputs (inputs: Metadata['inputs']) { + const map = buildDependencyMap(inputs) + const arr = dependencyMapToArray(map) + + return arr +} diff --git a/tooling/v8-snapshot/src/setup/config.ts b/tooling/v8-snapshot/src/setup/config.ts new file mode 100644 index 0000000000..7d19472356 --- /dev/null +++ b/tooling/v8-snapshot/src/setup/config.ts @@ -0,0 +1,122 @@ +import path from 'path' + +type SnapshotConfig = { + appEntryFile: string + cypressAppSnapshotDir: string + nodeModulesOnly: boolean + pathsMapper: (file: string) => string + projectBaseDir: string + snapshotCacheDir: string + snapshotEntryFile: string + snapshotMetaFile: string + snapshotMetaPrevFile: string + metaFile: string + usePreviousSnapshotMetadata: boolean + minify: boolean +} + +const platformString = process.platform + +const snapshotCacheBaseDir = path.resolve(__dirname, '..', '..', 'cache') + +const projectBaseDir = path.join(__dirname, '..', '..', '..', '..') +const appEntryFile = require.resolve('@packages/server/server-entry.js') + +const cypressAppSnapshotDir = (cypressAppPath?: string) => { + const electronPackageDir = path.join(projectBaseDir, 'packages', 'electron') + + let electronResourcesPath + + if (platformString === 'darwin') { + cypressAppPath = cypressAppPath ? path.join(cypressAppPath, 'Cypress.app') : path.join(electronPackageDir, 'dist', 'Cypress', 'Cypress.app') + electronResourcesPath = path.join('Contents', 'Frameworks', 'Electron Framework.framework', 'Versions', 'A', 'Resources') + } else { + cypressAppPath = cypressAppPath || path.join(electronPackageDir, 'dist', 'Cypress') + electronResourcesPath = '' + } + + return path.join( + cypressAppPath, + electronResourcesPath, + ) +} + +const pathsMapper = (s: string) => s.replace(/^packages\//, './packages/') + +const usePreviousSnapshotMetadata = process.env.V8_SNAPSHOT_FROM_SCRATCH == null + +/** + * @typedef {Object} SnapshotConfig - Configuration for creating snapshots + * + * @property {string} appEntryFile - the app entry file used to generate the snapshotEntryFile + * + * @property {string} cypressAppSnapshotDir - the location from where the Cypress app loads the snapshot + * @property {boolean} nodeModulesOnly - if `true` then no application files are included in the snapshot + * @property {Function} pathsMapper - maps paths to work around edge cases + * @property {string} projectBaseDir - the base dir of the project being snapshotted + * + * @property {string} snapshotCacheDir - directory where esbuild metadata, snapshot metadata + * and snapshot entry file are stored. + * This is different for prod vs. dev environments + * + * @property {string} snapshotEntryFile - file used by esbuild to find all files to include in the snapshot. + * This file is generated via see lib/gen-entry + * + * @property {string} snapshotMetaFile - file used to determine which modules can be included in the snapshot + * @property {string} snapshotMetaPrevFile - previously determined metafile used as a v8-snapshot starting point + * see usePreviousSnapshotMetadata + * + * @property {string} metaFile - file used to determine circular references and how to process modules + * when generating the snapshot. This file is generated by esbuild via see lib/gen-meta + * + * @property {boolean} usePreviousSnapshotMetadata - If true then health/deferred/norewrite data collected during + * a previous run of the snapshot doctor is used as a starting point. + * This speeds up the snapshot doctor step immensely, but should be turned off when a lot of + * dependencies changed and/or when creating a prod artifact + * + * @property {boolean} minify - If true then the snapshot is minified + */ + +/** + * Creates a snapshot config tailored to the provided environment + * + * @param {string} env - 'dev' | 'prod' + * @returns {SnapshotConfig} config to be used for all snapshot related tasks + */ +export function createConfig (env: 'dev' | 'prod' = 'prod', cypressAppPath?: string): SnapshotConfig { + /** + * If true only node_module dependencies are included in the snapshot. Otherwise app files are included as well + * + * Configured via `env` + */ + const nodeModulesOnly = env === 'dev' + const minify = env === 'prod' + + const snapshotCacheDir = + env === 'dev' + ? path.join(snapshotCacheBaseDir, `dev-${platformString}`) + : path.join(snapshotCacheBaseDir, `prod-${platformString}`) + + const snapshotEntryFile = path.join(snapshotCacheDir, 'snapshot-entry.js') + const metaFile = path.join(snapshotCacheDir, 'esbuild-meta.json') + const snapshotMetaFile = path.join(snapshotCacheDir, 'snapshot-meta.json') + const snapshotMetaPrevFile = path.join( + snapshotCacheDir, + 'snapshot-meta.cache.json', + ) + + return { + appEntryFile, + cypressAppSnapshotDir: cypressAppSnapshotDir(cypressAppPath), + metaFile, + nodeModulesOnly, + pathsMapper, + projectBaseDir, + snapshotCacheDir, + snapshotEntryFile, + snapshotMetaFile, + snapshotMetaPrevFile, + usePreviousSnapshotMetadata, + minify, + } +} diff --git a/tooling/v8-snapshot/src/setup/consolidate-deps.ts b/tooling/v8-snapshot/src/setup/consolidate-deps.ts new file mode 100644 index 0000000000..88ee4e8227 --- /dev/null +++ b/tooling/v8-snapshot/src/setup/consolidate-deps.ts @@ -0,0 +1,46 @@ +import path from 'path' +import fs from 'fs-extra' +import glob from 'glob' +import debug from 'debug' + +const logInfo = debug('cypress:snapgen:info') +const logError = debug('cypress:snapgen:error') + +async function consolidateDep ({ projectBaseDir, dep }: { projectBaseDir: string, dep: string }): Promise { + logInfo('Looking for %s duplicates ...', dep) + + const matches = glob.sync( + `{packages,node_modules/@cypress,node_modules/@packages}/**/node_modules/${dep}`, + { + cwd: projectBaseDir, + }, + ).map((x) => path.join(projectBaseDir, x)) + + logInfo( + 'Found %d %s duplicates%s', + matches.length, + dep, + matches.length > 0 ? ', removing them' : '', + ) + + try { + await Promise.all(matches.map(async (dir) => { + await fs.remove(dir) + })) + + logInfo('Done removing %s duplicates', dep) + } catch (err) { + logError(err) + throw err + } +} + +/** + * Remove all bluebird and lodash as they are essentially duplicated and all on the same major version + * + * @param {Partial} opts + */ +export async function consolidateDeps ({ projectBaseDir }: { projectBaseDir: string }): Promise { + await consolidateDep({ projectBaseDir, dep: 'bluebird' }) + await consolidateDep({ projectBaseDir, dep: 'lodash' }) +} diff --git a/tooling/v8-snapshot/src/setup/force-no-rewrite.ts b/tooling/v8-snapshot/src/setup/force-no-rewrite.ts new file mode 100644 index 0000000000..1449b04756 --- /dev/null +++ b/tooling/v8-snapshot/src/setup/force-no-rewrite.ts @@ -0,0 +1,59 @@ +export default [ + // recursion due to process.emit overwrites which is incorrectly rewritten + 'signal-exit/index.js', + // recursion due to process.{chdir,cwd} overwrites which are incorrectly rewritten + 'graceful-fs/polyfills.js', + + // wx is rewritten to __get_wx__ but not available for Node.js > 0.6 + 'lockfile/lockfile.js', + // rewrites dns.lookup which conflicts with our rewrite + 'evil-dns/evil-dns.js', + + // `address instanceof (__get_URL2__())` -- right hand side not an object + // even though function is in scope + 'ws/lib/websocket.js', + + // defers PassThroughStream which is then not accepted as a constructor + 'get-stream/buffer-stream.js', + + // deferring should be fine as it just reexports `process` which in the + // case of cache is the stub + 'process-nextick-args/index.js', + + // Has issues depending on the architecture due to how it handles errors + 'node_modules/@cypress/get-windows-proxy/src/registry.js', + + // results in recursive call to __get_fs2__ + 'packages/https-proxy/lib/ca.js', + + // TODO: Figure out why these don't properly get flagged as norewrite: https://github.com/cypress-io/cypress/issues/23986 + 'node_modules/@cspotcode/source-map-support/source-map-support.js', + 'packages/server/lib/modes/record.js', + 'packages/server/lib/modes/run.ts', + 'node_modules/debug/src/node.js', + 'node_modules/body-parser/node_modules/debug/src/node.js', + 'node_modules/compression/node_modules/debug/src/node.js', + 'node_modules/express/node_modules/debug/src/node.js', + 'node_modules/finalhandler/node_modules/debug/src/node.js', + 'node_modules/get-package-info/node_modules/debug/src/node.js', + 'node_modules/mocha-junit-reporter/node_modules/debug/src/node.js', + 'node_modules/mocha/node_modules/debug/src/node.js', + 'node_modules/morgan/node_modules/debug/src/node.js', + 'node_modules/send/node_modules/debug/src/node.js', + 'node_modules/stream-parser/node_modules/debug/src/node.js', + 'node_modules/@cypress/commit-info/node_modules/debug/src/node.js', + 'node_modules/@cypress/get-windows-proxy/node_modules/debug/src/node.js', + 'node_modules/mocha-7.0.1/node_modules/debug/src/node.js', + 'node_modules/tcp-port-used/node_modules/debug/src/node.js', + 'packages/data-context/node_modules/debug/src/node.js', + 'packages/graphql/node_modules/debug/src/node.js', + 'packages/net-stubbing/node_modules/debug/src/node.js', + 'packages/server/node_modules/mocha/node_modules/debug/src/node.js', + 'node_modules/minimatch/minimatch.js', + 'node_modules/mocha-7.0.1/node_modules/glob/node_modules/minimatch/minimatch.js', + 'packages/data-context/node_modules/minimatch/minimatch.js', + 'packages/network/node_modules/minimatch/minimatch.js', + 'packages/server/node_modules/glob/node_modules/minimatch/minimatch.js', + 'node_modules/js-yaml/lib/js-yaml/type/js/function.js', + 'packages/server/lib/open_project.ts', +] diff --git a/tooling/v8-snapshot/src/setup/generate-entry.ts b/tooling/v8-snapshot/src/setup/generate-entry.ts new file mode 100644 index 0000000000..50fba54cbb --- /dev/null +++ b/tooling/v8-snapshot/src/setup/generate-entry.ts @@ -0,0 +1,48 @@ +import { generateSnapshotEntryFromEntryDependencies } from '../generator/snapshot-generate-entry-via-dependencies' +import debug from 'debug' +import { ensureDirSync } from '../utils' +import path from 'path' + +const logInfo = debug('cypress:snapgen:info') +const logError = debug('cypress:snapgen:error') + +/** + * Generates the snapshot entry file by following all dependencies of + * the `appEntryFile` via `v8-snapshot`. + * + * @param {Partial} opts + */ +export async function generateEntry ({ + appEntryFile, + nodeModulesOnly, + pathsMapper, + projectBaseDir, + snapshotEntryFile, +}: { + appEntryFile: string + nodeModulesOnly: boolean + pathsMapper: (file: string) => string + projectBaseDir: string + snapshotEntryFile: string +}): Promise { + logInfo('Creating snapshot generation entry file %o', { nodeModulesOnly }) + + try { + ensureDirSync(path.dirname(snapshotEntryFile)) + + await generateSnapshotEntryFromEntryDependencies( + projectBaseDir, + snapshotEntryFile, + { + entryFile: appEntryFile, + pathsMapper, + nodeModulesOnly, + }, + ) + + logInfo('Done creating snapshot generation entry file') + } catch (err) { + logError(err) + throw err + } +} diff --git a/tooling/v8-snapshot/src/setup/generate-metadata.ts b/tooling/v8-snapshot/src/setup/generate-metadata.ts new file mode 100644 index 0000000000..3b520028a0 --- /dev/null +++ b/tooling/v8-snapshot/src/setup/generate-metadata.ts @@ -0,0 +1,71 @@ +import { writeFileSync } from 'fs' +import { BundlerMetadata, generateBundlerMetadata } from '../generator/snapshot-generate-entry-via-dependencies' +import debug from 'debug' +import { ensureDirSync } from 'fs-extra' +import path from 'path' + +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') +const logError = debug('cypress:snapgen:error') + +async function createMeta ({ + appEntryFile, + nodeModulesOnly, + pathsMapper, + projectBaseDir, + snapshotEntryFile, +}) { + return generateBundlerMetadata(projectBaseDir, snapshotEntryFile, { + entryFile: appEntryFile, + pathsMapper, + nodeModulesOnly, + }) +} + +/** + * Generates the snapshot meta file by following all dependencies of + * the `appEntryFile` via `v8-snapshot`. + * This file is then used by the snapshot doctor to determine how to process + * the modules found inside the snapshot entry. + * + * @param {Partial} opts + * @return {Promise} metadata + */ +export async function generateMetadata ({ + appEntryFile, + metaFile, + nodeModulesOnly, + pathsMapper, + projectBaseDir, + snapshotEntryFile, +}: { + appEntryFile: string + metaFile: string + nodeModulesOnly: boolean + pathsMapper: (file: string) => string + projectBaseDir: string + snapshotEntryFile: string +}): Promise { + try { + logInfo('Creating snapshot metadata %o', { nodeModulesOnly }) + + const meta = await createMeta({ + appEntryFile, + nodeModulesOnly, + pathsMapper, + projectBaseDir, + snapshotEntryFile, + }) + + ensureDirSync(path.dirname(metaFile)) + writeFileSync(metaFile, JSON.stringify(meta, null, 2), 'utf8') + logDebug('Written to', metaFile) + + logInfo('Done creating snapshot metadata') + + return meta + } catch (err) { + logError(err) + throw err + } +} diff --git a/tooling/v8-snapshot/src/setup/index.ts b/tooling/v8-snapshot/src/setup/index.ts new file mode 100644 index 0000000000..e6745e6dfa --- /dev/null +++ b/tooling/v8-snapshot/src/setup/index.ts @@ -0,0 +1,35 @@ +import { createConfig } from './config' +import { consolidateDeps } from './consolidate-deps' +import { generateMetadata } from './generate-metadata' +import minimist from 'minimist' +import { generateEntry } from './generate-entry' +import { installSnapshot } from './install-snapshot' +import fs from 'fs-extra' + +const setupV8Snapshots = async (baseCypressAppPath?: string) => { + try { + const args = minimist(process.argv.slice(2)) + const config = createConfig(args.env, baseCypressAppPath) + + await consolidateDeps(config) + + const meta = await generateMetadata(config) + + await generateEntry(config) + const snapshotFileLocation = await installSnapshot(config, meta.resolverMap) + + await fs.copyFile(config.snapshotMetaFile, config.snapshotMetaPrevFile) + + return snapshotFileLocation + } catch (err) { + // eslint-disable-next-line no-console + console.error(`Snapshot generation has failed. If you continue to see this error, you can generate snapshots from scratch by running: +\`V8_SNAPSHOT_FROM_SCRATCH=1 yarn build-v8-snapshot-{prod or dev}\` + +Note that this may take a while.`) + + process.exit(1) + } +} + +export { setupV8Snapshots, consolidateDeps } diff --git a/tooling/v8-snapshot/src/setup/install-snapshot.ts b/tooling/v8-snapshot/src/setup/install-snapshot.ts new file mode 100644 index 0000000000..abdbd34e39 --- /dev/null +++ b/tooling/v8-snapshot/src/setup/install-snapshot.ts @@ -0,0 +1,132 @@ +import path from 'path' +import { SnapshotGenerator } from '../generator/snapshot-generator' +import { prettyPrintError } from '../utils' +import fs from 'fs-extra' +import forceNoRewrite from './force-no-rewrite' + +const debug = require('debug') +const logInfo = debug('cypress:snapgen:info') +const logDebug = debug('cypress:snapgen:debug') + +/* + * Tries to resolve results from the previous step for the given environment. + * Returns empty object if resolution failed. + */ +function resolvePrevious ({ snapshotMetaPrevFile }) { + try { + const { + norewrite: previousNoRewrite, + deferred: previousDeferred, + healthy: previousHealthy, + } = require(snapshotMetaPrevFile) + + return { previousNoRewrite, previousDeferred, previousHealthy } + } catch (_) { + return { previousNoRewrite: [], previousDeferred: [], previousHealthy: [] } + } +} + +function getSnapshotGenerator ({ + nodeModulesOnly, + projectBaseDir, + snapshotCacheDir, + snapshotEntryFile, + snapshotMetaPrevFile, + usePreviousSnapshotMetadata, + resolverMap, + minify, +}: { + nodeModulesOnly: boolean + projectBaseDir: string + snapshotCacheDir: string + snapshotEntryFile: string + snapshotMetaPrevFile: string + usePreviousSnapshotMetadata: boolean + resolverMap: Record + minify: boolean +}) { + const { + previousNoRewrite, + previousDeferred, + previousHealthy, + } = usePreviousSnapshotMetadata + ? resolvePrevious({ + snapshotMetaPrevFile, + }) + : { + previousNoRewrite: [], previousDeferred: [], previousHealthy: [], + } + + return new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir: snapshotCacheDir, + previousDeferred, + previousHealthy, + previousNoRewrite, + nodeModulesOnly, + resolverMap, + forceNoRewrite, + minify, + }) +} + +/** + * Generates and installs the snapshot. + * + * Assumes that the snapshot entry file has been generated, see ./gen-entry.js. + * Assumes that the snapshot meta file has been generated, see ./gen-meta.js. + * + * @param {Partial} opts + */ +export async function installSnapshot ( + { + cypressAppSnapshotDir, + nodeModulesOnly, + projectBaseDir, + snapshotCacheDir, + snapshotEntryFile, + snapshotMetaPrevFile, + usePreviousSnapshotMetadata, + minify, + }, + resolverMap, +) { + try { + logInfo('Generating snapshot %o', { + nodeModulesOnly, + usePreviousSnapshotMetadata, + }) + + const snapshotGenerator = getSnapshotGenerator({ + nodeModulesOnly, + projectBaseDir, + snapshotCacheDir, + snapshotEntryFile, + snapshotMetaPrevFile, + usePreviousSnapshotMetadata, + resolverMap, + minify, + }) + + await snapshotGenerator.createScript() + const { v8ContextFile, snapshotBinDir } = await snapshotGenerator.makeSnapshot() + + const cypressAppSnapshotFile = path.join( + cypressAppSnapshotDir, + 'browser_v8_context_snapshot.bin', + ) + + await fs.copyFile( + path.join(snapshotBinDir, v8ContextFile), + cypressAppSnapshotFile, + ) + + logDebug('Copied snapshot to "%s"', cypressAppSnapshotFile) + + logInfo('Done generating snapshot') + + return cypressAppSnapshotFile + } catch (err) { + prettyPrintError(err, projectBaseDir) + throw err + } +} diff --git a/tooling/v8-snapshot/src/snapbuild/snapbuild.ts b/tooling/v8-snapshot/src/snapbuild/snapbuild.ts new file mode 100644 index 0000000000..ec5f73d713 --- /dev/null +++ b/tooling/v8-snapshot/src/snapbuild/snapbuild.ts @@ -0,0 +1,26 @@ +import { strict as assert } from 'assert' +import os from 'os' + +const platformKey = `${process.platform} ${os.arch()} ${os.endianness()}` + +const packages = new Map([ + ['win32 ia32 LE', '@cypress/snapbuild-windows-32'], + ['win32 x64 LE', '@cypress/snapbuild-windows-64'], + ['darwin arm64 LE', '@cypress/snapbuild-darwin-arm64'], + ['android arm64 LE', '@cypress/snapbuild-android-arm64'], + ['darwin x64 LE', '@cypress/snapbuild-darwin-64'], + ['freebsd arm64 LE', '@cypress/snapbuild-freebsd-arm64'], + ['freebsd x64 LE', '@cypress/snapbuild-freebsd-64'], + ['linux arm LE', '@cypress/snapbuild-linux-arm'], + ['linux arm64 LE', '@cypress/snapbuild-linux-arm64'], + ['linux ia32 LE', '@cypress/snapbuild-linux-32'], + ['linux mips64el LE', '@cypress/snapbuild-linux-mips64le'], + ['linux ppc64 LE', '@cypress/snapbuild-linux-ppc64le'], + ['linux x64 LE', '@cypress/snapbuild-linux-64'], +]) + +const uri = packages.get(platformKey) + +assert(uri, `no binary package found for platform '{platformKey}'`) + +export const binary = require.resolve(uri) diff --git a/tooling/v8-snapshot/src/sourcemap/process-sourcemap.ts b/tooling/v8-snapshot/src/sourcemap/process-sourcemap.ts new file mode 100644 index 0000000000..b8f1c9e94d --- /dev/null +++ b/tooling/v8-snapshot/src/sourcemap/process-sourcemap.ts @@ -0,0 +1,98 @@ +import { + SourceMapConsumer, + SourceMapGenerator, + RawSourceMap, + MappingItem, + Mapping, + Position, +} from 'source-map-js' + +import path from 'path' + +import debug from 'debug' +import { EMBEDDED } from '../constants' +const logError = debug('cypress:snapgen:error') +const logTrace = debug('cypress:snapgen:trace') + +function relativePath (baseDirPath: string, fullPath: string): string { + // TODO(thlorenz): Why is forward slash missing here? + return path.relative(baseDirPath, `/${fullPath}`) +} + +/** + * Processing the SourceMap in order to offset lines according to where the esbuild bundle + * content ends up inside the snapshot script. + * Additionally we modify the source paths to be relative to the project base dir + */ +export function processSourceMap ( + sourceMap: Buffer | undefined, + baseDirPath: string, + lineOffset: number, +): string | undefined { + if (sourceMap == null) return + + // We need to do this in a round about way since the consumer.eachMapping function provides us + // a clone of each mapping, thus not allowing us to modify the original in place. + // Instead we generate a new Array of mappings first and then build an entirely new sourcemap + // given the sources, sourcesContent and updated mappings. + const mappings: Mapping[] = [] + + const sourceRoot = '' + + try { + // Extract current SourceMap and convert to a consumer + const json = sourceMap?.toString('utf8') + const sm: RawSourceMap = JSON.parse(json) + + sm.file = EMBEDDED + const consumer = new SourceMapConsumer(sm) + + // Extract and offset mappings from current sourcemap + consumer.eachMapping((item: MappingItem) => { + const orig: Position = { + line: item.originalLine, + column: item.originalColumn, + } + const gen: Position = { + line: item.generatedLine + lineOffset, + column: item.generatedColumn, + } + const mapping: Mapping = { + generated: gen, + original: orig, + source: relativePath(baseDirPath, item.source), + name: item.name, + } + + mappings.push(mapping) + }) + + // Generate a new sourcemap with updated mappings + const generator = new SourceMapGenerator({ + file: EMBEDDED, + sourceRoot, + }) + + for (const mapping of mappings) { + generator.addMapping(mapping) + } + + for (let i = 0; i < sm.sources.length; i++) { + const relSource = relativePath(baseDirPath, sm.sources[i]) + + generator.setSourceContent(relSource, sm.sourcesContent![i]) + } + + const s = generator.toString() + + if (logTrace.enabled) { + logTrace(JSON.parse(s)) + } + + return s + } catch (e) { + logError('Encountered invalid sourcemap: %s', sourceMap?.toString('utf8')) + } + + return +} diff --git a/tooling/v8-snapshot/src/types.ts b/tooling/v8-snapshot/src/types.ts new file mode 100644 index 0000000000..999ef2106e --- /dev/null +++ b/tooling/v8-snapshot/src/types.ts @@ -0,0 +1,190 @@ +import type { CreateBundleResult } from '@tooling/packherd' +import type { RawSourceMap } from 'source-map-js' + +type NodeRequireFunction = typeof require + +export type Entries = { + [K in keyof T]: [K, T[K]] +}[keyof T][] + +/** + * esbuild metadata {@link https://esbuild.github.io/api/#metafile} with extra + * properties that is included by the snapshot esbuild + * + * Namely it includes a `resolverMap` property which is embedded into the + * snapshot in order to resolve modules without having to query the file system + * + * @category snapshot + */ +export type Metadata = CreateBundleResult['metafile'] & { + inputs: Record< + string, + { + bytes: number + fileInfo: { + fullPath: string + } + imports: { + path: string + kind: 'require-call' + }[] + } + > + resolverMap: Record +} + +/** + * Configures how the bundle to be snapshotted is generated. + * + * @property baseDirPath root of the project which we are snapshotting + * + * @property entryFilePath file we use as the entry-point and from which all + * modules to be snapshotted are reachable + * + * @property bundlerPath the esbuild bundler binary to use, if not provided it + * falls back to the installed one + * + * @property nodeModulesOnly if `true` only node_modules are included in the + * snapshot, i.e. application files are not + * + * @property deferred you should provide any modules here that you know need + * to be deferred in order to speed up the doctor step + * + * @property norewrite you should provide any modules here that you know + * should not be rewritten in order to speed up the doctor step and to work + * around issues due to invalid rewrites + * + * @property includeStrictVerifiers if `true` the bundle will be more strictly + * checked when validated inside the Node.js VM + * This should be set when running the doctor and unset when building the + * bundle to be snapshotted + * + * @property sourcemap if `true` then a sourcemap will be generated for the + * bundled files + * + * @property baseSourcemapExternalPath the file to write the raw generated sourcemap + * to if that is desired + * + * @property processedSourcemapExternalPath the file to write the processed generated sourcemap + * to if that is desired + * + * @property supportTypeScript if `true` then TypeScript is supported when using + * snapshot require + * + * @category snapshot + */ +export type CreateBundleOpts = { + baseDirPath: string + entryFilePath: string + bundlerPath: string + nodeModulesOnly: boolean + deferred?: string[] + norewrite?: string[] + includeStrictVerifiers?: boolean + sourcemap?: boolean + baseSourcemapExternalPath?: string + processedSourcemapExternalPath?: string + supportTypeScript: boolean +} + +/** + * Adds Snapshot specific opts to the {@link CreateBundleOpts}. + * + * @property resolverMap the map that should be embedded in the snapshot in + * order to resolve module import requests without querying the file system + * + * @property auxiliaryData any extra data that should be embedded in the + * snapshot + * + * @property nodeEnv `process.env.NODE_ENV` will be set to this value during + * snapshot creation, see src/blueprint.ts:88 + * + * @category snapshot + */ +export type CreateSnapshotScriptOpts = CreateBundleOpts & { + resolverMap?: Record + auxiliaryData?: Record + nodeEnv: string +} + +/** + * Used to configure the workers that are processing a snapshot script in parallel + * @category snapshot + */ +export type ProcessScriptOpts = { + bundleHash: string + bundlePath: string + + baseDirPath: string + entryFilePath: string + entryPoint: string + + nodeEnv: string + supportTypeScript: boolean +} + +/** + * Possible outcomes of processing a snapshot script. + * + * - 'failed:assembleScript' means that the bundler generated a proper bundle + * but it couldn't be included in the snapshot script + * - 'failed:verifyScript' means that the script was assembled fine, but some + * violation was detected during the verification phase which indicates that it + * couldn't be snapshotted as is + * - 'completed' all went fine the script could be snapshotted as is + * + * @category snapshot + */ +export type ProcessScriptResult = { + outcome: 'failed:assembleScript' | 'failed:verifyScript' | 'completed' + error?: Error +} + +/** Specifies the signature of the function that represents a module definition + * and when invoked returns a Node.js `module`. + * + * Note that an `exports` parameter which is the same instance as the + * `module.exports` field. The module either mutates the `exports` directly or + * reassigns `module.exports`. After invoking it, the `module.exports` are + * considered the exports of the module. + * + * These definitions are embedded into the snapshot and invoked at runtime. + * They are used instead of full-fledged exports when snapshotting would fail + * were we to initialize them during the snapshot phase. + * + * @category snapshot + * @category loader + */ +export type ModuleDefinition = ( + exports: NodeModule['exports'], + module: { + exports: NodeModule['exports'] + }, + __filename: string, + __dirname: string, + require: NodeRequireFunction +) => NodeModule + +/** + * The result of snapshotting a snapshot script. Namely it has the + * `customRequire` function which also references the `exports` containing fully + * initialized modules as well as `definitions` {@link ModuleDefinition}.. + * + * @category snapshot + */ +export type Snapshot = { + customRequire: { + definitions: Record + exports: Record + // Module._cache === require.cache + cache: Record + } +} + +/** + * Extra data we include in the snapshot, namely the embedded `sourceMap`. + * @category snapshot + */ +export type SnapshotAuxiliaryData = { + sourceMap?: RawSourceMap +} diff --git a/tooling/v8-snapshot/src/utils.ts b/tooling/v8-snapshot/src/utils.ts new file mode 100644 index 0000000000..07ef9d035a --- /dev/null +++ b/tooling/v8-snapshot/src/utils.ts @@ -0,0 +1,345 @@ +import { blueBright, gray, green, yellow } from 'ansi-colors' +import fs from 'fs' +import crypto from 'crypto' +import path from 'path' +import { binary } from './snapbuild/snapbuild' +import resolveFrom from 'resolve-from' + +import debug from 'debug' +const logDebug = debug('cypress:snapgen:debug') + +/** + * Gets the path of the Go bundler binary to use, either from the provided + * `SNAPSHOT_BUNDLER` env var or the installed binary. + * + * @category snapshot + */ +export function getBundlerPath () { + if (process.env.SNAPSHOT_BUNDLER != null) { + const bundler = path.resolve(process.env.SNAPSHOT_BUNDLER) + + logDebug('Using provided SNAPSHOT_BUNDLER (%s)', bundler) + + return bundler + } + + logDebug('Using installed SNAPSHOT_BUNDLER (%s)', binary) + + return binary +} + +function canAccessSync (p: string) { + try { + fs.accessSync(p) + + return true + } catch (_) { + return false + } +} + +/** + * Hashes the provided buffer using the Node.js `crypto` module + * @category utils + */ +export function createHash (s: Buffer) { + return crypto.createHash('sha256').update(s).digest('hex') +} + +/** + * Hashes the content of the provided file using the Node.js `crypto` module + * @category utils + */ +export async function createHashForFile (p: string) { + const contents = await tryReadFile(p) + + if (contents == null) throw new Error(`Cannot obtain hash for '${p}`) + + return createHash(contents) +} + +/** + * Derives a proper name for a bundle from the given hash. + * @category utils + */ +export function bundleFileNameFromHash (hash: string) { + return `bundle.${hash}.js` +} + +/** + * Determines if the given path is accessible to the current user. + * @category utils + */ +export async function canAccess (p: string) { + try { + await fs.promises.access(p) + + return true + } catch (_) { + return false + } +} + +/** + * Tries to read the given file and returns it's contents if it succeeds. + * @category utils + */ +export async function tryReadFile (p: string): Promise { + if (!(await canAccess(p))) return + + return fs.promises.readFile(p) +} + +/** + * Removes the file if it exists and is accessible to the current user. + * @category utils + */ +export async function tryRemoveFile (p: string) { + if (!(await canAccess(p))) { + return new Error(`Cannot access ${p} in order to delete it`) + } + + try { + await fs.promises.unlink(p) + } catch (err) { + return err + } +} + +/** + * Determines if the hash of the given string matches the provided hash. + * It includes the hash of the provided string in the result. + * + * @param p the string to check + * @param hash the hash to check against + * @category utils + */ +export async function matchFileHash (p: string, hash: string) { + const contents = await tryReadFile(p) + + if (contents == null) throw new Error(`Cannot obtain hash for '${p}`) + + const currentHash = createHash(contents) + + return { hash: currentHash, match: hash === currentHash } +} + +/** + * Ensures that the given directory exists by creating it recursively when necessary. + * + * @throws Error if the path already exists and is not a directory + * @category utils + */ +export function ensureDirSync (dir: string) { + if (!canAccessSync(dir)) { + fs.mkdirSync(dir, { recursive: true }) + + return + } + + // dir already exists, make sure it isn't a file + const stat = fs.statSync(dir) + + if (!stat.isDirectory()) { + throw new Error(`'${dir}' is not a directory`) + } +} + +/** + * Checks that the provided path exists and is a file. + * @throws Error if it isn't found or isn't a file. + * @category utils + */ +export function checkFileSync (p: string) { + if (!canAccessSync(p)) throw new Error(`Unable to find '${p}'`) + + const stat = fs.statSync(p) + + if (!stat.isFile()) throw new Error(`${p} is not a file`) +} + +/** + * Checks that the provided path exists and is a directory. + * @throws Error if it isn't found or isn't a directory. + * @category utils + */ +export function checkDirSync (p: string) { + if (!canAccessSync(p)) throw new Error(`Unable to find '${p}'`) + + const stat = fs.statSync(p) + + if (!stat.isDirectory()) throw new Error(`${p} is not a directory`) +} + +/** + * Determines if the given path exists and is a file. + * @category utils + */ +export function fileExistsSync (p: string) { + try { + checkFileSync(p) + + return true + } catch (_) { + return false + } +} + +/** + * Attempts to delete the file at the provided path. + * @return Error if the file cannot be accessed or cannot be removed + * @category utils + */ +export function tryRemoveFileSync (p: string) { + if (!fileExistsSync(p)) { + return new Error(`Cannot access ${p} in order to delete it`) + } + + try { + fs.unlinkSync(p) + } catch (err) { + return err + } +} + +/** + * Resolves the version of the electron that would be used from the provided `root`. + * This is needed in order to use a compatible `mksnapshot` version + * {@link https://github.com/thlorenz/mksnapshot} when creating the snapshot from the + * snapshot script. + * @category snapshot + */ +export function resolveElectronVersion (root: string): string { + const electron = resolveFrom(root, 'electron') + + return require(path.join(path.dirname(electron), 'package.json')).version +} + +/** + * Determines the name to which the existing electron snapshot should be saved + * before replacing it with the enhanced version. + * @category snapshot + */ +export function backupName (orig: string) { + const file = path.basename(orig) + const ext = path.extname(orig) + const extLen = ext.length + + return `${file.slice(0, -extLen)}.orig${ext}` +} + +/** + * Normalizes the given path to have forward slashes at all times. + * This is used to resolve modules from the snapshot as they are always stored + * with forward slashes there. + * @category loader + */ +export const forwardSlash = + path.sep === path.posix.sep + ? (p: string) => p + : (p: string) => p.replace(/(\\)+/g, '/') + +/** + * Determines the path where the electron binary is installed provided the project root. + * @category snapshot + */ +export function installedElectronResourcesFilePath ( + root: string, + electronFile: string, +) { + const electron = path.dirname(resolveFrom(root, 'electron')) + let location + + switch (process.platform) { + case 'darwin': { + location = + 'dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources' + + break + } + case 'linux': + case 'openbsd': + case 'sunos': + case 'win32': + case 'cygwin': + case 'netbsd': { + location = 'dist' + break + } + + default: { + throw new Error(`Platform not supported ${process.platform}`) + } + } + + const snapshotLocation = path.join(electron, location) + + return path.join(snapshotLocation, electronFile) +} + +// at Object.__commonJS../node_modules/mute-stream/mute.js (/Volumes/d/dev/cy/perf-tr1/v8-snapshot/example-multi/cache/snapshot.js:10555:43) +const commonJsModuleRx = /(at Object.__commonJS\.)([^(]+)([^ :]+) *:(\d+)(.+)/ + +/** + * Pretty prints errors related to module's being included in the snapshot. + * @category snapshot + */ +export function prettyPrintError (err: Error, baseDirPath: string) { + if ( + !( + err.stack != null && + (err.message.includes('Cannot require module') || + commonJsModuleRx.test(err.stack)) + ) + ) { + // eslint-disable-next-line no-console + console.error(err) + + return + } + + // eslint-disable-next-line no-console + console.error(err.message) + const frames = err.stack.split('\n') + + const locations: string[] = [] + const prettyFrames: string[] = [] + + for (const frame of frames) { + const match = frame.match(commonJsModuleRx) + + if (match == null) { + prettyFrames.push(frame) + continue + } + + const parts = { + atObject: match[1], + requireString: match[2].trimEnd(), + snapshotPath: match[3], + lineno: match[4], + rest: match[5], + } + + prettyFrames.push( + `${gray(parts.atObject)} ${green(parts.requireString)}` + + `${gray(parts.snapshotPath)}` + + `:${blueBright(parts.lineno)}${gray(')')}`, + ) + + const fullPath = path.resolve(baseDirPath, parts.requireString) + + locations.push( + `${parts.requireString} ${gray(`at snapshot:${ parts.lineno}`)} (${gray( + fullPath, + )})`, + ) + } + // eslint-disable-next-line no-console + console.error(prettyFrames.join('\n')) + + // eslint-disable-next-line no-console + console.error(yellow('\nRequire Definitions Stack:')) + // eslint-disable-next-line no-console + console.error(' %s', green(locations.join('\n '))) +} diff --git a/tooling/v8-snapshot/src/v8-snapshot.ts b/tooling/v8-snapshot/src/v8-snapshot.ts new file mode 100644 index 0000000000..f1e313ab68 --- /dev/null +++ b/tooling/v8-snapshot/src/v8-snapshot.ts @@ -0,0 +1,13 @@ +export * from './generator/snapshot-generator' + +export * from './generator/snapshot-generate-entry-via-yarn' + +export * from './generator/snapshot-generate-entry-via-dependencies' + +export * from './generator/snapshot-generator-flags' + +export { ensureDirSync, fileExistsSync, prettyPrintError } from './utils' + +export * from './meta/dependency-map' + +export * from './setup' diff --git a/tooling/v8-snapshot/test/.mocharc.js b/tooling/v8-snapshot/test/.mocharc.js new file mode 100644 index 0000000000..01359e3ac7 --- /dev/null +++ b/tooling/v8-snapshot/test/.mocharc.js @@ -0,0 +1,9 @@ +module.exports = { + require: '@packages/ts/register', + reporter: 'mocha-multi-reporters', + reporterOptions: { + configFile: '../../mocha-reporter-config.json', + }, + timeout: 30000, + watchFiles: ['test/**/*.ts', 'src/**/*.ts'], +} diff --git a/tooling/v8-snapshot/test/fixtures/access-buffer/accessing-buffer.js b/tooling/v8-snapshot/test/fixtures/access-buffer/accessing-buffer.js new file mode 100644 index 0000000000..dcef87c68c --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/access-buffer/accessing-buffer.js @@ -0,0 +1,6 @@ +var isModern = + typeof Buffer.alloc === 'function' && + typeof Buffer.allocUnsafe === 'function' && + typeof Buffer.from === 'function' + +module.exports = isModern diff --git a/tooling/v8-snapshot/test/fixtures/access-buffer/entry.js b/tooling/v8-snapshot/test/fixtures/access-buffer/entry.js new file mode 100644 index 0000000000..fc6fe6b931 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/access-buffer/entry.js @@ -0,0 +1,8 @@ +const valid = require('./valid-module') +const invalid = require('./accessing-buffer') + +function entry() { + return valid() + invalid() +} + +module.exports = entry diff --git a/tooling/v8-snapshot/test/fixtures/access-buffer/valid-module.js b/tooling/v8-snapshot/test/fixtures/access-buffer/valid-module.js new file mode 100644 index 0000000000..0e6e37360a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/access-buffer/valid-module.js @@ -0,0 +1,6 @@ +function foo() { + console.log('this console should be rewritten') + return 2 +} + +module.exports = foo diff --git a/tooling/v8-snapshot/test/fixtures/console-assign/entry.js b/tooling/v8-snapshot/test/fixtures/console-assign/entry.js new file mode 100644 index 0000000000..37d6a78884 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/console-assign/entry.js @@ -0,0 +1,8 @@ +const invalid = require('./reassign-console') +const valid = require('./using-console') + +function entry() { + return valid() + invalid() +} + +module.exports = entry diff --git a/tooling/v8-snapshot/test/fixtures/console-assign/reassign-console.js b/tooling/v8-snapshot/test/fixtures/console-assign/reassign-console.js new file mode 100644 index 0000000000..08b920e653 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/console-assign/reassign-console.js @@ -0,0 +1,10 @@ +function assign() { + if (typeof console == 'undefined') { + // this should not be rewritten + console = function () {} + } + console.log('this should also be rewritten') + return 1 +} + +module.exports = assign diff --git a/tooling/v8-snapshot/test/fixtures/console-assign/using-console.js b/tooling/v8-snapshot/test/fixtures/console-assign/using-console.js new file mode 100644 index 0000000000..0e6e37360a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/console-assign/using-console.js @@ -0,0 +1,6 @@ +function foo() { + console.log('this console should be rewritten') + return 2 +} + +module.exports = foo diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/app.js b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/app.js new file mode 100644 index 0000000000..b7c2b73686 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/app.js @@ -0,0 +1,7 @@ +// @ts-check +'use strict' + +const getErrnameJSON = require('./entry') + +// Using invalid err number in order to get same result on all platforms +console.log(getErrnameJSON(-666)) diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/index.js b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/index.js new file mode 100644 index 0000000000..c59d93162c --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/index.js @@ -0,0 +1,7 @@ +// Reproduces execa code using lib errname which needs to be deferred + +const errname = require('./lib/errname') + +module.exports = function getErrname(n) { + return errname(n) +} diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/lib/errname.js b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/lib/errname.js new file mode 100644 index 0000000000..6ccca01b45 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/lib/errname.js @@ -0,0 +1,10 @@ +// Reproduces code that causes this module to be deferred + +const util = require('util') + +// Added in: v9.7.0 so for our test case this we don't need to consider the else branch +if (typeof util.getSystemErrorName === 'function') { + module.exports = util.getSystemErrorName +} else { + module.exports = () => 'Used to be uv.errname' +} diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/entry.js b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/entry.js new file mode 100644 index 0000000000..e9ea1c2c9b --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/entry.js @@ -0,0 +1,7 @@ +// @ts-check +'use strict' +const getErrname = require('./commit-info/execa/index') + +module.exports = function getErrnameJSON(n) { + return JSON.stringify({ errname: getErrname(n) }) +} diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/hook-require.js b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/hook-require.js new file mode 100644 index 0000000000..ccfdd1a307 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/hook-require.js @@ -0,0 +1,6 @@ +// @ts-check +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/yarn.lock b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/deep-nested-deferred/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/tooling/v8-snapshot/test/fixtures/dirname-filename-use/entry.js b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/entry.js new file mode 100644 index 0000000000..47002899cf --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/entry.js @@ -0,0 +1,9 @@ +const valid = require('./valid-module') +const dirname = require('./using-dirname-delayed') +const filename = require('./using-filename-init') + +function entry() { + return valid() + dirname() + filename +} + +module.exports = entry diff --git a/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-dirname-delayed.js b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-dirname-delayed.js new file mode 100644 index 0000000000..c36331cd3b --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-dirname-delayed.js @@ -0,0 +1,5 @@ +function delayed() { + return __dirname.length +} + +module.exports = delayed diff --git a/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-filename-init.js b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-filename-init.js new file mode 100644 index 0000000000..bc35859610 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-filename-init.js @@ -0,0 +1 @@ +module.exports = 'file://' + __filename diff --git a/tooling/v8-snapshot/test/fixtures/dirname-filename-use/valid-module.js b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/valid-module.js new file mode 100644 index 0000000000..0e6e37360a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/dirname-filename-use/valid-module.js @@ -0,0 +1,6 @@ +function foo() { + console.log('this console should be rewritten') + return 2 +} + +module.exports = foo diff --git a/tooling/v8-snapshot/test/fixtures/invoke-missing-function/entry.js b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/entry.js new file mode 100644 index 0000000000..d66d4fc8ff --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/entry.js @@ -0,0 +1,10 @@ +const valid = require('./valid-module') +const invalid1 = require('./invoke-not-function') +const invalid2 = require('./invoke-undefined') +const invalid3 = require('./invoke-push-on-undefined') + +function entry() { + return valid() + invalid1() + invalid2() + invalid3() +} + +module.exports = entry diff --git a/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-not-function.js b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-not-function.js new file mode 100644 index 0000000000..3c694126db --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-not-function.js @@ -0,0 +1,15 @@ +var ref +exports.some = + (ref = Array.prototype.some) != null + ? ref + : function (fn) { + var e, i, len1, ref1 + ref1 = this + for (i = 0, len1 = ref1.length; i < len1; i++) { + e = ref1[i] + if (fn(e)) { + return true + } + } + return false + } diff --git a/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-push-on-undefined.js b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-push-on-undefined.js new file mode 100644 index 0000000000..5f1623a1a9 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-push-on-undefined.js @@ -0,0 +1,4 @@ +if (!process.browser) { + var cwd = process.cwd() + module.paths.push(cwd, path.join(cwd, 'node_modules')) +} diff --git a/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-undefined.js b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-undefined.js new file mode 100644 index 0000000000..a7bd9eff86 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-undefined.js @@ -0,0 +1,2 @@ +module.exports = __defined_late__() +var __defined_late__ = function () {} diff --git a/tooling/v8-snapshot/test/fixtures/invoke-missing-function/valid-module.js b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/valid-module.js new file mode 100644 index 0000000000..0e6e37360a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/invoke-missing-function/valid-module.js @@ -0,0 +1,6 @@ +function foo() { + console.log('this console should be rewritten') + return 2 +} + +module.exports = foo diff --git a/tooling/v8-snapshot/test/fixtures/iterative/project/yarn.lock b/tooling/v8-snapshot/test/fixtures/iterative/project/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/project/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-base.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-base.js new file mode 100644 index 0000000000..18bca72794 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-base.js @@ -0,0 +1,3 @@ +exports.healthy = require('./healthy') +exports.intermediate = require('./intermediate') +exports.coffee = require('./norewrite') diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-deferred.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-deferred.js new file mode 100644 index 0000000000..39a15978fd --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-deferred.js @@ -0,0 +1,4 @@ +exports.healthy = require('./healthy') +exports.deferred = require('./deferred') +exports.intermediate = require('./intermediate-deferred') +exports.norewrite = require('./norewrite') diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-healthy.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-healthy.js new file mode 100644 index 0000000000..96cec721d8 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-healthy.js @@ -0,0 +1,4 @@ +exports.healthy = require('./healthy') +exports.deferred = require('./deferred') +exports.intermediate = require('./intermediate-healthy') +exports.norewrite = require('./norewrite') diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-norewrite.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-norewrite.js new file mode 100644 index 0000000000..6a5f96088d --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-norewrite.js @@ -0,0 +1,4 @@ +exports.healthy = require('./healthy') +exports.deferred = require('./deferred') +exports.intermediate = require('./intermediate-norewrite') +exports.norewrite = require('./norewrite') diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-deferred.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-deferred.js new file mode 100644 index 0000000000..d85b883967 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-deferred.js @@ -0,0 +1,6 @@ +require('./norewrite') + +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined +var stuff = process.env.TZ + +module.exports = 2 \ No newline at end of file diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-healthy.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-healthy.js new file mode 100644 index 0000000000..c7e33af7c3 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-healthy.js @@ -0,0 +1,3 @@ +require('./norewrite') + +module.exports = 1 \ No newline at end of file diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-norewrite.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-norewrite.js new file mode 100644 index 0000000000..2e2d09e71f --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-norewrite.js @@ -0,0 +1,19 @@ +// @ts-check +// This problematic code has been taken from graceful-fs/polyfill.js +// It results in invalid code when rewritten. + +require('./norewrite') + +var origCwd = process.cwd +var cwd = null + +process.cwd = function () { + if (!cwd) cwd = origCwd.call(process) + return cwd +} + +module.exports = patch + +function patch(fs) { + fs.patchedCwd = process.cwd() +} diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-deferred.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-deferred.js new file mode 100644 index 0000000000..1806f2792a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-deferred.js @@ -0,0 +1,4 @@ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined +var stuff = process.env.TZ + +module.exports = 2 diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-healthy.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-healthy.js new file mode 100644 index 0000000000..e8f7328d6e --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-healthy.js @@ -0,0 +1 @@ +module.exports = 1 diff --git a/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-norewrite.js b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-norewrite.js new file mode 100644 index 0000000000..8d455a3bae --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-norewrite.js @@ -0,0 +1,17 @@ +// @ts-check +// This problematic code has been taken from graceful-fs/polyfill.js +// It results in invalid code when rewritten. + +var origCwd = process.cwd +var cwd = null + +process.cwd = function () { + if (!cwd) cwd = origCwd.call(process) + return cwd +} + +module.exports = patch + +function patch(fs) { + fs.patchedCwd = process.cwd() +} diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/entry.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/entry.js new file mode 100644 index 0000000000..340bdd36cf --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/entry.js @@ -0,0 +1,5 @@ +exports.loads = require('./loads-static-deferred') +exports.uses = require('./lateuses-static-deferred') +exports.usesLoads = require('./uses-loads-static-deferred') +exports.usesLateUses = require('./uses-lateuses-static-deferred') +exports.loadsLateUses = require('./loads-lateuses-static-deferred') diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/lateuses-static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/lateuses-static-deferred.js new file mode 100644 index 0000000000..25991d9b05 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/lateuses-static-deferred.js @@ -0,0 +1,8 @@ +// This module requires the statically deferred but doesn't use it during init +// Thus the resolution of the statically deferred is delayed, but this module is not deferred. +const isBuffer = require('./static-deferred') +function lateUse(x) { + return isBuffer(x) +} + +module.exports = lateUse diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-lateuses-static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-lateuses-static-deferred.js new file mode 100644 index 0000000000..720d66bb66 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-lateuses-static-deferred.js @@ -0,0 +1,3 @@ +// This module calls a function that needs to be deferred and thus should be deferred +const isBuffer = require('./lateuses-static-deferred') +module.exports = isBuffer('not a buffer') diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-static-deferred.js new file mode 100644 index 0000000000..3c717c8b47 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-static-deferred.js @@ -0,0 +1,3 @@ +// This module uses the statically deferred module during initialization and thus is deferred as well +const isBuffer = require('./static-deferred') +module.exports = isBuffer('not a buffer') diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/static-deferred.js new file mode 100644 index 0000000000..1f13b8b27a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/static-deferred.js @@ -0,0 +1,10 @@ +// Is deferred via static analysis since it probes `Buffer` + +var isBuffer = + typeof Buffer !== 'undefined' + ? Buffer.isBuffer + : function stubFalse() { + return false + } + +module.exports = isBuffer diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-lateuses-static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-lateuses-static-deferred.js new file mode 100644 index 0000000000..2b9f0abe2a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-lateuses-static-deferred.js @@ -0,0 +1,5 @@ +// This module delays calling a function that needs to be deferred and thus should not be deferred +const isBuffer = require('./lateuses-static-deferred') +module.exports = function areBuffer(x, y) { + return isBuffer(x) && isBuffer(y) +} diff --git a/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-loads-static-deferred.js b/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-loads-static-deferred.js new file mode 100644 index 0000000000..71548faa9c --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-loads-static-deferred.js @@ -0,0 +1,3 @@ +// This module would cause the static deferred module to be loaded and thus needs to be deferred +const isStringBuffer = require('./loads-static-deferred') +module.exports = isStringBuffer diff --git a/tooling/v8-snapshot/test/fixtures/minimal/entry.js b/tooling/v8-snapshot/test/fixtures/minimal/entry.js new file mode 100644 index 0000000000..a012369a60 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/minimal/entry.js @@ -0,0 +1,6 @@ +'use strict' +function add(a, b) { + return a + b +} + +module.exports = { add } diff --git a/tooling/v8-snapshot/test/fixtures/minimal/yarn.lock b/tooling/v8-snapshot/test/fixtures/minimal/yarn.lock new file mode 100644 index 0000000000..c323c638ef --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/minimal/yarn.lock @@ -0,0 +1 @@ +Just here to get a hash diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/app.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/app.js new file mode 100644 index 0000000000..51d7c7fa78 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/app.js @@ -0,0 +1,8 @@ +// @ts-check +'use strict' + +const fs = require('fs') + +const { patch, supportsColor } = require('./entry') +patch() +console.log(JSON.stringify({ patchedCwd: fs.patchedCwd, supportsColorStdout: supportsColor.stdout })) diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/entry.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/entry.js new file mode 100644 index 0000000000..37269e0316 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/entry.js @@ -0,0 +1,10 @@ +// @ts-check +'use strict' + +const fs = require('fs') +const patch = require('./graceful-fs-polyfill') + +exports.patch = function patchFs() { + patch(fs) +} +exports.supportsColor = require('./lib/colors/lib/system/supports-colors') diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/graceful-fs-polyfill.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/graceful-fs-polyfill.js new file mode 100644 index 0000000000..8d455a3bae --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/graceful-fs-polyfill.js @@ -0,0 +1,17 @@ +// @ts-check +// This problematic code has been taken from graceful-fs/polyfill.js +// It results in invalid code when rewritten. + +var origCwd = process.cwd +var cwd = null + +process.cwd = function () { + if (!cwd) cwd = origCwd.call(process) + return cwd +} + +module.exports = patch + +function patch(fs) { + fs.patchedCwd = process.cwd() +} diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/hook-require.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/hook-require.js new file mode 100644 index 0000000000..ccfdd1a307 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/hook-require.js @@ -0,0 +1,6 @@ +// @ts-check +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/has-flag.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/has-flag.js new file mode 100644 index 0000000000..6a7da931e3 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/has-flag.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function(flag, argv) { + argv = argv || process.argv; + + var terminatorPos = argv.indexOf('--'); + var prefix = /^-{1,2}/.test(flag) ? '' : '--'; + var pos = argv.indexOf(prefix + flag); + + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/supports-colors.js b/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/supports-colors.js new file mode 100644 index 0000000000..74ee5da2ba --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/supports-colors.js @@ -0,0 +1,129 @@ +'use strict'; + +// Full repro of supports color module which causes norewrite and is problematic on windows. +// We also nest it deep inside node_modules in order to mirror the encountered issue + +var os = require('os'); +var hasFlag = require('./has-flag.js'); + +var env = process.env; + +var forceColor = void 0; +if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') + || hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 + || parseInt(env.FORCE_COLOR, 10) !== 0; +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level: level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; +} + +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + + if (hasFlag('color=16m') || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + + var min = forceColor ? 1 : 0; + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first + // Windows release that supports 256 colors. Windows 10 build 14931 is the + // first release that supports 16m/TrueColor. + var osRelease = os.release().split('.'); + if (Number(process.versions.node.split('.')[0]) >= 8 + && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) { + return sign in env; + }) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0 + ); + } + + if ('TERM_PROGRAM' in env) { + var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Hyper': + return 3; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + if (env.TERM === 'dumb') { + return min; + } + + return min; +} + +function getSupportLevel(stream) { + var level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr), +}; diff --git a/tooling/v8-snapshot/test/fixtures/no-rewrite/yarn.lock b/tooling/v8-snapshot/test/fixtures/no-rewrite/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/no-rewrite/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/app.js b/tooling/v8-snapshot/test/fixtures/rewrites/app.js new file mode 100644 index 0000000000..609ff3a788 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/app.js @@ -0,0 +1,14 @@ +const res = require('./entry') + +console.log( + JSON.stringify({ + multiAssign: { + first: res.multiAssign.first, + second: res.multiAssign.second, + }, + multiExport: { + base: res.multiExport.base, + Base: res.multiExport.Base, + }, + }) +) diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/base.js b/tooling/v8-snapshot/test/fixtures/rewrites/base.js new file mode 100644 index 0000000000..cc72a520f1 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/base.js @@ -0,0 +1,6 @@ +// Trigger defer +if (process.pid == null) { + console.error('missing pid') +} + +module.exports = { base: true, version: 1 } diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/entry.js b/tooling/v8-snapshot/test/fixtures/rewrites/entry.js new file mode 100644 index 0000000000..20aeb416c3 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/entry.js @@ -0,0 +1,4 @@ +module.exports = { + multiAssign: require('./multi-assign'), + multiExport: require('./multi-export'), +} diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/hook-require.js b/tooling/v8-snapshot/test/fixtures/rewrites/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/multi-assign.js b/tooling/v8-snapshot/test/fixtures/rewrites/multi-assign.js new file mode 100644 index 0000000000..d240e4acbd --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/multi-assign.js @@ -0,0 +1,6 @@ +let first, second + +first = second = require('./base') + +exports.first = first +exports.second = second diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/multi-export.js b/tooling/v8-snapshot/test/fixtures/rewrites/multi-export.js new file mode 100644 index 0000000000..dc81fd8705 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/multi-export.js @@ -0,0 +1 @@ +exports.Base = exports.base = require('./base') diff --git a/tooling/v8-snapshot/test/fixtures/rewrites/package.json b/tooling/v8-snapshot/test/fixtures/rewrites/package.json new file mode 100644 index 0000000000..65d94caeb7 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/rewrites/package.json @@ -0,0 +1,3 @@ +{ + "name": "esbuild-rewrites" +} diff --git a/tooling/v8-snapshot/test/fixtures/windows-issues/app.js b/tooling/v8-snapshot/test/fixtures/windows-issues/app.js new file mode 100644 index 0000000000..19230691d4 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/windows-issues/app.js @@ -0,0 +1,4 @@ +'use strict' + +const entry = require('./entry') +console.log(JSON.stringify(entry())) diff --git a/tooling/v8-snapshot/test/fixtures/windows-issues/babel/unsupportedIterableToArray.js b/tooling/v8-snapshot/test/fixtures/windows-issues/babel/unsupportedIterableToArray.js new file mode 100644 index 0000000000..be3c3c3873 --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/windows-issues/babel/unsupportedIterableToArray.js @@ -0,0 +1,2 @@ +'use strict' +module.exports = 'babel-unsupported' diff --git a/tooling/v8-snapshot/test/fixtures/windows-issues/entry.js b/tooling/v8-snapshot/test/fixtures/windows-issues/entry.js new file mode 100644 index 0000000000..6373978bee --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/windows-issues/entry.js @@ -0,0 +1,7 @@ +// @ts-check +'use strict' +// This would cause problems if backslashes aren't properly escaped, resulting in `\u` special char +const unsupported = require('./babel/unsupportedIterableToArray') +module.exports = function () { + return { unsupported } +} diff --git a/tooling/v8-snapshot/test/fixtures/windows-issues/hook-require.js b/tooling/v8-snapshot/test/fixtures/windows-issues/hook-require.js new file mode 100644 index 0000000000..fdc8a8691e --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/windows-issues/hook-require.js @@ -0,0 +1,5 @@ +'use strict' +require('@packages/v8-snapshot-require').snapshotRequire(__dirname, { + diagnosticsEnabled: true, + useCache: true, +}) diff --git a/tooling/v8-snapshot/test/fixtures/windows-issues/yarn.lock b/tooling/v8-snapshot/test/fixtures/windows-issues/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/tooling/v8-snapshot/test/fixtures/windows-issues/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/tooling/v8-snapshot/test/integration/express.spec.ts b/tooling/v8-snapshot/test/integration/express.spec.ts new file mode 100644 index 0000000000..a4b51180de --- /dev/null +++ b/tooling/v8-snapshot/test/integration/express.spec.ts @@ -0,0 +1,50 @@ +// This test uses the ../../../example-express, installing a snapshot and +// checking the metadata for deferreds and healthy modules. +import path from 'path' +import fs from 'fs-extra' +import execa from 'execa' +import { assert } from 'chai' +import Fixtures from '@tooling/system-tests' +import * as FixturesScaffold from '@tooling/system-tests/lib/dep-installer' +import snapshot from 'snap-shot-it' + +const EXPRESS_MINIMAL_PROJECT = 'v8-snapshot/example-express' + +describe('integration: express', () => { + it('installs snapshot for example-express', async () => { + Fixtures.remove() + await FixturesScaffold.scaffoldCommonNodeModules() + await FixturesScaffold.symlinkNodeModule('@tooling/v8-snapshot') + await FixturesScaffold.symlinkNodeModule('electron') + await FixturesScaffold.symlinkNodeModule('@packages/v8-snapshot-require') + const projectBaseDir = await Fixtures.scaffoldProject(EXPRESS_MINIMAL_PROJECT) + + await FixturesScaffold.scaffoldProjectNodeModules({ project: EXPRESS_MINIMAL_PROJECT, updateLockFile: false, forceCopyDependencies: true }) + + const cacheDir = path.join(projectBaseDir, 'cache') + const metadataFile = path.join(cacheDir, 'snapshot-meta.json') + + await fs.remove(cacheDir) + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const _MB = 1024 * 1024 + + let stdout = '' + let stderr = '' + + try { + ({ stdout, stderr } = await execa('node', ['./snapshot/install-snapshot.js'], { cwd: projectBaseDir, maxBuffer: 600 * _MB, env })) + + const { deferredHash, ...metadata } = require(metadataFile) + + snapshot(metadata) + } catch (err: any) { + assert.fail(`error: ${err.toString()}\nstdout: ${stdout}\nstderr: ${stderr}`) + } + }) +}) diff --git a/tooling/v8-snapshot/test/integration/loading.spec.ts b/tooling/v8-snapshot/test/integration/loading.spec.ts new file mode 100644 index 0000000000..5f9a018563 --- /dev/null +++ b/tooling/v8-snapshot/test/integration/loading.spec.ts @@ -0,0 +1,316 @@ +import path from 'path' +import { SnapshotGenerator } from '../../src/generator/snapshot-generator' +import { exec as execOrig } from 'child_process' +import { promisify } from 'util' +import { electronExecutable } from '../utils/consts' +import { expect, assert } from 'chai' +import Fixtures from '@tooling/system-tests' +import * as FixturesScaffold from '@tooling/system-tests/lib/dep-installer' +import fs from 'fs-extra' + +const exec = promisify(execOrig) + +const scaffoldProject = async (project: string): Promise => { + Fixtures.remove() + await FixturesScaffold.scaffoldCommonNodeModules() + await FixturesScaffold.symlinkNodeModule('electron') + await FixturesScaffold.symlinkNodeModule('@packages/v8-snapshot-require') + const projectBaseDir = await Fixtures.scaffoldProject(project) + + await FixturesScaffold.scaffoldProjectNodeModules({ project, updateLockFile: false, forceCopyDependencies: true }) + + return projectBaseDir +} + +describe('loading', () => { + it('loads a healthy module requires a deferred one', async () => { + const projectName = 'v8-snapshot/deferred-from-healthy' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const res = JSON.parse(stdout.trim()) + + expect(res.healthyCodeLen).to.be.gte(100) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('loads an entry esm module importing a lodash function', async () => { + const projectName = 'v8-snapshot/esm' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.mjs') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const res = JSON.parse(stdout.trim()) + + expect(res.isObjectLike).to.be.true + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('loads a healthy module that requires an external one', async () => { + const projectName = 'v8-snapshot/external-from-healthy' + + const projectBaseDir = await scaffoldProject(projectName) + + await fs.move(path.join(projectBaseDir, 'bluebird'), path.join(projectBaseDir, 'node_modules', 'bluebird')) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + + const res = JSON.parse(stdout.trim()) + + expect(res.healthyString).to.be.equal('FAKE BLUEBIRD') + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + if (process.platform === 'darwin') { + it('loads an app loading and using fsevents which has native module component', async () => { + const projectName = 'v8-snapshot/native-modules' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const res = JSON.parse(stdout.trim()) + + expect(res.itemIsDir).to.be.equal(131072) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + } + + it('loads a cached module that modifies require cache', async () => { + const projectName = 'v8-snapshot/require-cache' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + + await fs.remove(cacheDir) + + const snapshotEntryFile = path.join(projectBaseDir, 'cached-manipulator.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/cached-app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const { sync1, sync2, rand1, rand2 } = JSON.parse(stdout.trim()) + + expect(sync1).to.not.equal(sync2) + expect(rand1).to.not.equal(rand2) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('loads an uncached module that modifies require cache', async () => { + const projectName = 'v8-snapshot/require-cache' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + + await fs.remove(cacheDir) + + const snapshotEntryFile = path.join(projectBaseDir, 'uncached-entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/uncached-app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const { sync1, sync2, rand1, rand2 } = JSON.parse(stdout.trim()) + + expect(sync1).to.not.equal(sync2) + expect(rand1).to.not.equal(rand2) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('loads from full path provided via variable', async () => { + const projectName = 'v8-snapshot/require-full-path-var' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const res = JSON.parse(stdout.trim()) + + expect(res.version).to.equal('1.1.1') + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('loads all cached', async () => { + const projectName = 'v8-snapshot/stealthy-require' + + const projectBaseDir = await scaffoldProject(projectName) + const cacheDir = path.join(projectBaseDir, 'cache') + + await fs.remove(cacheDir) + const snapshotEntryFile = path.join(projectBaseDir, 'entry-all-cached.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/spec/non-native.js` + + try { + const { stdout, stderr } = await exec(cmd, { env }) + + const lines = stdout.split('\n') + + if (lines[lines.length - 2] !== '# PASS') { + assert.fail(`stdout had #FAIL:\n${stdout}\n${stderr}`) + } + } catch (err: any) { + assert.fail(err.toString()) + } + }) +}) diff --git a/tooling/v8-snapshot/test/unit/doctor.spec.ts b/tooling/v8-snapshot/test/unit/doctor.spec.ts new file mode 100644 index 0000000000..b931102465 --- /dev/null +++ b/tooling/v8-snapshot/test/unit/doctor.spec.ts @@ -0,0 +1,418 @@ +import path from 'path' +import { readBundleResult, readSnapshotResult } from '../utils/bundle' +import { SnapshotGenerator } from '../../src/generator/snapshot-generator' +import { Flag } from '../../src/generator/snapshot-generator-flags' +import { electronExecutable } from '../utils/consts' +import { expect, assert } from 'chai' +import { promisify } from 'util' +import { exec as execOrig } from 'child_process' +import fs from 'fs-extra' + +const exec = promisify(execOrig) + +describe('doctor', () => { + it('snapshots an entry points with two modules, one accessing Buffer', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'access-buffer') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + flags: Flag.Script, + }) + + await generator.createExportBundle() + const { meta, exported } = readBundleResult(cacheDir) + + expect(meta).to.deep.equal({ + norewrite: [], + deferred: ['./accessing-buffer.js'], + deferredHashFile: '', + healthy: ['./entry.js', './valid-module.js'], + }) + + expect({ + keys: Object.keys(exported), + }).to.deep.equal({ + keys: ['./valid-module.js', './accessing-buffer.js', './entry.js'], + }) + }) + + it('snapshots entry points modules using and reassigning console', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'console-assign') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + flags: Flag.Script, + }) + + await generator.createExportBundle() + const { meta, exported } = readBundleResult(cacheDir) + + expect(meta).to.deep.equal({ + norewrite: [], + deferred: [], + deferredHashFile: '', + healthy: ['./entry.js', './reassign-console.js', './using-console.js'], + }) + + expect({ + keys: Object.keys(exported), + }).to.deep.equal({ + keys: ['./reassign-console.js', './using-console.js', './entry.js'], + }) + + const reassign = exported['./reassign-console.js'].toString() + + expect(reassign.includes('typeof get_console()'), 'reassign-console.js: does rewrite typeof console').to.be.true + + expect(reassign.includes('get_console().log'), 'reassign-console.js: does rewrite typeof console.log').to.be.true + + expect(!reassign.includes('get_console() = function') && reassign.includes('console = function'), 'reassign-console.js: does not rewrite console =').to.be.true, + + expect(exported['./using-console.js'].toString().includes('get_console'), 'using-console.js: does rewrite console').to.be.true + }) + + it('snapshots with requiring a module that depends on a module needing to be deferred', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'deep-nested-deferred') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + + await fs.remove(cacheDir) + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: process.env.DEBUG ?? '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + let stdout: string | undefined + + try { + ({ stdout } = await exec(cmd, { env })) + const res = JSON.parse(stdout.trim()) + + expect(res.errname).to.equal('Unknown system error -666') + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('snapshots using dir/file name delayed and during init', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'dirname-filename-use') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + flags: Flag.Script, + }) + + await generator.createExportBundle() + const { meta, exported } = readBundleResult(cacheDir) + + expect(meta).to.deep.equal({ + norewrite: [], + deferred: ['./using-filename-init.js'], + deferredHashFile: '', + healthy: ['./entry.js', './using-dirname-delayed.js', './valid-module.js'], + }) + + expect({ + keys: Object.keys(exported), + }).to.deep.equal({ + keys: [ + './valid-module.js', + './using-dirname-delayed.js', + './using-filename-init.js', + './entry.js', + ], + }) + }) + + it('snapshots entry points to modules, with missing functions', async () => { + const projectBaseDir = path.join( + __dirname, + '..', + 'fixtures', + 'invoke-missing-function', + ) + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + flags: Flag.Script, + }) + + await generator.createExportBundle() + const { meta, exported } = readBundleResult(cacheDir) + + expect(meta).to.deep.equal({ + norewrite: ['./invoke-not-function.js', './invoke-undefined.js'], + deferred: ['./invoke-push-on-undefined.js'], + deferredHashFile: '', + healthy: ['./entry.js', './valid-module.js'], + }) + + expect({ + keys: Object.keys(exported), + }).to.deep.equal({ + keys: [ + './valid-module.js', + './invoke-not-function.js', + './invoke-undefined.js', + './invoke-push-on-undefined.js', + './entry.js', + ], + }) + }) + + it('snapshots entry points to dependents of a module that is statically deferred', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'load-static-deferred') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + flags: Flag.Script, + }) + + await generator.createExportBundle() + const { meta, exported } = readBundleResult(cacheDir) + + expect(meta).to.deep.equal({ + norewrite: [], + deferred: [ + './loads-lateuses-static-deferred.js', + './loads-static-deferred.js', + './static-deferred.js', + './uses-loads-static-deferred.js', + ], + deferredHashFile: '', + healthy: [ + './entry.js', + './lateuses-static-deferred.js', + './uses-lateuses-static-deferred.js', + ], + }) + + expect({ + keys: Object.keys(exported), + }).to.deep.equal({ + keys: [ + './static-deferred.js', + './loads-static-deferred.js', + './lateuses-static-deferred.js', + './uses-loads-static-deferred.js', + './uses-lateuses-static-deferred.js', + './loads-lateuses-static-deferred.js', + './entry.js', + ], + }) + }) + + it('snapshots an entry that requires a module that has is detected norewrite', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'no-rewrite') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + + await fs.remove(cacheDir) + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + let stdout: string | undefined + + try { + ({ stdout } = await exec(cmd, { env })) + const res = JSON.parse(stdout.trim()) + + expect(res.patchedCwd).to.equal(process.cwd()) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('snapshots an entry, replaces an intermediate healthy file with an intermediate deferred file, and snapshots again', async () => { + const templateDir = path.join(__dirname, '..', 'fixtures', 'iterative', 'templates') + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'iterative', 'project') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + + await fs.remove(cacheDir) + let generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + // Set up project to use an intermediate healthy dependency and snapshot + const initialEntry = await fs.readFile(path.join(templateDir, 'entry-intermediate-healthy.js')) + const healthy = await fs.readFile(path.join(templateDir, 'leaf-healthy.js')) + const deferred = await fs.readFile(path.join(templateDir, 'leaf-deferred.js')) + const intermediateHealthy = await fs.readFile(path.join(templateDir, 'intermediate-healthy.js')) + const intermediateDeferred = await fs.readFile(path.join(templateDir, 'intermediate-deferred.js')) + const norewrite = await fs.readFile(path.join(templateDir, 'leaf-norewrite.js')) + + await fs.writeFile(path.join(projectBaseDir, 'entry.js'), initialEntry) + await fs.writeFile(path.join(projectBaseDir, 'healthy.js'), healthy) + await fs.writeFile(path.join(projectBaseDir, 'deferred.js'), deferred) + await fs.writeFile(path.join(projectBaseDir, 'intermediate-healthy.js'), intermediateHealthy) + await fs.writeFile(path.join(projectBaseDir, 'intermediate-deferred.js'), intermediateDeferred) + await fs.writeFile(path.join(projectBaseDir, 'norewrite.js'), norewrite) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + let { meta: { deferredHash, deferredHashFile, ...metadata } } = readSnapshotResult(cacheDir) + + expect(metadata).to.deep.equal({ + norewrite: [ + './norewrite.js', + ], + deferred: [ + './deferred.js', + ], + healthy: [ + './entry.js', + './healthy.js', + './intermediate-healthy.js', + ], + }) + + generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + previousDeferred: metadata.deferred, + previousHealthy: metadata.healthy, + previousNoRewrite: metadata.norewrite, + }) + + // Switch project to use an intermediate deferred dependency and re-snapshot + const updatedEntry = await fs.readFile(path.join(templateDir, 'entry-intermediate-deferred.js')) + + await fs.writeFile(path.join(projectBaseDir, 'entry.js'), updatedEntry) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + ;({ meta: { deferredHash, deferredHashFile, ...metadata } } = readSnapshotResult(cacheDir)) + + expect(metadata).to.deep.equal({ + norewrite: [ + './norewrite.js', + ], + deferred: [ + './deferred.js', + './intermediate-deferred.js', + ], + healthy: [ + './entry.js', + './healthy.js', + ], + }) + }) + + // TODO: We still have a hole where a file moves from healthy to deferred or norewrite. This doesn't happen very frequently and can be solved later: + // https://github.com/cypress-io/cypress/issues/23690 + it.skip('snapshots an entry, typescripts an intermediate file, and snapshots again', async () => { + const templateDir = path.join(__dirname, '..', 'fixtures', 'iterative', 'templates') + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'iterative', 'project') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + + await fs.remove(cacheDir) + let generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + // Set up project with a healthy and no rewrite leaf + const entry = await fs.readFile(path.join(templateDir, 'entry-base.js')) + const healthy = await fs.readFile(path.join(templateDir, 'leaf-healthy.js')) + const norewrite = await fs.readFile(path.join(templateDir, 'leaf-norewrite.js')) + + await fs.writeFile(path.join(projectBaseDir, 'entry.js'), entry) + await fs.writeFile(path.join(projectBaseDir, 'healthy.js'), healthy) + await fs.writeFile(path.join(projectBaseDir, 'norewrite.js'), norewrite) + + // First create the snapshot with an intermediate healthy file + const initialEntry = await fs.readFile(path.join(templateDir, 'intermediate-healthy.js')) + + await fs.writeFile(path.join(projectBaseDir, 'intermediate.js'), initialEntry) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + let { meta: { deferredHash, deferredHashFile, ...metadata } } = readSnapshotResult(cacheDir) + + expect(metadata).to.deep.equal({ + norewrite: [ + './norewrite.js', + ], + deferred: [], + healthy: [ + './entry.js', + './healthy.js', + './intermediate.js', + ], + }) + + generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + previousDeferred: metadata.deferred, + previousHealthy: metadata.healthy, + previousNoRewrite: metadata.norewrite, + }) + + // Then create the snapshot with a intermediate deferred file + const updatedEntry = await fs.readFile(path.join(templateDir, 'intermediate-deferred.js')) + + await fs.writeFile(path.join(projectBaseDir, 'intermediate.js'), updatedEntry) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + ;({ meta: { deferredHash, deferredHashFile, ...metadata } } = readSnapshotResult(cacheDir)) + + expect(metadata).to.deep.equal({ + norewrite: [ + './norewrite.js', + ], + deferred: [ + './intermediate-deferred.js', + ], + healthy: [ + './entry.js', + './healthy.js', + './intermediate-healthy.js', + ], + }) + }) +}) diff --git a/tooling/v8-snapshot/test/unit/esbuild.spec.ts b/tooling/v8-snapshot/test/unit/esbuild.spec.ts new file mode 100644 index 0000000000..b52c4c37cc --- /dev/null +++ b/tooling/v8-snapshot/test/unit/esbuild.spec.ts @@ -0,0 +1,85 @@ +import path from 'path' +import { SnapshotGenerator } from '../../src/generator/snapshot-generator' +import { exec as execOrig } from 'child_process' +import { promisify } from 'util' +import { electronExecutable } from '../utils/consts' +import { assert, expect } from 'chai' + +const exec = promisify(execOrig) + +describe('esbuild', () => { + it('rewrites multi assignments and multi exports', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'rewrites') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + try { + const { stdout } = await exec(cmd, { env }) + const res = JSON.parse(stdout.trim()) + + expect(res).to.deep.equal({ + multiAssign: { + first: { base: true, version: 1 }, + second: { base: true, version: 1 }, + }, + multiExport: { + base: { base: true, version: 1 }, + Base: { base: true, version: 1 }, + }, + }) + } catch (err: any) { + assert.fail(err.toString()) + } + }) + + it('tests windows-issues', async () => { + const projectBaseDir = path.join(__dirname, '..', 'fixtures', 'windows-issues') + const cacheDir = path.join(projectBaseDir, 'cache') + const snapshotEntryFile = path.join(projectBaseDir, 'entry.js') + const generator = new SnapshotGenerator(projectBaseDir, snapshotEntryFile, { + cacheDir, + nodeModulesOnly: false, + }) + + await generator.createScript() + await generator.makeAndInstallSnapshot() + + const env: Record = { + ELECTRON_RUN_AS_NODE: 1, + DEBUG: '(cypress:packherd|cypress:snapgen|cypress:snapshot):*', + PROJECT_BASE_DIR: projectBaseDir, + DEBUG_COLORS: 1, + } + const cmd = + `${electronExecutable} -r ${projectBaseDir}/hook-require.js` + + ` ${projectBaseDir}/app.js` + + let stdout + + try { + ({ stdout } = await exec(cmd, { env })) + const res = JSON.parse(stdout.trim()) + + expect(res.unsupported).to.equal('babel-unsupported') + } catch (err: any) { + assert.fail(err.toString()) + } + }) +}) diff --git a/tooling/v8-snapshot/test/utils/bundle.ts b/tooling/v8-snapshot/test/utils/bundle.ts new file mode 100644 index 0000000000..b7a18eed69 --- /dev/null +++ b/tooling/v8-snapshot/test/utils/bundle.ts @@ -0,0 +1,27 @@ +import path from 'path' +import fs from 'fs-extra' + +export function readBundleResult (cacheDir: string) { + const metaFile = path.join(cacheDir, 'snapshot-meta.json') + const snapshotBundleFile = path.join(cacheDir, 'snapshot-bundle.js') + const meta = require(metaFile) + const exported = require(snapshotBundleFile) + + return { meta, exported } +} + +export function readSnapshotResult (cacheDir: string) { + const metaFile = path.join(cacheDir, 'snapshot-meta.json') + const meta = fs.readJSONSync(metaFile) + + const snapshotFile = path.join(cacheDir, 'snapshot.js') + + const snapshotFileContent = fs.readFileSync(snapshotFile, 'utf8') + const sourcemapComment = snapshotFileContent.split('\n').pop() + + const { snapshotResult, snapshotAuxiliaryData } = eval( + `(function () {\n${snapshotFileContent};\n return { snapshotResult, snapshotAuxiliaryData };})()`, + ) + + return { meta, snapshotResult, snapshotAuxiliaryData, sourcemapComment } +} diff --git a/tooling/v8-snapshot/test/utils/consts.ts b/tooling/v8-snapshot/test/utils/consts.ts new file mode 100644 index 0000000000..b25173bec2 --- /dev/null +++ b/tooling/v8-snapshot/test/utils/consts.ts @@ -0,0 +1,3 @@ +const electronPath = require('electron/index.js') + +export const electronExecutable = electronPath diff --git a/tooling/v8-snapshot/tsconfig.json b/tooling/v8-snapshot/tsconfig.json new file mode 100644 index 0000000000..dfe09e6b09 --- /dev/null +++ b/tooling/v8-snapshot/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../packages/ts/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "lib": ["esnext"], + "outDir": "./dist", + "allowJs": true, + }, +} diff --git a/yarn.lock b/yarn.lock index 6a5683d2ec..97364db91f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2470,6 +2470,71 @@ resolved "https://registry.yarnpkg.com/@cypress/sinon-chai/-/sinon-chai-2.9.1.tgz#1705c0341bc286740979b1b1cac89b7f5d34d6bc" integrity sha512-qwFQ1urghF3mv7CFSDw/LEqIQP12qqKLuW7p6mXR92HP5fPNlgNiZVITWVsupDg7JpOEKfeRTVearo9mkk/5eg== +"@cypress/snapbuild-android-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-android-arm64/-/snapbuild-android-arm64-1.0.1.tgz#f4f67ee22e4dcd4738499dc6e16af6dd50dc3268" + integrity sha512-I8gM7t63gL78+NcP1zNQBgzsyp7xRlFiZhMzn5F0LAX/TrT8tZGctZEWNjPbl3M8JLCPtat/HrCbhaP1h+0Y4g== + +"@cypress/snapbuild-darwin-64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-64/-/snapbuild-darwin-64-1.0.1.tgz#ce4a7b9734fcc569e5084d25deabb8a7e57c5c39" + integrity sha512-wOZgJ1Hp7I5hent4LLmhlh61vomkHUe7J013pjwQ6JJc+PhAjxFc3h6HocvY4IzRXR1JnvL/9yJjmyY090ahKw== + +"@cypress/snapbuild-darwin-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-darwin-arm64/-/snapbuild-darwin-arm64-1.0.1.tgz#a98b61d2732941e69315dc83f4e1cec9b6fdd27d" + integrity sha512-gPYdoOzTyVcs93HTgfhMmEgcH5QP95/fAfcLeFSIVaNYhgIMg0YeyysmjLRcHdYaJ7m31px307+q6zvMYY/paw== + +"@cypress/snapbuild-freebsd-64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-64/-/snapbuild-freebsd-64-1.0.1.tgz#dd3416a8ed04e7994285a441b329e8c141493415" + integrity sha512-wtW0oLRH9qjGp2oAQLEnCNXX8sUHXkY1QAUvV26TWBf7f3WODxZ7MAjSVV8L7wYKRcxUnLebcCQ/sYmbAg00cQ== + +"@cypress/snapbuild-freebsd-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-freebsd-arm64/-/snapbuild-freebsd-arm64-1.0.1.tgz#87d821d8216d17efb9c54a73f435b9123067fe9f" + integrity sha512-44wIjpi3BShIFmRJd1VCj2dAO02DNxkzYDp0vdMvNRflBr2pXDWdT/TdTkj4l9vBRymQTGCPS/swjlLACCwoqg== + +"@cypress/snapbuild-linux-32@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-32/-/snapbuild-linux-32-1.0.1.tgz#ff5b0abbb84d2e1a726f9cd9145c5cfe4f2f2b1a" + integrity sha512-Mo74hBFwFzr//pX8OuTj3wGxLbngQDAX61gL72HOcgI33gdDXiSyvasuChs8uiH1H3BDxVUvRMxKBSbRVowF4g== + +"@cypress/snapbuild-linux-64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-64/-/snapbuild-linux-64-1.0.1.tgz#be1a0a2c83d27594a1f63c95ed26a70236e7e359" + integrity sha512-tYPA+O/BiRwOy97H8t7/tdWXVSBJSBHzxngRUPVioIG7Y7HCw9jkIgDV4U8l9uYhmYgDmHFeq6TaJOxmW7bMBg== + +"@cypress/snapbuild-linux-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm64/-/snapbuild-linux-arm64-1.0.1.tgz#f1ce2e0d13907fb8f7c936422f510175bcbb9e83" + integrity sha512-y8P0ZVtVtUNTInNWjmxUi0yieD4ci6Gq3zP5uirFO0bwQArEq5IqBAbXuvOY3gu6sMwgnP9bPUTkqOhFPjlJ3w== + +"@cypress/snapbuild-linux-arm@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-arm/-/snapbuild-linux-arm-1.0.1.tgz#89ffb6ee61eee79f99ceb5b0ac1472b52b3f3811" + integrity sha512-0DPe2yE7ZpCU1y1QPps5Yiry0yvQk9EtOxnhLzI7gbKgyLo2rBekNY2Vp3/ImdiITod6sG0RjaOuFAQl5xaYcw== + +"@cypress/snapbuild-linux-mips64le@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-mips64le/-/snapbuild-linux-mips64le-1.0.1.tgz#88b82e2381e06ea2f5e871c27c95fc89a9d538eb" + integrity sha512-0F40yjlA0rtuF1jyfcQgAalE8eOTysiiOr6Gpi7JYHKGajWU4/uvA25woT9pwWRyyVznGvXun6O8bSspV0FyvQ== + +"@cypress/snapbuild-linux-ppc64le@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-linux-ppc64le/-/snapbuild-linux-ppc64le-1.0.1.tgz#14ebed384a0dd9591439ab9e4142d38626c55e11" + integrity sha512-DxQXKFI8BEjFt0id0joDNHiNIM59kZgJxO10BoArGV/xXMR2VjTHjNQRIoMD/sM6GgpJwC2gF6dRXm9LY9ej0w== + +"@cypress/snapbuild-windows-32@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-32/-/snapbuild-windows-32-1.0.1.tgz#ca1137ee529d5250a71845de1b7eefd458d64cf9" + integrity sha512-FIBdE1Ie0rfhIpE5cBRwNIjcPxwOPMrZ0ppUIOXxTdBTRaSEOO5/bfsGV6Mntg/XMIJRGUGaIKmBoudcnyhkgA== + +"@cypress/snapbuild-windows-64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cypress/snapbuild-windows-64/-/snapbuild-windows-64-1.0.1.tgz#0e03d39f91fe7724c353db863154ea8848140004" + integrity sha512-lEg02qY4GgaAg7An1EAJSq2AFb1L7v7sARaofyj/R0kYh8PHyOQAOF2Jn9cfI8ltveJ1mh0Nu/ayg24FpwS/sA== + "@cypress/unique-selector@0.4.4": version "0.4.4" resolved "https://registry.yarnpkg.com/@cypress/unique-selector/-/unique-selector-0.4.4.tgz#5e14be46ba5d7a4dad8eda07c0fd431a99227d83" @@ -2529,7 +2594,16 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -"@electron/get@^1.14.1", "@electron/get@^1.6.0": +"@electron/fuses@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.6.0.tgz#d4ca0b4701c286424b8096c55458b5ab91191b61" + integrity sha512-UnZgLfVO1jf7QoYVEEB27CCP1JjT5plhbWU1U8ji1OaXnvNe5UT6KPuRJ3Z12mwa5ZBAASU2tgxVuI06/2x6nQ== + dependencies: + chalk "^4.1.1" + fs-extra "^9.0.1" + minimist "^1.2.5" + +"@electron/get@^1.12.4", "@electron/get@^1.14.1", "@electron/get@^1.6.0": version "1.14.1" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== @@ -6728,9 +6802,9 @@ integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== "@types/node@^12.12.29", "@types/node@^12.12.7": - version "12.20.52" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.52.tgz#2fd2dc6bfa185601b15457398d4ba1ef27f81251" - integrity sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw== + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^16.11.26": version "16.11.34" @@ -7568,7 +7642,17 @@ estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.31", "@vue/compiler-dom@^3.2.6": +"@vue/compiler-core@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.39.tgz#0d77e635f4bdb918326669155a2dc977c053943e" + integrity sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz#b1b7dfad55c96c8cc2b919cd7eb5fd7e4ddbf00e" integrity sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg== @@ -7576,7 +7660,15 @@ "@vue/compiler-core" "3.2.31" "@vue/shared" "3.2.31" -"@vue/compiler-sfc@3.2.31", "@vue/compiler-sfc@^3.2.20", "@vue/compiler-sfc@^3.2.4": +"@vue/compiler-dom@3.2.39", "@vue/compiler-dom@^3.2.6": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz#bd69d35c1a48fe2cea4ab9e96d2a3a735d146fdf" + integrity sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw== + dependencies: + "@vue/compiler-core" "3.2.39" + "@vue/shared" "3.2.39" + +"@vue/compiler-sfc@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz#d02b29c3fe34d599a52c5ae1c6937b4d69f11c2f" integrity sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ== @@ -7592,6 +7684,22 @@ postcss "^8.1.10" source-map "^0.6.1" +"@vue/compiler-sfc@^3.2.20", "@vue/compiler-sfc@^3.2.4": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz#8fe29990f672805b7c5a2ecfa5b05e681c862ea2" + integrity sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.39" + "@vue/compiler-dom" "3.2.39" + "@vue/compiler-ssr" "3.2.39" + "@vue/reactivity-transform" "3.2.39" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + "@vue/compiler-ssr@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz#4fa00f486c9c4580b40a4177871ebbd650ecb99c" @@ -7600,6 +7708,14 @@ "@vue/compiler-dom" "3.2.31" "@vue/shared" "3.2.31" +"@vue/compiler-ssr@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz#4f3bfb535cb98b764bee45e078700e03ccc60633" + integrity sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ== + dependencies: + "@vue/compiler-dom" "3.2.39" + "@vue/shared" "3.2.39" + "@vue/devtools-api@^6.0.0-beta.13", "@vue/devtools-api@^6.0.0-beta.14", "@vue/devtools-api@^6.0.0-beta.19", "@vue/devtools-api@^6.0.0-beta.5": version "6.0.0-beta.19" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.19.tgz#f8e88059daa424515992426a0c7ea5cde07e99bf" @@ -7616,13 +7732,31 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.31", "@vue/reactivity@^3.2.6": +"@vue/reactivity-transform@3.2.39": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz#da6ae6c8fd77791b9ae21976720d116591e1c4aa" + integrity sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.39" + "@vue/shared" "3.2.39" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.31.tgz#fc90aa2cdf695418b79e534783aca90d63a46bbd" integrity sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw== dependencies: "@vue/shared" "3.2.31" +"@vue/reactivity@^3.2.6": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.39.tgz#e6e3615fe2288d4232b104640ddabd0729a78c80" + integrity sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ== + dependencies: + "@vue/shared" "3.2.39" + "@vue/runtime-core@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.31.tgz#9d284c382f5f981b7a7b5971052a1dc4ef39ac7a" @@ -7648,11 +7782,16 @@ "@vue/compiler-ssr" "3.2.31" "@vue/shared" "3.2.31" -"@vue/shared@3.2.31", "@vue/shared@^3.2.6": +"@vue/shared@3.2.31": version "3.2.31" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.31.tgz#c90de7126d833dcd3a4c7534d534be2fb41faa4e" integrity sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ== +"@vue/shared@3.2.39", "@vue/shared@^3.2.6": + version "3.2.39" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.39.tgz#302df167559a1a5156da162d8cc6760cef67f8e3" + integrity sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw== + "@vue/test-utils@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.0.2.tgz#0b5edd683366153d5bc5a91edc62f292118710eb" @@ -8790,7 +8929,7 @@ arg@5.0.2: resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== -argparse@^1.0.7, "argparse@~ 1.0.0": +argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -12244,16 +12383,6 @@ coffee-loader@^0.9.0: dependencies: loader-utils "^1.0.2" -coffee-script@^1.10.0: - version "1.12.5" - resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.5.tgz#809f4585419112bbfe46a073ad7543af18c27346" - integrity sha1-gJ9FhUGRErv+RqBzrXVDrxjCc0Y= - -coffee-script@~1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.9.3.tgz#596e6e83fcfcb67c5964ab70d444beff0ac04ac7" - integrity sha1-WW5ug/z8tnxZZKtw1ES+/wrASsc= - coffeescript@1.12.7, coffeescript@^1.12.7: version "1.12.7" resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" @@ -12865,7 +12994,7 @@ convert-source-map@^0.3.3: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0, convert-source-map@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== @@ -13075,6 +13204,16 @@ cp-file@^6.1.0: pify "^4.0.1" safe-buffer "^5.0.1" +cpr@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5" + integrity sha512-Xch4PXQ/KC8lJ+KfJ9JI6eG/nmppLrPPWg5Q+vh65Qr9EjuJEubxh/H/Le1TmCZ7+Xv7iJuNRqapyOFZB+wsxA== + dependencies: + graceful-fs "^4.1.5" + minimist "^1.2.0" + mkdirp "~0.5.1" + rimraf "^2.5.4" + cpu-features@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.2.tgz#9f636156f1155fd04bdbaa028bb3c2fbef3cea7a" @@ -13263,23 +13402,6 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -cson-parser@^1.0.6: - version "1.3.5" - resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-1.3.5.tgz#7ec675e039145533bf2a6a856073f1599d9c2d24" - integrity sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ= - dependencies: - coffee-script "^1.10.0" - -cson@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cson/-/cson-2.0.0.tgz#783b5571860bcb419be3326c6232d2d491a1c84a" - integrity sha1-eDtVcYYLy0Gb4zJsYjLS1JGhyEo= - dependencies: - coffee-script "~1.9.0" - cson-parser "^1.0.6" - requirefresh "^1.1.2" - safefs "^3.1.2" - css-blank-pseudo@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" @@ -14355,6 +14477,14 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dirt-simple-file-cache@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/dirt-simple-file-cache/-/dirt-simple-file-cache-0.4.0.tgz#f2e4e82914457027044a4fb9246b76513bf670a1" + integrity sha512-8iY+KIe1+e/iKuLREhsNY80hqyQjcNoc/Rd0nTO6WlNBaDJG9AG5IAi0RrLgvj2VBVJdNi+jl4pdBI+wK8DFSg== + dependencies: + debug "^4.3.1" + tslib "^2.1.0" + disparity@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/disparity/-/disparity-3.0.0.tgz#605288e8ebf38c5ccfe1e0dbc49ca6f724096500" @@ -15356,7 +15486,7 @@ esbuild-windows-arm64@0.15.7: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== -esbuild@^0.15.6: +esbuild@^0.15.3, esbuild@^0.15.6: version "0.15.7" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== @@ -15826,11 +15956,6 @@ esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -"esprima@~ 2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.0.0.tgz#609ac5c2667eae5433b41eb9ecece2331b41498f" - integrity sha1-YJrFwmZ+rlQztB657OziMxtBSY8= - esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -18229,16 +18354,16 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@*, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - graceful-fs@4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -21226,14 +21351,6 @@ js-yaml@^3.13.1, js-yaml@^3.7.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.2.7.tgz#102790f265d986fe95a4d0f2a792e7a7bd886eec" - integrity sha1-ECeQ8mXZhv6VpNDyp5Lnp72Ibuw= - dependencies: - argparse "~ 1.0.0" - esprima "~ 2.0.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -21790,15 +21907,6 @@ kolorist@^1.5.0, kolorist@^1.5.1: resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ== -konfig@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/konfig/-/konfig-0.2.1.tgz#4be83ebb859207dbdad8d0e6eeb6004245de3cd8" - integrity sha1-S+g+u4WSB9va2NDm7rYAQkXePNg= - dependencies: - cson "~2.0.0" - js-yaml "~3.2.7" - lazy.js "~0.4.0" - last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -21865,11 +21973,6 @@ lazy-val@^1.0.4, lazy-val@^1.0.5: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== -lazy.js@~0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/lazy.js/-/lazy.js-0.4.3.tgz#87f67a07ad36555121e4fff1520df31be66786d8" - integrity sha1-h/Z6B602VVEh5P/xUg3zG+Znhtg= - lazystream@^1.0.0, lazystream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" @@ -22931,11 +23034,11 @@ magic-string@0.26.2: sourcemap-codec "^1.4.8" magic-string@^0.25.5, magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" magic-string@^0.26.1, magic-string@^0.26.2: version "0.26.3" @@ -29311,11 +29414,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requirefresh@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/requirefresh/-/requirefresh-1.1.2.tgz#d8eb744927c6d912de3418f93dcbab27b959f2f3" - integrity sha1-2Ot0SSfG2RLeNBj5PcurJ7lZ8vM= - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -29720,13 +29818,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safefs@^3.1.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/safefs/-/safefs-3.2.2.tgz#8170c1444d7038e08caea05a374fae2fa349e15c" - integrity sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw= - dependencies: - graceful-fs "*" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -30492,6 +30583,18 @@ sinon@13.0.2, sinon@^13.0.1: nise "^5.1.1" supports-color "^7.2.0" +sinon@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.0.tgz#203731c116d3a2d58dc4e3cbe1f443ba9382a031" + integrity sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw== + dependencies: + "@sinonjs/commons" "^1.8.3" + "@sinonjs/fake-timers" "^9.1.2" + "@sinonjs/samsam" "^6.1.1" + diff "^5.0.0" + nise "^5.1.1" + supports-color "^7.2.0" + sinon@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" @@ -31025,6 +31128,11 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -31104,7 +31212,7 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, sour resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -35069,6 +35177,11 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" +worker-nodes@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/worker-nodes/-/worker-nodes-2.4.0.tgz#cec23f5490ab0451bac4afaa50a079a89bd1c7c6" + integrity sha512-s32ziQpiWkWbB/ziFKiudpm5/mreSnwpTtKzPxgcPXpl+kXpesiibjM/2Z8i/lDO8kDCUio7wQFXtndopgfsUg== + worker-rpc@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"