From b0c0eaa508bb6dafdc1997bc00fb7ed6f5bcc160 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Mon, 31 Oct 2022 20:20:27 -0500 Subject: [PATCH] feat: introduce v8 snapshots to improve startup performance (#24295) Co-authored-by: Lachlan Miller Co-authored-by: Zach Bloomquist Co-authored-by: Tyler Biethman Co-authored-by: Matt Henkes Co-authored-by: Chris Breiding Co-authored-by: Matt Schile Co-authored-by: Mark Noonan Co-authored-by: Zachary Williams Co-authored-by: Ben M Co-authored-by: Zachary Williams Co-authored-by: astone123 Co-authored-by: Bill Glesias Co-authored-by: Emily Rohrbough Co-authored-by: Emily Rohrbough Co-authored-by: semantic-release-bot Co-authored-by: Adam Stone Co-authored-by: Blue F Co-authored-by: GitStart <1501599+gitstart@users.noreply.github.com> Co-authored-by: Mike Plummer Co-authored-by: Jordan Co-authored-by: Sam Goodger Co-authored-by: Colum Ferry Co-authored-by: Stokes Player Co-authored-by: Vilhelm Melkstam Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com> --- .circleci/cache-version.txt | 2 +- .circleci/config.yml | 132 +- .eslintignore | 4 + .eslintrc.js | 1 + .gitignore | 4 + .vscode/cspell.json | 10 + CONTRIBUTING.md | 78 +- cli/lib/util.js | 4 +- jsconfig.json | 3 +- lerna.json | 1 + npm/cypress-schematic/src/ct.spec.ts | 2 +- npm/cypress-schematic/src/e2e.spec.ts | 2 +- .../test/test-helpers/scaffoldProject.ts | 2 +- .../test/sourceRelativeWebpackModules.spec.ts | 2 +- .../test/test-helpers/scaffoldProject.ts | 2 +- package.json | 7 +- packages/config/package.json | 2 +- packages/config/src/project/utils.ts | 2 +- packages/data-context/package.json | 4 +- packages/driver/cypress.config.ts | 2 +- packages/electron/lib/install.js | 20 +- packages/electron/package.json | 2 +- .../cypress/e2e/e2ePluginSetup.ts | 2 +- packages/graphql/src/schema.ts | 5 +- .../src/schemaTypes/objectTypes/gql-Query.ts | 3 +- packages/launcher/lib/windows/index.ts | 4 +- packages/net-stubbing/package.json | 2 +- packages/packherd-require/README.md | 125 + packages/packherd-require/package.json | 33 + .../src/default-transpile-cache.ts | 27 + packages/packherd-require/src/loader.ts | 1108 +++++ packages/packherd-require/src/require.ts | 224 + .../packherd-require/src/sourcemap-support.ts | 490 ++ packages/packherd-require/src/transpile-ts.ts | 121 + packages/packherd-require/src/types.ts | 168 + packages/packherd-require/test/.mocharc.js | 9 + .../test/circular-dependency.spec.ts | 12 + .../fixtures/circular-deps/definitions.js | 26 + .../fixtures/circular-deps/hook-require.js | 26 + .../test/fixtures/circular-deps/lib/bar.js | 5 + .../test/fixtures/circular-deps/lib/entry.js | 2 + .../test/fixtures/circular-deps/lib/foo.js | 3 + .../test/fixtures/circular-deps/main.js | 1 + .../test/fixtures/circular-deps/package.json | 12 + .../test/fixtures/normal-deps/definitions.js | 22 + .../test/fixtures/normal-deps/hook-require.js | 26 + .../test/fixtures/normal-deps/lib/bar.js | 5 + .../test/fixtures/normal-deps/lib/entry.js | 2 + .../test/fixtures/normal-deps/lib/foo.js | 3 + .../test/fixtures/normal-deps/main.js | 1 + .../test/fixtures/normal-deps/package.json | 12 + .../test/normal-dependency.spec.ts | 12 + packages/packherd-require/tsconfig.json | 8 + packages/proxy/package.json | 6 +- packages/rewriter/script/worker-shim.js | 10 +- packages/scaffold-config/package.json | 2 +- packages/server/README.md | 6 + packages/server/config/app.json | 14 + packages/server/config/app.yml | 21 - packages/server/hook-require.js | 43 + packages/server/index.js | 50 +- packages/server/lib/cloud/api.ts | 14 +- packages/server/lib/cloud/routes.ts | 6 +- .../server/lib/html/get-local-storage.html | 27 + .../server/lib/html/set-local-storage.html | 36 + packages/server/lib/konfig.js | 36 - packages/server/lib/modes/interactive.ts | 4 + packages/server/lib/modes/run.ts | 3 + packages/server/lib/reporter.js | 19 +- packages/server/lib/routes-e2e.ts | 60 +- packages/server/lib/socket-base.ts | 7 +- packages/server/lib/util/app_data.js | 2 +- .../server/lib/util/performance_benchmark.js | 24 + packages/server/package.json | 8 +- packages/server/server-entry.js | 41 + .../server/test/unit/cloud/routes_spec.js | 60 +- packages/server/test/unit/konfig_spec.js | 84 - packages/ts/registerDir.js | 50 +- packages/v8-snapshot-require/.gitignore | 1 + packages/v8-snapshot-require/README.md | 89 + packages/v8-snapshot-require/package.json | 32 + packages/v8-snapshot-require/src/constants.ts | 4 + .../v8-snapshot-require/src/dependency-map.ts | 220 + .../src/snapshot-require.ts | 338 ++ packages/v8-snapshot-require/src/types.ts | 206 + packages/v8-snapshot-require/src/utils.ts | 12 + packages/v8-snapshot-require/test/.mocharc.js | 9 + .../test/dependency-map.circular.spec.ts | 101 + .../test/dependency-map.spec.ts | 126 + packages/v8-snapshot-require/tsconfig.json | 9 + scripts/after-pack-hook.js | 22 + scripts/binary/binary-cleanup.js | 191 + scripts/binary/build.ts | 60 +- scripts/binary/get-config.js | 22 - scripts/binary/smoke.js | 45 + scripts/binary/util/upload.js | 5 +- scripts/gulp/gulpConstants.ts | 8 +- scripts/gulp/monorepoPaths.ts | 2 + scripts/run-postInstall.js | 2 +- scripts/unit/konfig-spec.js | 46 - scripts/unit/verify-mocha-results-spec.js | 130 +- scripts/verify-mocha-results.js | 2 - system-tests/__snapshots__/cdp_spec.ts.js | 2 - .../non_root_read_only_fs_spec.ts.js | 1 - system-tests/__snapshots__/reporters_spec.js | 13 - .../__snapshots__/web_security_spec.js | 1 - system-tests/lib/dep-installer/index.ts | 14 +- system-tests/lib/system-tests.ts | 3 +- .../e2e/cypress/e2e/simple_v8_snapshot.cy.js | 6 + .../deferred-from-healthy/README.md | 8 + .../v8-snapshot/deferred-from-healthy/app.js | 5 + .../deferred-from-healthy/entry.js | 5 + .../deferred-from-healthy/healthy.js | 9 + .../deferred-from-healthy/hook-require.js | 5 + .../deferred-from-healthy/lib/deferred.js | 7 + .../deferred-from-healthy/package.json | 3 + .../projects/v8-snapshot/esm/README.md | 8 + system-tests/projects/v8-snapshot/esm/app.js | 3 + .../projects/v8-snapshot/esm/entry.mjs | 11 + .../projects/v8-snapshot/esm/hook-require.js | 5 + .../projects/v8-snapshot/esm/index.js | 32 + .../projects/v8-snapshot/esm/package.json | 9 + .../projects/v8-snapshot/esm/yarn.lock | 13 + .../v8-snapshot/example-express/README.md | 7 + .../example-express/app/hook-require.js | 9 + .../example-express/app/index.html | 11 + .../v8-snapshot/example-express/app/index.js | 54 + .../example-express/app/renderer.js | 26 + .../v8-snapshot/example-express/package.json | 21 + .../snapshot/install-snapshot.js | 46 + .../example-express/snapshot/snapshot.js | 1 + .../snapshot/uninstall-snapshot.js | 15 + .../v8-snapshot/example-express/yarn.lock | 368 ++ .../external-from-healthy/README.md | 8 + .../v8-snapshot/external-from-healthy/app.js | 3 + .../bluebird/bluebird.js | 1 + .../bluebird/package.json | 4 + .../external-from-healthy/entry.js | 5 + .../external-from-healthy/healthy.js | 8 + .../external-from-healthy/hook-require.js | 5 + .../external-from-healthy/package.json | 3 + .../projects/v8-snapshot/minimal/README.md | 3 + .../projects/v8-snapshot/minimal/entry.js | 4 + .../projects/v8-snapshot/minimal/lib/foo.js | 3 + .../projects/v8-snapshot/minimal/package.json | 11 + .../projects/v8-snapshot/minimal/yarn.lock | 13 + .../v8-snapshot/native-modules/README.md | 8 + .../v8-snapshot/native-modules/app.js | 12 + .../v8-snapshot/native-modules/entry.js | 1 + .../native-modules/hook-require.js | 5 + .../v8-snapshot/native-modules/package.json | 6 + .../v8-snapshot/native-modules/yarn.lock | 8 + .../v8-snapshot/require-cache/README.md | 19 + .../v8-snapshot/require-cache/cached-app.js | 5 + .../require-cache/cached-manipulator.js | 19 + .../require-cache/dep-cached-manipulator.js | 41 + .../v8-snapshot/require-cache/hook-require.js | 5 + .../require-cache/lib/deep-sync-deps.js | 6 + .../require-cache/lib/math-random.js | 3 + .../require-cache/lib/sync-deps.js | 6 + .../v8-snapshot/require-cache/package.json | 3 + .../v8-snapshot/require-cache/uncached-app.js | 5 + .../require-cache/uncached-entry.js | 5 + .../require-cache/uncached-manipulator.js | 23 + .../require-full-path-var/README.md | 8 + .../v8-snapshot/require-full-path-var/app.js | 7 + .../require-full-path-var/entry.js | 11 + .../require-full-path-var/hook-require.js | 5 + .../require-full-path-var/lib/package.json | 3 + .../require-full-path-var/package.json | 3 + .../require-full-path-var/yarn.lock | 4 + .../v8-snapshot/stealthy-require/README.md | 11 + .../stealthy-require/entry-all-cached.js | 9 + .../fixtures/deep-sync-deps.js | 6 + .../stealthy-require/fixtures/native-deps.js | 6 + .../stealthy-require/fixtures/no-deps.js | 3 + .../fixtures/stealthy-require-and-keep.js | 16 + .../fixtures/stealthy-require.js | 13 + .../stealthy-require/fixtures/sync-deps.js | 6 + .../stealthy-require/hook-require.js | 5 + .../v8-snapshot/stealthy-require/package.json | 6 + .../stealthy-require/spec/native.js | 25 + .../stealthy-require/spec/non-native.js | 173 + .../v8-snapshot/stealthy-require/yarn.lock | 8 + system-tests/scripts/projects-yarn-install.js | 2 +- .../test/non_root_read_only_fs_spec.ts | 16 +- system-tests/test/pause_headed_exit_spec.ts | 7 + system-tests/test/plugin_run_events_spec.ts | 4 + tooling/electron-mksnapshot/.gitignore | 1 + tooling/electron-mksnapshot/README.md | 25 + tooling/electron-mksnapshot/package.json | 35 + tooling/electron-mksnapshot/src/config.ts | 84 + tooling/electron-mksnapshot/src/metadata.ts | 42 + .../electron-mksnapshot/src/mksnapshot-bin.ts | 12 + .../src/mksnapshot-download.ts | 111 + .../electron-mksnapshot/src/mksnapshot-run.ts | 221 + tooling/electron-mksnapshot/src/mksnapshot.ts | 47 + .../src/process-args-from-file.ts | 83 + tooling/electron-mksnapshot/test/.mocharc.js | 9 + .../test/fixtures/invalid-snapshot.js | 2 + .../test/fixtures/valid-snapshot.js | 0 .../test/integration/mksnapshot.spec.ts | 53 + .../test/unit/download.spec.ts | 40 + tooling/electron-mksnapshot/tsconfig.json | 8 + tooling/packherd/README.md | 36 + tooling/packherd/package.json | 31 + tooling/packherd/src/create-bundle.ts | 28 + tooling/packherd/src/generate-entry.ts | 78 + tooling/packherd/src/get-metadata.ts | 30 + tooling/packherd/src/packherd.ts | 98 + tooling/packherd/src/types.ts | 54 + tooling/packherd/src/utils.ts | 16 + tooling/packherd/test/.mocharc.js | 10 + tooling/packherd/test/entry-generator.spec.ts | 87 + tooling/packherd/test/packherd.spec.ts | 86 + tooling/packherd/tsconfig.json | 8 + tooling/v8-snapshot/.gitignore | 3 + tooling/v8-snapshot/README.md | 185 + .../__snapshots__/express.spec.ts.js | 116 + .../v8-snapshot/cache/dev-darwin/.gitignore | 6 + .../cache/dev-darwin/snapshot-meta.cache.json | 3532 +++++++++++++++ .../v8-snapshot/cache/dev-linux/.gitignore | 6 + .../cache/dev-linux/snapshot-meta.cache.json | 3530 +++++++++++++++ .../v8-snapshot/cache/dev-win32/.gitignore | 6 + .../cache/dev-win32/snapshot-meta.cache.json | 3533 +++++++++++++++ .../v8-snapshot/cache/prod-darwin/.gitignore | 6 + .../prod-darwin/snapshot-meta.cache.json | 3933 ++++++++++++++++ .../v8-snapshot/cache/prod-linux/.gitignore | 6 + .../cache/prod-linux/snapshot-meta.cache.json | 3932 ++++++++++++++++ .../v8-snapshot/cache/prod-win32/.gitignore | 6 + .../cache/prod-win32/snapshot-meta.cache.json | 3935 +++++++++++++++++ tooling/v8-snapshot/package.json | 59 + .../scripts/setup-v8-snapshot-in-cypress.js | 7 + .../src/blueprint/custom-require.js | 309 ++ .../src/blueprint/globals-strict.js | 115 + tooling/v8-snapshot/src/blueprint/globals.js | 901 ++++ .../v8-snapshot/src/blueprint/set-globals.js | 59 + tooling/v8-snapshot/src/constants.ts | 4 + .../src/doctor/circular-imports.ts | 60 + .../src/doctor/determine-deferred.ts | 140 + .../src/doctor/process-script.async.ts | 66 + .../src/doctor/process-script.worker.ts | 101 + .../v8-snapshot/src/doctor/snapshot-doctor.ts | 722 +++ .../src/doctor/warnings-processor.ts | 235 + .../v8-snapshot/src/generator/blueprint.ts | 224 + .../src/generator/create-snapshot-bundle.ts | 68 + .../src/generator/create-snapshot-script.ts | 404 ++ ...napshot-generate-entry-via-dependencies.ts | 138 + .../snapshot-generate-entry-via-yarn.ts | 139 + .../src/generator/snapshot-generator-flags.ts | 39 + .../src/generator/snapshot-generator.ts | 599 +++ .../src/generator/snapshot-verifier.ts | 17 + .../src/generator/write-config-json.ts | 85 + .../v8-snapshot/src/meta/dependency-map.ts | 111 + tooling/v8-snapshot/src/setup/config.ts | 122 + .../v8-snapshot/src/setup/consolidate-deps.ts | 46 + .../v8-snapshot/src/setup/force-no-rewrite.ts | 59 + .../v8-snapshot/src/setup/generate-entry.ts | 48 + .../src/setup/generate-metadata.ts | 71 + tooling/v8-snapshot/src/setup/index.ts | 35 + .../v8-snapshot/src/setup/install-snapshot.ts | 132 + .../v8-snapshot/src/snapbuild/snapbuild.ts | 26 + .../src/sourcemap/process-sourcemap.ts | 98 + tooling/v8-snapshot/src/types.ts | 190 + tooling/v8-snapshot/src/utils.ts | 345 ++ tooling/v8-snapshot/src/v8-snapshot.ts | 13 + tooling/v8-snapshot/test/.mocharc.js | 9 + .../access-buffer/accessing-buffer.js | 6 + .../test/fixtures/access-buffer/entry.js | 8 + .../fixtures/access-buffer/valid-module.js | 6 + .../test/fixtures/console-assign/entry.js | 8 + .../console-assign/reassign-console.js | 10 + .../fixtures/console-assign/using-console.js | 6 + .../test/fixtures/deep-nested-deferred/app.js | 7 + .../commit-info/execa/index.js | 7 + .../commit-info/execa/lib/errname.js | 10 + .../fixtures/deep-nested-deferred/entry.js | 7 + .../deep-nested-deferred/hook-require.js | 6 + .../fixtures/deep-nested-deferred/yarn.lock | 4 + .../fixtures/dirname-filename-use/entry.js | 9 + .../using-dirname-delayed.js | 5 + .../using-filename-init.js | 1 + .../dirname-filename-use/valid-module.js | 6 + .../fixtures/invoke-missing-function/entry.js | 10 + .../invoke-not-function.js | 15 + .../invoke-push-on-undefined.js | 4 + .../invoke-undefined.js | 2 + .../invoke-missing-function/valid-module.js | 6 + .../test/fixtures/iterative/project/yarn.lock | 4 + .../iterative/templates/entry-base.js | 3 + .../templates/entry-intermediate-deferred.js | 4 + .../templates/entry-intermediate-healthy.js | 4 + .../templates/entry-intermediate-norewrite.js | 4 + .../templates/intermediate-deferred.js | 6 + .../templates/intermediate-healthy.js | 3 + .../templates/intermediate-norewrite.js | 19 + .../iterative/templates/leaf-deferred.js | 4 + .../iterative/templates/leaf-healthy.js | 1 + .../iterative/templates/leaf-norewrite.js | 17 + .../fixtures/load-static-deferred/entry.js | 5 + .../lateuses-static-deferred.js | 8 + .../loads-lateuses-static-deferred.js | 3 + .../loads-static-deferred.js | 3 + .../load-static-deferred/static-deferred.js | 10 + .../uses-lateuses-static-deferred.js | 5 + .../uses-loads-static-deferred.js | 3 + .../test/fixtures/minimal/entry.js | 6 + .../test/fixtures/minimal/yarn.lock | 1 + .../test/fixtures/no-rewrite/app.js | 8 + .../test/fixtures/no-rewrite/entry.js | 10 + .../no-rewrite/graceful-fs-polyfill.js | 17 + .../test/fixtures/no-rewrite/hook-require.js | 6 + .../lib/colors/lib/system/has-flag.js | 11 + .../lib/colors/lib/system/supports-colors.js | 129 + .../test/fixtures/no-rewrite/yarn.lock | 4 + .../v8-snapshot/test/fixtures/rewrites/app.js | 14 + .../test/fixtures/rewrites/base.js | 6 + .../test/fixtures/rewrites/entry.js | 4 + .../test/fixtures/rewrites/hook-require.js | 5 + .../test/fixtures/rewrites/multi-assign.js | 6 + .../test/fixtures/rewrites/multi-export.js | 1 + .../test/fixtures/rewrites/package.json | 3 + .../test/fixtures/windows-issues/app.js | 4 + .../babel/unsupportedIterableToArray.js | 2 + .../test/fixtures/windows-issues/entry.js | 7 + .../fixtures/windows-issues/hook-require.js | 5 + .../test/fixtures/windows-issues/yarn.lock | 4 + .../test/integration/express.spec.ts | 50 + .../test/integration/loading.spec.ts | 316 ++ tooling/v8-snapshot/test/unit/doctor.spec.ts | 418 ++ tooling/v8-snapshot/test/unit/esbuild.spec.ts | 85 + tooling/v8-snapshot/test/utils/bundle.ts | 27 + tooling/v8-snapshot/test/utils/consts.ts | 3 + tooling/v8-snapshot/tsconfig.json | 9 + yarn.lock | 287 +- 335 files changed, 37371 insertions(+), 623 deletions(-) create mode 100644 packages/packherd-require/README.md create mode 100644 packages/packherd-require/package.json create mode 100644 packages/packherd-require/src/default-transpile-cache.ts create mode 100644 packages/packherd-require/src/loader.ts create mode 100644 packages/packherd-require/src/require.ts create mode 100644 packages/packherd-require/src/sourcemap-support.ts create mode 100644 packages/packherd-require/src/transpile-ts.ts create mode 100644 packages/packherd-require/src/types.ts create mode 100644 packages/packherd-require/test/.mocharc.js create mode 100644 packages/packherd-require/test/circular-dependency.spec.ts create mode 100644 packages/packherd-require/test/fixtures/circular-deps/definitions.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/hook-require.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/lib/bar.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/lib/entry.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/lib/foo.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/main.js create mode 100644 packages/packherd-require/test/fixtures/circular-deps/package.json create mode 100644 packages/packherd-require/test/fixtures/normal-deps/definitions.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/hook-require.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/lib/bar.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/lib/entry.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/lib/foo.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/main.js create mode 100644 packages/packherd-require/test/fixtures/normal-deps/package.json create mode 100644 packages/packherd-require/test/normal-dependency.spec.ts create mode 100644 packages/packherd-require/tsconfig.json create mode 100644 packages/server/config/app.json delete mode 100644 packages/server/config/app.yml create mode 100644 packages/server/hook-require.js create mode 100644 packages/server/lib/html/get-local-storage.html create mode 100644 packages/server/lib/html/set-local-storage.html delete mode 100644 packages/server/lib/konfig.js create mode 100644 packages/server/lib/util/performance_benchmark.js create mode 100644 packages/server/server-entry.js delete mode 100644 packages/server/test/unit/konfig_spec.js create mode 100644 packages/v8-snapshot-require/.gitignore create mode 100644 packages/v8-snapshot-require/README.md create mode 100644 packages/v8-snapshot-require/package.json create mode 100644 packages/v8-snapshot-require/src/constants.ts create mode 100644 packages/v8-snapshot-require/src/dependency-map.ts create mode 100644 packages/v8-snapshot-require/src/snapshot-require.ts create mode 100644 packages/v8-snapshot-require/src/types.ts create mode 100644 packages/v8-snapshot-require/src/utils.ts create mode 100644 packages/v8-snapshot-require/test/.mocharc.js create mode 100644 packages/v8-snapshot-require/test/dependency-map.circular.spec.ts create mode 100644 packages/v8-snapshot-require/test/dependency-map.spec.ts create mode 100644 packages/v8-snapshot-require/tsconfig.json create mode 100644 scripts/binary/binary-cleanup.js delete mode 100644 scripts/binary/get-config.js delete mode 100644 scripts/unit/konfig-spec.js create mode 100644 system-tests/projects/e2e/cypress/e2e/simple_v8_snapshot.cy.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/README.md create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/app.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/entry.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/healthy.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/lib/deferred.js create mode 100644 system-tests/projects/v8-snapshot/deferred-from-healthy/package.json create mode 100644 system-tests/projects/v8-snapshot/esm/README.md create mode 100644 system-tests/projects/v8-snapshot/esm/app.js create mode 100644 system-tests/projects/v8-snapshot/esm/entry.mjs create mode 100644 system-tests/projects/v8-snapshot/esm/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/esm/index.js create mode 100644 system-tests/projects/v8-snapshot/esm/package.json create mode 100644 system-tests/projects/v8-snapshot/esm/yarn.lock create mode 100644 system-tests/projects/v8-snapshot/example-express/README.md create mode 100644 system-tests/projects/v8-snapshot/example-express/app/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/example-express/app/index.html create mode 100644 system-tests/projects/v8-snapshot/example-express/app/index.js create mode 100644 system-tests/projects/v8-snapshot/example-express/app/renderer.js create mode 100644 system-tests/projects/v8-snapshot/example-express/package.json create mode 100644 system-tests/projects/v8-snapshot/example-express/snapshot/install-snapshot.js create mode 100644 system-tests/projects/v8-snapshot/example-express/snapshot/snapshot.js create mode 100644 system-tests/projects/v8-snapshot/example-express/snapshot/uninstall-snapshot.js create mode 100644 system-tests/projects/v8-snapshot/example-express/yarn.lock create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/README.md create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/app.js create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/bluebird/bluebird.js create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/bluebird/package.json create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/entry.js create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/healthy.js create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/external-from-healthy/package.json create mode 100644 system-tests/projects/v8-snapshot/minimal/README.md create mode 100644 system-tests/projects/v8-snapshot/minimal/entry.js create mode 100644 system-tests/projects/v8-snapshot/minimal/lib/foo.js create mode 100644 system-tests/projects/v8-snapshot/minimal/package.json create mode 100644 system-tests/projects/v8-snapshot/minimal/yarn.lock create mode 100644 system-tests/projects/v8-snapshot/native-modules/README.md create mode 100644 system-tests/projects/v8-snapshot/native-modules/app.js create mode 100644 system-tests/projects/v8-snapshot/native-modules/entry.js create mode 100644 system-tests/projects/v8-snapshot/native-modules/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/native-modules/package.json create mode 100644 system-tests/projects/v8-snapshot/native-modules/yarn.lock create mode 100644 system-tests/projects/v8-snapshot/require-cache/README.md create mode 100644 system-tests/projects/v8-snapshot/require-cache/cached-app.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/cached-manipulator.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/dep-cached-manipulator.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/lib/deep-sync-deps.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/lib/math-random.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/lib/sync-deps.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/package.json create mode 100644 system-tests/projects/v8-snapshot/require-cache/uncached-app.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/uncached-entry.js create mode 100644 system-tests/projects/v8-snapshot/require-cache/uncached-manipulator.js create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/README.md create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/app.js create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/entry.js create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/lib/package.json create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/package.json create mode 100644 system-tests/projects/v8-snapshot/require-full-path-var/yarn.lock create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/README.md create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/entry-all-cached.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/deep-sync-deps.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/native-deps.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/no-deps.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require-and-keep.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/stealthy-require.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/fixtures/sync-deps.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/hook-require.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/package.json create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/spec/native.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/spec/non-native.js create mode 100644 system-tests/projects/v8-snapshot/stealthy-require/yarn.lock create mode 100644 tooling/electron-mksnapshot/.gitignore create mode 100644 tooling/electron-mksnapshot/README.md create mode 100644 tooling/electron-mksnapshot/package.json create mode 100644 tooling/electron-mksnapshot/src/config.ts create mode 100644 tooling/electron-mksnapshot/src/metadata.ts create mode 100644 tooling/electron-mksnapshot/src/mksnapshot-bin.ts create mode 100644 tooling/electron-mksnapshot/src/mksnapshot-download.ts create mode 100644 tooling/electron-mksnapshot/src/mksnapshot-run.ts create mode 100644 tooling/electron-mksnapshot/src/mksnapshot.ts create mode 100644 tooling/electron-mksnapshot/src/process-args-from-file.ts create mode 100644 tooling/electron-mksnapshot/test/.mocharc.js create mode 100644 tooling/electron-mksnapshot/test/fixtures/invalid-snapshot.js create mode 100644 tooling/electron-mksnapshot/test/fixtures/valid-snapshot.js create mode 100644 tooling/electron-mksnapshot/test/integration/mksnapshot.spec.ts create mode 100644 tooling/electron-mksnapshot/test/unit/download.spec.ts create mode 100644 tooling/electron-mksnapshot/tsconfig.json create mode 100644 tooling/packherd/README.md create mode 100644 tooling/packherd/package.json create mode 100644 tooling/packherd/src/create-bundle.ts create mode 100644 tooling/packherd/src/generate-entry.ts create mode 100644 tooling/packherd/src/get-metadata.ts create mode 100644 tooling/packherd/src/packherd.ts create mode 100644 tooling/packherd/src/types.ts create mode 100644 tooling/packherd/src/utils.ts create mode 100644 tooling/packherd/test/.mocharc.js create mode 100644 tooling/packherd/test/entry-generator.spec.ts create mode 100644 tooling/packherd/test/packherd.spec.ts create mode 100644 tooling/packherd/tsconfig.json create mode 100644 tooling/v8-snapshot/.gitignore create mode 100644 tooling/v8-snapshot/README.md create mode 100644 tooling/v8-snapshot/__snapshots__/express.spec.ts.js create mode 100644 tooling/v8-snapshot/cache/dev-darwin/.gitignore create mode 100644 tooling/v8-snapshot/cache/dev-darwin/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/cache/dev-linux/.gitignore create mode 100644 tooling/v8-snapshot/cache/dev-linux/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/cache/dev-win32/.gitignore create mode 100644 tooling/v8-snapshot/cache/dev-win32/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/cache/prod-darwin/.gitignore create mode 100644 tooling/v8-snapshot/cache/prod-darwin/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/cache/prod-linux/.gitignore create mode 100644 tooling/v8-snapshot/cache/prod-linux/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/cache/prod-win32/.gitignore create mode 100644 tooling/v8-snapshot/cache/prod-win32/snapshot-meta.cache.json create mode 100644 tooling/v8-snapshot/package.json create mode 100644 tooling/v8-snapshot/scripts/setup-v8-snapshot-in-cypress.js create mode 100644 tooling/v8-snapshot/src/blueprint/custom-require.js create mode 100644 tooling/v8-snapshot/src/blueprint/globals-strict.js create mode 100644 tooling/v8-snapshot/src/blueprint/globals.js create mode 100644 tooling/v8-snapshot/src/blueprint/set-globals.js create mode 100644 tooling/v8-snapshot/src/constants.ts create mode 100644 tooling/v8-snapshot/src/doctor/circular-imports.ts create mode 100644 tooling/v8-snapshot/src/doctor/determine-deferred.ts create mode 100644 tooling/v8-snapshot/src/doctor/process-script.async.ts create mode 100644 tooling/v8-snapshot/src/doctor/process-script.worker.ts create mode 100644 tooling/v8-snapshot/src/doctor/snapshot-doctor.ts create mode 100644 tooling/v8-snapshot/src/doctor/warnings-processor.ts create mode 100644 tooling/v8-snapshot/src/generator/blueprint.ts create mode 100644 tooling/v8-snapshot/src/generator/create-snapshot-bundle.ts create mode 100644 tooling/v8-snapshot/src/generator/create-snapshot-script.ts create mode 100644 tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-dependencies.ts create mode 100644 tooling/v8-snapshot/src/generator/snapshot-generate-entry-via-yarn.ts create mode 100644 tooling/v8-snapshot/src/generator/snapshot-generator-flags.ts create mode 100644 tooling/v8-snapshot/src/generator/snapshot-generator.ts create mode 100644 tooling/v8-snapshot/src/generator/snapshot-verifier.ts create mode 100644 tooling/v8-snapshot/src/generator/write-config-json.ts create mode 100644 tooling/v8-snapshot/src/meta/dependency-map.ts create mode 100644 tooling/v8-snapshot/src/setup/config.ts create mode 100644 tooling/v8-snapshot/src/setup/consolidate-deps.ts create mode 100644 tooling/v8-snapshot/src/setup/force-no-rewrite.ts create mode 100644 tooling/v8-snapshot/src/setup/generate-entry.ts create mode 100644 tooling/v8-snapshot/src/setup/generate-metadata.ts create mode 100644 tooling/v8-snapshot/src/setup/index.ts create mode 100644 tooling/v8-snapshot/src/setup/install-snapshot.ts create mode 100644 tooling/v8-snapshot/src/snapbuild/snapbuild.ts create mode 100644 tooling/v8-snapshot/src/sourcemap/process-sourcemap.ts create mode 100644 tooling/v8-snapshot/src/types.ts create mode 100644 tooling/v8-snapshot/src/utils.ts create mode 100644 tooling/v8-snapshot/src/v8-snapshot.ts create mode 100644 tooling/v8-snapshot/test/.mocharc.js create mode 100644 tooling/v8-snapshot/test/fixtures/access-buffer/accessing-buffer.js create mode 100644 tooling/v8-snapshot/test/fixtures/access-buffer/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/access-buffer/valid-module.js create mode 100644 tooling/v8-snapshot/test/fixtures/console-assign/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/console-assign/reassign-console.js create mode 100644 tooling/v8-snapshot/test/fixtures/console-assign/using-console.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/app.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/index.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/commit-info/execa/lib/errname.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/hook-require.js create mode 100644 tooling/v8-snapshot/test/fixtures/deep-nested-deferred/yarn.lock create mode 100644 tooling/v8-snapshot/test/fixtures/dirname-filename-use/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-dirname-delayed.js create mode 100644 tooling/v8-snapshot/test/fixtures/dirname-filename-use/using-filename-init.js create mode 100644 tooling/v8-snapshot/test/fixtures/dirname-filename-use/valid-module.js create mode 100644 tooling/v8-snapshot/test/fixtures/invoke-missing-function/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-not-function.js create mode 100644 tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-push-on-undefined.js create mode 100644 tooling/v8-snapshot/test/fixtures/invoke-missing-function/invoke-undefined.js create mode 100644 tooling/v8-snapshot/test/fixtures/invoke-missing-function/valid-module.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/project/yarn.lock create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/entry-base.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-healthy.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/entry-intermediate-norewrite.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-healthy.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/intermediate-norewrite.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-healthy.js create mode 100644 tooling/v8-snapshot/test/fixtures/iterative/templates/leaf-norewrite.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/lateuses-static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-lateuses-static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/loads-static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-lateuses-static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/load-static-deferred/uses-loads-static-deferred.js create mode 100644 tooling/v8-snapshot/test/fixtures/minimal/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/minimal/yarn.lock create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/app.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/graceful-fs-polyfill.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/hook-require.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/has-flag.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/lib/colors/lib/system/supports-colors.js create mode 100644 tooling/v8-snapshot/test/fixtures/no-rewrite/yarn.lock create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/app.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/base.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/hook-require.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/multi-assign.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/multi-export.js create mode 100644 tooling/v8-snapshot/test/fixtures/rewrites/package.json create mode 100644 tooling/v8-snapshot/test/fixtures/windows-issues/app.js create mode 100644 tooling/v8-snapshot/test/fixtures/windows-issues/babel/unsupportedIterableToArray.js create mode 100644 tooling/v8-snapshot/test/fixtures/windows-issues/entry.js create mode 100644 tooling/v8-snapshot/test/fixtures/windows-issues/hook-require.js create mode 100644 tooling/v8-snapshot/test/fixtures/windows-issues/yarn.lock create mode 100644 tooling/v8-snapshot/test/integration/express.spec.ts create mode 100644 tooling/v8-snapshot/test/integration/loading.spec.ts create mode 100644 tooling/v8-snapshot/test/unit/doctor.spec.ts create mode 100644 tooling/v8-snapshot/test/unit/esbuild.spec.ts create mode 100644 tooling/v8-snapshot/test/utils/bundle.ts create mode 100644 tooling/v8-snapshot/test/utils/consts.ts create mode 100644 tooling/v8-snapshot/tsconfig.json diff --git a/.circleci/cache-version.txt b/.circleci/cache-version.txt index 5e88a75bc1a3..4a355f62e1a3 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 3fe00818085e..5c6ae226c0ff 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 67d09054c492..0c6917f65a79 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 7abb027d019b..a5e6e3ba3e40 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 c496b2a02dc0..7fb44280b48d 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 17e85156931c..e6f43e8131aa 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 2eb259019368..e139e4eb3981 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 5604e313c23a..6c42b3f58780 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 5f354257acc6..8313f340090b 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 e541ef2d7385..f40b1af11f4c 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 ad2ca1d28a42..6eb58f30f9f5 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 add1d333e549..47bd3c434eed 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 4cda77ebee55..f1e1744bb990 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 27ce4e0a3d24..2ffd065e0905 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 067e08556ec2..7744a91b763b 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 f794a90c0d58..efcee634d5d5 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 e8c31a04093f..c667b832c518 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 67418a2bd975..8d3410850a9c 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 51c396b6ee0f..b32db476bbf7 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 0603194058cd..c944c741f75d 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 b838b3d51d42..cd29d714554e 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 4969ea76fad1..b1985c65178e 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 28427146332f..9ead09a79c11 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 12b93763116a..92aabda6446f 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 0f9ce886e0fc..2ccad6aa708c 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 0a65fa0d11e6..d0baaedbaccc 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 a55ba38aa51e..d1ed4680c4a2 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 000000000000..be644918fa1c --- /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 000000000000..822ad9620876 --- /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 000000000000..e8952e8bac0e --- /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 000000000000..dfc457207c7c --- /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 000000000000..df53c5abb5fb --- /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 000000000000..2c50ce35981f --- /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 000000000000..c01f52f1c241 --- /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 000000000000..cea7a8e96b3d --- /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 000000000000..9720d8a75cb2 --- /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 000000000000..c319534c9e02 --- /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 000000000000..a8efa21e2ed6 --- /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 000000000000..b49b7713be12 --- /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 000000000000..96b32de0e073 --- /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 000000000000..8887a89cb941 --- /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 000000000000..5f33b92ef117 --- /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 000000000000..a9c10fbb71bd --- /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 000000000000..55e594961174 --- /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 000000000000..efb8c17ab3af --- /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 000000000000..b49b7713be12 --- /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 000000000000..96b32de0e073 --- /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 000000000000..8887a89cb941 --- /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 000000000000..5f33b92ef117 --- /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 000000000000..a9c10fbb71bd --- /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 000000000000..feee66fe9b54 --- /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 000000000000..64f522113bea --- /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 000000000000..455e685e2691 --- /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 ac883fc52bc1..d3b7f0f6c139 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 4ee39b3b16a3..2a61bf648282 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 e595016c6d05..4b54b05cf118 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 dc135948d589..3316714e5c86 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 000000000000..5136054b1175 --- /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 4ac4cbe278e5..000000000000 --- 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 000000000000..a328364fabf5 --- /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 4fe98b661354..ad10f8c50a7b 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`) -} - -require('./lib/unhandled_exceptions').handle() - -process.env.UV_THREADPOOL_SIZE = 128 - -if (isRunningElectron) { - require('./lib/util/process_profiler').start() + await require('./server-entry') } -// 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 d7514ab3367a..9a084d82b93b 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 690ae5a2c9c7..0e69c9f3d2d4 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 000000000000..e6ad9d695598 --- /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 000000000000..d3cf992105d9 --- /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 d50983eb5fe3..000000000000 --- 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 72e0a8c2b902..1f8848f83b13 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 9e6de9c1c62e..319068849902 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 901f7740073d..eb046cd475e0 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] + // 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('mocha-teamcity-reporter') + } - if (r) { + // 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(r) + 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 fd31e0afd8df..409a3e5d23bd 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 157007ae2815..5db24b07ddef 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 340887a6f16e..efe9cb21f1de 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 000000000000..4585fab6c6d5 --- /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 cdff7136b887..6cd8b927d0da 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 000000000000..3ff035cc671e --- /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 a90961025c8d..6b1106ebbeeb 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 c0d5fad15be5..000000000000 --- 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 715f07d48130..51800a1634f3 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 000000000000..e934adfd1b9e --- /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 000000000000..3bf8b3adcb80 --- /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 000000000000..4c68c313fad8 --- /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 000000000000..e3488be638ce --- /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 000000000000..d52cf6c9b635 --- /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 000000000000..c428425d5eff --- /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 000000000000..7e5b7a5586a3 --- /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 000000000000..e9e83028945c --- /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 000000000000..9720d8a75cb2 --- /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 000000000000..adf467349ece --- /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 000000000000..cfdebbee8018 --- /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 000000000000..cc934116224c --- /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 28720c55e350..239314877b83 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 000000000000..47ac4c68676c --- /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 08b82b7a2932..5b39e33f5c1d 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 56a431bad2a2..000000000000 --- 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 6d8034062e74..72b17b259991 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 4f9005160f8e..ed5724541e53 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 d6afba38590d..4ab970a13687 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 fb43eb7552ff..92fc9e4c8453 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 b590ac0aaee8..574e0c1e1894 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 346b41741449..000000000000 --- 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 225867546e16..69ca8ff5aaac 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' } } }, - })) - - sinon.stub(fs, 'readdir').withArgs('/tmp/cypress/junit').resolves([ - 'report.xml', - ]) - }) + beforeEach(() => { + process.env.CIRCLE_INTERNAL_CONFIG = '/foo.json' + sinon.stub(fs, 'readFile') + .withArgs('/foo.json').resolves(JSON.stringify({ + Dispatched: { TaskInfo: { Environment: { somekey: 'someval' } } }, + })) - 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('test result checking', () => { - it('checks for non-passing tests and fails when found', async () => { - fs.readFile - .withArgs('/tmp/cypress/junit/report.xml') - .resolves('') + 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('Expected the number of failures to be equal to 0') - } + 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) + } + }) }) - it('checks for 0 tests run and fails when found', async () => { - fs.readFile - .withArgs('/tmp/cypress/junit/report.xml') - .resolves('') + 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') - } + 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 e2eb33eea770..3637bb796b3c 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 d8c4a22ef10f..ae59f97236cc 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 53ede24f6005..db275fd8c47a 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 7faea5f0e03a..e2968728988c 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 63a1685e4a69..0b9631948213 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 67babfbab1c4..460046b8f7b6 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 f97f52c10c47..0a7ced4f428e 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 000000000000..affa47bc99b8 --- /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 000000000000..e2c326aa2c83 --- /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 000000000000..3e4eda266b94 --- /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 000000000000..d550d8113188 --- /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 000000000000..706172b6dd61 --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..ab62ecfd3977 --- /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 000000000000..053405bdf673 --- /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 000000000000..5c81c7883cbb --- /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 000000000000..ae62c663ae33 --- /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 000000000000..6b9bbbcc3ac6 --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..788a719e5abf --- /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 000000000000..801af12706cb --- /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 000000000000..43d44b8707dc --- /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 000000000000..113a4e937b36 --- /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 000000000000..e049a00b7756 --- /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 000000000000..59bb20714333 --- /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 000000000000..3f9a7a7598a6 --- /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 000000000000..d2ff65b730d1 --- /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 000000000000..1144c36a42a6 --- /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 000000000000..fb30ee1c453f --- /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 000000000000..2229baa1cb27 --- /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 000000000000..45a8553af697 --- /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 000000000000..e2f439148ed9 --- /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 000000000000..393905425d49 --- /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 000000000000..288fa5093ef2 --- /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 000000000000..d53d048d68f4 --- /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 000000000000..b2e4808032fb --- /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 000000000000..1e291e4722db --- /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 000000000000..1d5ef1b2997c --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..816183aa7be0 --- /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 000000000000..8d51dd12b124 --- /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 000000000000..094eaf1c214e --- /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 000000000000..8aa58a397908 --- /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 000000000000..b9181a1bd1d0 --- /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 000000000000..499259460f39 --- /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 000000000000..fbc420178884 --- /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 000000000000..2960b672d166 --- /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 000000000000..e3d7c6aa622d --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..a90cfb1b3675 --- /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 000000000000..2df7351ccd2f --- /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 000000000000..9d27d41ee804 --- /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 000000000000..6f75a785dc6e --- /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 000000000000..de2858ac0270 --- /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 000000000000..3ac002b8c6b3 --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..dd879418f08c --- /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 000000000000..7e7a8a5a3594 --- /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 000000000000..875066f5cfb9 --- /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 000000000000..86725561021e --- /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 000000000000..2edbbad2e68e --- /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 000000000000..d45d732a8a8e --- /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 000000000000..542b5d9eb921 --- /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 000000000000..05ecebf3ba1b --- /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 000000000000..77c08665dcb4 --- /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 000000000000..cc053f1bd485 --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..2a38ae1d1f49 --- /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 000000000000..1522d93a871f --- /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 000000000000..fb57ccd13afb --- /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 000000000000..af104db410c6 --- /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 000000000000..6869a5cec656 --- /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 000000000000..dd879418f08c --- /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 000000000000..751449f1a148 --- /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 000000000000..7e7a8a5a3594 --- /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 000000000000..c6f17b129f72 --- /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 000000000000..ec3ecb1f624c --- /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 000000000000..45464966de7b --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..94262b2a58d2 --- /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 000000000000..8fe82b604c27 --- /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 000000000000..edecf4146e38 --- /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 000000000000..9ce5f23e2c38 --- /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 b551d10b9115..edeb5e59f9ea 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 5acfb766a852..4e365d27bd41 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) - - await exec() - - chmodr(projectPath, 0o777) + try { + await Fixtures.scaffoldProject('read-only-project-root') + await scaffoldCommonNodeModules() + chmodr(projectPath, 0o500) + + 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 757b021b9aa7..90910937da52 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 14a3868bc203..9831a160518d 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 000000000000..6dd29b7f8d05 --- /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 000000000000..2d5bc14107a3 --- /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 000000000000..357daccbaab2 --- /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 000000000000..4120ab447d33 --- /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 000000000000..c7a5f2379a14 --- /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 000000000000..5d5f2ce1c272 --- /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 000000000000..bfffeb9596e1 --- /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 000000000000..8b5cd01d0466 --- /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 000000000000..48f1c47707e7 --- /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 000000000000..1a511e0c77ac --- /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 000000000000..01359e3ac7a5 --- /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 000000000000..1596a35d77fb --- /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 000000000000..e69de29bb2d1 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 000000000000..a98b93a97b36 --- /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 000000000000..342f8494c258 --- /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 000000000000..fd28b69df5af --- /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 000000000000..6361f44a9d7e --- /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 000000000000..f6912bcbadab --- /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 000000000000..83f325464432 --- /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 000000000000..130b7806420e --- /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 000000000000..f674cc83c24f --- /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 000000000000..d545d30b7451 --- /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 000000000000..f40e4e54fecf --- /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 000000000000..a4a0d2d9c6df --- /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 000000000000..646546382aca --- /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 000000000000..b82b44bd5e61 --- /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 000000000000..19611a0c59fb --- /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 000000000000..fd28b69df5af --- /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 000000000000..537d9458d53f --- /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 000000000000..10b528e471e5 --- /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 000000000000..6920d0cbb228 --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..20db9f9d0778 --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..e2485724317e --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..dfff2f7f3ece --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..2dbe1a95ef92 --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..61fc0d6d6cd6 --- /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 000000000000..f2ac6f2429c1 --- /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 000000000000..c0c3943ff8e6 --- /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 000000000000..75def0874106 --- /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 000000000000..5725d139b13c --- /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 000000000000..f69ffc9412f2 --- /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 000000000000..14f08862b304 --- /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 000000000000..a069a2308cb1 --- /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 000000000000..21dd4ed1b145 --- /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 000000000000..e3488be638ce --- /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 000000000000..750e9a945ea9 --- /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 000000000000..2b1393397f61 --- /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 000000000000..a431c1b88113 --- /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 000000000000..4ba9e393758d --- /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 000000000000..ae3dfad427b6 --- /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 000000000000..4d3999c98994 --- /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 000000000000..80f8cd6b7f28 --- /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 000000000000..4298614102f4 --- /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 000000000000..766b44a624f1 --- /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 000000000000..eb2b92817af9 --- /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 000000000000..e8370f940a3e --- /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 000000000000..3330d990d4bc --- /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 000000000000..43f01c22c383 --- /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 000000000000..05ebc24b54d4 --- /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 000000000000..65dbcfafc6c0 --- /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 000000000000..b4345bd6586f --- /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 000000000000..7d194723564f --- /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 000000000000..88ee4e822740 --- /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 000000000000..1449b0475684 --- /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 000000000000..50fba54cbbf7 --- /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 000000000000..3b520028a0e3 --- /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 000000000000..e6745e6dfa26 --- /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 000000000000..abdbd34e3939 --- /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 000000000000..ec5f73d7139c --- /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 000000000000..b8f1c9e94dfb --- /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 000000000000..999ef2106e57 --- /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 000000000000..07ef9d035adc --- /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 000000000000..f1e313ab68fa --- /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 000000000000..01359e3ac7a5 --- /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 000000000000..dcef87c68cc2 --- /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 000000000000..fc6fe6b931b7 --- /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 000000000000..0e6e37360ad4 --- /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 000000000000..37d6a788845c --- /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 000000000000..08b920e6530b --- /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 000000000000..0e6e37360ad4 --- /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 000000000000..b7c2b7368695 --- /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 000000000000..c59d93162c7c --- /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 000000000000..6ccca01b450d --- /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 000000000000..e9ea1c2c9b4e --- /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 000000000000..ccfdd1a30712 --- /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 000000000000..fb57ccd13afb --- /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 000000000000..47002899cf7c --- /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 000000000000..c36331cd3bb8 --- /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 000000000000..bc358596102d --- /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 000000000000..0e6e37360ad4 --- /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 000000000000..d66d4fc8ff67 --- /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 000000000000..3c694126dbf7 --- /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 000000000000..5f1623a1a960 --- /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 000000000000..a7bd9eff86a0 --- /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 000000000000..0e6e37360ad4 --- /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 000000000000..fb57ccd13afb --- /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 000000000000..18bca72794a7 --- /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 000000000000..39a15978fd0b --- /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 000000000000..96cec721d81c --- /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 000000000000..6a5f96088dcb --- /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 000000000000..d85b883967ec --- /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 000000000000..c7e33af7c340 --- /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 000000000000..2e2d09e71fff --- /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 000000000000..1806f2792a81 --- /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 000000000000..e8f7328d6ee5 --- /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 000000000000..8d455a3bae94 --- /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 000000000000..340bdd36cf16 --- /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 000000000000..25991d9b0564 --- /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 000000000000..720d66bb662b --- /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 000000000000..3c717c8b47c5 --- /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 000000000000..1f13b8b27a44 --- /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 000000000000..2b9f0abe2a88 --- /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 000000000000..71548faa9cf7 --- /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 000000000000..a012369a600b --- /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 000000000000..c323c638ef31 --- /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 000000000000..51d7c7fa78d3 --- /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 000000000000..37269e031643 --- /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 000000000000..8d455a3bae94 --- /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 000000000000..ccfdd1a30712 --- /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 000000000000..6a7da931e38c --- /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 000000000000..74ee5da2ba02 --- /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 000000000000..fb57ccd13afb --- /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 000000000000..609ff3a78883 --- /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 000000000000..cc72a520f194 --- /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 000000000000..20aeb416c3b1 --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..d240e4acbd68 --- /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 000000000000..dc81fd8705b9 --- /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 000000000000..65d94caeb781 --- /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 000000000000..19230691d4b7 --- /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 000000000000..be3c3c3873ea --- /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 000000000000..6373978beeed --- /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 000000000000..fdc8a8691e49 --- /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 000000000000..fb57ccd13afb --- /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 000000000000..a4b51180dee4 --- /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 000000000000..5f9a018563d3 --- /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 000000000000..b93110246565 --- /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 000000000000..b52c4c37ccc7 --- /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 000000000000..b7a18eed6900 --- /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 000000000000..b25173bec2c5 --- /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 000000000000..dfe09e6b0963 --- /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 6a5683d2ec57..97364db91f73 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"