ami-iit / openmct

A web based mission control framework.
https://nasa.github.io/openmct/
Other
0 stars 0 forks source link

Upgrade OpenMCT to master-2.0.3 #5

Open nunoguedelha opened 2 years ago

nunoguedelha commented 2 years ago

Summary

Update fork repo from original one and install commit 3fcb4acf4bcea56fd3b04c9ba54188d092adbb46 on branch master-2.0.3.

:warning: Release v2.0.3 is only compatible with node.js 14.19.1+.

  1. Upgrade NVM to v0.39.1
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

    No change required on the ~/.bash_profile / ~/.bashrc.

  2. Install and use LTS 14.19.1 (latest LTS 14), with latest respective NPM version => node v14.19.1 / npm 6.14.16
    nvm install 14.19.1 --latest-npm
  3. Install openmct commit 3fcb4acf4bcea56fd3b04c9ba54188d092adbb46 on master-2.0.3
    cd <openmct-root-path>
    npm install
  4. Test the installed openmct
    npm test

    => All PASS.

nunoguedelha commented 2 years ago

Other Checks

$ node -v
v14.19.1
$ npm -v
6.14.16

npm ls outputs an error:

npm ERR! peer dep missing: playwright@>=1, required by @percy/playwright@1.0.2

Playwright is a Node.js library for automating Chromium, Firefox and Webkit web browser engines (Webkit is the one used on Safari among others). this package allows running a headless browser process, i.e. without UI. Then, percy is a remote platform for visual testing web applications and OpenMCT team uses it for testing their platform. So it seems to have some relevance for testing the installation. I'll check again later with an install from scratch after a full cleanup.

nunoguedelha commented 2 years ago

New installation

I did a new installation from scratch, after

We get an installation without errors.

`npm ls` output ``` $ npm ls openmct@2.0.3 /Users/nunoguedelha/dev/openmct ├─┬ @babel/eslint-parser@7.16.3 │ ├─┬ eslint-scope@5.1.1 │ │ ├─┬ esrecurse@4.3.0 │ │ │ └── estraverse@5.3.0 │ │ └── estraverse@4.3.0 │ ├── eslint-visitor-keys@2.1.0 │ └── semver@6.3.0 ├── @braintree/sanitize-url@6.0.0 ├─┬ @percy/cli@1.0.4 │ ├─┬ @percy/cli-build@1.0.4 │ │ └── @percy/cli-command@1.0.4 deduped │ ├─┬ @percy/cli-command@1.0.4 │ │ ├─┬ @percy/config@1.0.4 │ │ │ ├── @percy/logger@1.0.4 deduped │ │ │ ├─┬ ajv@8.11.0 │ │ │ │ ├── fast-deep-equal@3.1.3 deduped │ │ │ │ ├── json-schema-traverse@1.0.0 deduped │ │ │ │ ├── require-from-string@2.0.2 deduped │ │ │ │ └── uri-js@4.4.1 deduped │ │ │ ├─┬ cosmiconfig@7.0.1 │ │ │ │ ├── @types/parse-json@4.0.0 │ │ │ │ ├── import-fresh@3.3.0 deduped │ │ │ │ ├─┬ parse-json@5.2.0 │ │ │ │ │ ├── @babel/code-frame@7.16.7 deduped │ │ │ │ │ ├─┬ error-ex@1.3.2 │ │ │ │ │ │ └── is-arrayish@0.2.1 │ │ │ │ │ ├── json-parse-even-better-errors@2.3.1 │ │ │ │ │ └── lines-and-columns@1.2.4 │ │ │ │ ├── path-type@4.0.0 deduped │ │ │ │ └── yaml@1.10.2 deduped │ │ │ └── yaml@1.10.2 deduped │ │ ├─┬ @percy/core@1.0.4 │ │ │ ├── @percy/client@1.0.4 deduped │ │ │ ├── @percy/config@1.0.4 deduped │ │ │ ├── @percy/dom@1.0.4 │ │ │ ├── @percy/logger@1.0.4 deduped │ │ │ ├── content-disposition@0.5.4 deduped │ │ │ ├── cross-spawn@7.0.3 deduped │ │ │ ├── extract-zip@2.0.1 deduped │ │ │ ├── fast-glob@3.2.11 deduped │ │ │ ├── micromatch@4.0.5 deduped │ │ │ ├── mime-types@2.1.35 deduped │ │ │ ├── path-to-regexp@6.2.1 │ │ │ ├── rimraf@3.0.2 deduped │ │ │ └── ws@8.6.0 │ │ └── @percy/logger@1.0.4 deduped │ ├─┬ @percy/cli-config@1.0.4 │ │ └── @percy/cli-command@1.0.4 deduped │ ├─┬ @percy/cli-exec@1.0.4 │ │ ├── @percy/cli-command@1.0.4 deduped │ │ ├── cross-spawn@7.0.3 deduped │ │ └── which@2.0.2 deduped │ ├─┬ @percy/cli-snapshot@1.0.4 │ │ ├── @percy/cli-command@1.0.4 deduped │ │ └── yaml@1.10.2 │ ├─┬ @percy/cli-upload@1.0.4 │ │ ├── @percy/cli-command@1.0.4 deduped │ │ ├── fast-glob@3.2.11 deduped │ │ └─┬ image-size@1.0.1 │ │ └─┬ queue@6.0.2 │ │ └── inherits@2.0.4 deduped │ ├─┬ @percy/client@1.0.4 │ │ ├── @percy/env@1.0.4 │ │ └── @percy/logger@1.0.4 deduped │ └── @percy/logger@1.0.4 ├─┬ @percy/playwright@1.0.2 │ └── @percy/sdk-utils@1.1.2 ├─┬ @playwright/test@1.19.2 │ ├─┬ @babel/code-frame@7.16.7 │ │ └─┬ @babel/highlight@7.17.9 │ │ ├── @babel/helper-validator-identifier@7.16.7 │ │ ├─┬ chalk@2.4.2 │ │ │ ├─┬ ansi-styles@3.2.1 │ │ │ │ └─┬ color-convert@1.9.3 │ │ │ │ └── color-name@1.1.3 │ │ │ ├── escape-string-regexp@1.0.5 deduped │ │ │ └─┬ supports-color@5.5.0 │ │ │ └── has-flag@3.0.0 │ │ └── js-tokens@4.0.0 │ ├─┬ @babel/core@7.16.12 │ │ ├── @babel/code-frame@7.16.7 deduped │ │ ├─┬ @babel/generator@7.17.10 │ │ │ ├── @babel/types@7.17.10 deduped │ │ │ ├─┬ @jridgewell/gen-mapping@0.1.1 │ │ │ │ ├── @jridgewell/set-array@1.1.1 │ │ │ │ └── @jridgewell/sourcemap-codec@1.4.13 │ │ │ └── jsesc@2.5.2 │ │ ├─┬ @babel/helper-compilation-targets@7.17.10 │ │ │ ├── @babel/compat-data@7.17.10 │ │ │ ├── @babel/helper-validator-option@7.16.7 deduped │ │ │ ├── browserslist@4.20.3 deduped │ │ │ └── semver@6.3.0 deduped │ │ ├─┬ @babel/helper-module-transforms@7.17.7 │ │ │ ├─┬ @babel/helper-environment-visitor@7.16.7 │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├── @babel/helper-module-imports@7.16.7 deduped │ │ │ ├── @babel/helper-simple-access@7.17.7 deduped │ │ │ ├─┬ @babel/helper-split-export-declaration@7.16.7 │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├── @babel/helper-validator-identifier@7.16.7 deduped │ │ │ ├── @babel/template@7.16.7 deduped │ │ │ ├── @babel/traverse@7.17.10 deduped │ │ │ └── @babel/types@7.17.10 deduped │ │ ├─┬ @babel/helpers@7.17.9 │ │ │ ├── @babel/template@7.16.7 deduped │ │ │ ├── @babel/traverse@7.17.10 deduped │ │ │ └── @babel/types@7.17.10 deduped │ │ ├── @babel/parser@7.17.10 │ │ ├─┬ @babel/template@7.16.7 │ │ │ ├── @babel/code-frame@7.16.7 deduped │ │ │ ├── @babel/parser@7.17.10 deduped │ │ │ └── @babel/types@7.17.10 deduped │ │ ├─┬ @babel/traverse@7.17.10 │ │ │ ├── @babel/code-frame@7.16.7 deduped │ │ │ ├── @babel/generator@7.17.10 deduped │ │ │ ├── @babel/helper-environment-visitor@7.16.7 deduped │ │ │ ├─┬ @babel/helper-function-name@7.17.9 │ │ │ │ ├── @babel/template@7.16.7 deduped │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├─┬ @babel/helper-hoist-variables@7.16.7 │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├── @babel/helper-split-export-declaration@7.16.7 deduped │ │ │ ├── @babel/parser@7.17.10 deduped │ │ │ ├── @babel/types@7.17.10 deduped │ │ │ ├── debug@4.3.4 deduped │ │ │ └── globals@11.12.0 │ │ ├─┬ @babel/types@7.17.10 │ │ │ ├── @babel/helper-validator-identifier@7.16.7 deduped │ │ │ └── to-fast-properties@2.0.0 │ │ ├── convert-source-map@1.8.0 deduped │ │ ├── debug@4.3.4 deduped │ │ ├── gensync@1.0.0-beta.2 │ │ ├── json5@2.2.0 deduped │ │ ├── semver@6.3.0 deduped │ │ └── source-map@0.5.7 │ ├─┬ @babel/plugin-proposal-class-properties@7.16.7 │ │ ├─┬ @babel/helper-create-class-features-plugin@7.17.9 │ │ │ ├── @babel/helper-annotate-as-pure@7.16.7 deduped │ │ │ ├── @babel/helper-environment-visitor@7.16.7 deduped │ │ │ ├── @babel/helper-function-name@7.17.9 deduped │ │ │ ├─┬ @babel/helper-member-expression-to-functions@7.17.7 │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├─┬ @babel/helper-optimise-call-expression@7.16.7 │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ ├─┬ @babel/helper-replace-supers@7.16.7 │ │ │ │ ├── @babel/helper-environment-visitor@7.16.7 deduped │ │ │ │ ├── @babel/helper-member-expression-to-functions@7.17.7 deduped │ │ │ │ ├── @babel/helper-optimise-call-expression@7.16.7 deduped │ │ │ │ ├── @babel/traverse@7.17.10 deduped │ │ │ │ └── @babel/types@7.17.10 deduped │ │ │ └── @babel/helper-split-export-declaration@7.16.7 deduped │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-dynamic-import@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-dynamic-import@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-export-namespace-from@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-export-namespace-from@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-logical-assignment-operators@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-logical-assignment-operators@7.10.4 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-nullish-coalescing-operator@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-numeric-separator@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-numeric-separator@7.10.4 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-optional-chaining@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ ├─┬ @babel/helper-skip-transparent-expression-wrappers@7.16.0 │ │ │ └── @babel/types@7.17.10 deduped │ │ └─┬ @babel/plugin-syntax-optional-chaining@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-private-methods@7.16.11 │ │ ├── @babel/helper-create-class-features-plugin@7.17.9 deduped │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-proposal-private-property-in-object@7.16.7 │ │ ├─┬ @babel/helper-annotate-as-pure@7.16.7 │ │ │ └── @babel/types@7.17.10 deduped │ │ ├── @babel/helper-create-class-features-plugin@7.17.9 deduped │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-private-property-in-object@7.14.5 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-syntax-async-generators@7.8.4 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-syntax-json-strings@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-syntax-object-rest-spread@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-syntax-optional-catch-binding@7.8.3 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ @babel/plugin-transform-modules-commonjs@7.16.8 │ │ ├── @babel/helper-module-transforms@7.17.7 deduped │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ ├─┬ @babel/helper-simple-access@7.17.7 │ │ │ └── @babel/types@7.17.10 deduped │ │ └─┬ babel-plugin-dynamic-import-node@2.3.3 │ │ └─┬ object.assign@4.1.2 │ │ ├── call-bind@1.0.2 deduped │ │ ├─┬ define-properties@1.1.4 │ │ │ ├─┬ has-property-descriptors@1.0.0 │ │ │ │ └── get-intrinsic@1.1.1 deduped │ │ │ └── object-keys@1.1.1 deduped │ │ ├── has-symbols@1.0.3 │ │ └── object-keys@1.1.1 │ ├─┬ @babel/plugin-transform-react-jsx@7.16.7 │ │ ├── @babel/helper-annotate-as-pure@7.16.7 deduped │ │ ├─┬ @babel/helper-module-imports@7.16.7 │ │ │ └── @babel/types@7.17.10 deduped │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ ├─┬ @babel/plugin-syntax-jsx@7.16.7 │ │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ │ └── @babel/types@7.17.10 deduped │ ├─┬ @babel/preset-typescript@7.16.7 │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ ├── @babel/helper-validator-option@7.16.7 │ │ └─┬ @babel/plugin-transform-typescript@7.16.8 │ │ ├── @babel/helper-create-class-features-plugin@7.17.9 deduped │ │ ├── @babel/helper-plugin-utils@7.16.7 deduped │ │ └─┬ @babel/plugin-syntax-typescript@7.17.10 │ │ └── @babel/helper-plugin-utils@7.16.7 deduped │ ├─┬ babel-plugin-module-resolver@4.1.0 │ │ ├─┬ find-babel-config@1.2.0 │ │ │ ├── json5@0.5.1 │ │ │ └── path-exists@3.0.0 │ │ ├── glob@7.2.0 deduped │ │ ├─┬ pkg-up@3.1.0 │ │ │ └─┬ find-up@3.0.0 │ │ │ └─┬ locate-path@3.0.0 │ │ │ ├─┬ p-locate@3.0.0 │ │ │ │ └── p-limit@2.3.0 deduped │ │ │ └── path-exists@3.0.0 deduped │ │ ├── reselect@4.1.5 │ │ └── resolve@1.22.0 deduped │ ├── colors@1.4.0 │ ├── commander@8.3.0 │ ├─┬ debug@4.3.3 │ │ └── ms@2.1.2 │ ├─┬ expect@27.2.5 │ │ ├─┬ @jest/types@27.5.1 │ │ │ ├── @types/istanbul-lib-coverage@2.0.4 │ │ │ ├─┬ @types/istanbul-reports@3.0.1 │ │ │ │ └─┬ @types/istanbul-lib-report@3.0.0 │ │ │ │ └── @types/istanbul-lib-coverage@2.0.4 deduped │ │ │ ├── @types/node@17.0.31 deduped │ │ │ ├─┬ @types/yargs@16.0.4 │ │ │ │ └── @types/yargs-parser@21.0.0 │ │ │ └─┬ chalk@4.1.2 │ │ │ ├─┬ ansi-styles@4.3.0 │ │ │ │ └─┬ color-convert@2.0.1 │ │ │ │ └── color-name@1.1.4 │ │ │ └─┬ supports-color@7.2.0 │ │ │ └── has-flag@4.0.0 │ │ ├── ansi-styles@5.2.0 │ │ ├── jest-get-type@27.5.1 │ │ ├── jest-matcher-utils@27.2.5 deduped │ │ ├─┬ jest-message-util@27.5.1 │ │ │ ├── @babel/code-frame@7.16.7 deduped │ │ │ ├── @jest/types@27.5.1 deduped │ │ │ ├── @types/stack-utils@2.0.1 │ │ │ ├─┬ chalk@4.1.2 │ │ │ │ ├─┬ ansi-styles@4.3.0 │ │ │ │ │ └─┬ color-convert@2.0.1 │ │ │ │ │ └── color-name@1.1.4 │ │ │ │ └─┬ supports-color@7.2.0 │ │ │ │ └── has-flag@4.0.0 │ │ │ ├── graceful-fs@4.2.10 deduped │ │ │ ├── micromatch@4.0.5 deduped │ │ │ ├── pretty-format@27.5.1 deduped │ │ │ ├── slash@3.0.0 │ │ │ └── stack-utils@2.0.5 deduped │ │ └── jest-regex-util@27.5.1 │ ├─┬ jest-matcher-utils@27.2.5 │ │ ├─┬ chalk@4.1.2 │ │ │ ├─┬ ansi-styles@4.3.0 │ │ │ │ └─┬ color-convert@2.0.1 │ │ │ │ └── color-name@1.1.4 │ │ │ └─┬ supports-color@7.2.0 │ │ │ └── has-flag@4.0.0 │ │ ├─┬ jest-diff@27.5.1 │ │ │ ├─┬ chalk@4.1.2 │ │ │ │ ├─┬ ansi-styles@4.3.0 │ │ │ │ │ └─┬ color-convert@2.0.1 │ │ │ │ │ └── color-name@1.1.4 │ │ │ │ └─┬ supports-color@7.2.0 │ │ │ │ └── has-flag@4.0.0 │ │ │ ├── diff-sequences@27.5.1 │ │ │ ├── jest-get-type@27.5.1 deduped │ │ │ └── pretty-format@27.5.1 deduped │ │ ├── jest-get-type@27.5.1 deduped │ │ └─┬ pretty-format@27.5.1 │ │ ├── ansi-regex@5.0.1 deduped │ │ ├── ansi-styles@5.2.0 │ │ └── react-is@17.0.2 │ ├── jpeg-js@0.4.3 │ ├─┬ json5@2.2.0 │ │ └── minimist@1.2.6 │ ├── mime@3.0.0 │ ├─┬ minimatch@3.0.4 │ │ └─┬ brace-expansion@1.1.11 │ │ ├── balanced-match@1.0.2 │ │ └── concat-map@0.0.1 │ ├── ms@2.1.3 │ ├─┬ open@8.4.0 │ │ ├── define-lazy-prop@2.0.0 │ │ ├── is-docker@2.2.1 │ │ └── is-wsl@2.2.0 deduped │ ├── pirates@4.0.4 │ ├─┬ pixelmatch@5.2.1 │ │ └── pngjs@4.0.1 │ ├─┬ playwright-core@1.19.2 │ │ ├── commander@8.3.0 deduped │ │ ├── debug@4.3.3 deduped │ │ ├─┬ extract-zip@2.0.1 │ │ │ ├─┬ @types/yauzl@2.10.0 │ │ │ │ └── @types/node@17.0.31 deduped │ │ │ ├── debug@4.3.4 deduped │ │ │ ├─┬ get-stream@5.2.0 │ │ │ │ └─┬ pump@3.0.0 │ │ │ │ ├─┬ end-of-stream@1.4.4 │ │ │ │ │ └── once@1.4.0 deduped │ │ │ │ └── once@1.4.0 deduped │ │ │ └── yauzl@2.10.0 deduped │ │ ├─┬ https-proxy-agent@5.0.0 │ │ │ ├─┬ agent-base@6.0.2 │ │ │ │ └── debug@4.3.4 deduped │ │ │ └── debug@4.3.4 deduped │ │ ├── jpeg-js@0.4.3 deduped │ │ ├── mime@3.0.0 deduped │ │ ├── pngjs@6.0.0 deduped │ │ ├── progress@2.0.3 │ │ ├─┬ proper-lockfile@4.1.2 │ │ │ ├── graceful-fs@4.2.10 deduped │ │ │ ├── retry@0.12.0 │ │ │ └── signal-exit@3.0.7 deduped │ │ ├── proxy-from-env@1.1.0 │ │ ├── rimraf@3.0.2 deduped │ │ ├─┬ socks-proxy-agent@6.1.1 │ │ │ ├── agent-base@6.0.2 deduped │ │ │ ├── debug@4.3.4 deduped │ │ │ └─┬ socks@2.6.2 │ │ │ ├── ip@1.1.5 │ │ │ └── smart-buffer@4.2.0 │ │ ├── stack-utils@2.0.5 deduped │ │ ├── ws@8.4.2 │ │ ├─┬ yauzl@2.10.0 │ │ │ ├── buffer-crc32@0.2.13 deduped │ │ │ └─┬ fd-slicer@1.1.0 │ │ │ └── pend@1.2.0 │ │ └── yazl@2.5.1 deduped │ ├── pngjs@6.0.0 │ ├─┬ rimraf@3.0.2 │ │ └── glob@7.2.0 deduped │ ├─┬ source-map-support@0.4.18 │ │ └── source-map@0.5.7 deduped │ ├─┬ stack-utils@2.0.5 │ │ └── escape-string-regexp@2.0.0 │ └─┬ yazl@2.5.1 │ └── buffer-crc32@0.2.13 ├── @types/eventemitter3@1.2.0 ├── @types/jasmine@4.0.3 ├─┬ @types/karma@6.3.3 │ ├── @types/node@17.0.31 │ └─┬ log4js@6.4.6 │ ├── date-format@4.0.9 │ ├── debug@4.3.4 deduped │ ├── flatted@3.2.5 │ ├── rfdc@1.3.0 │ └─┬ streamroller@3.0.8 │ ├── date-format@4.0.9 deduped │ ├── debug@4.3.4 deduped │ └─┬ fs-extra@10.1.0 │ ├── graceful-fs@4.2.10 deduped │ ├─┬ jsonfile@6.1.0 │ │ ├── graceful-fs@4.2.10 deduped │ │ └── universalify@2.0.0 deduped │ └── universalify@2.0.0 ├── @types/lodash@4.14.182 ├── @types/mocha@9.1.1 ├─┬ ajv@6.12.6 │ ├── fast-deep-equal@3.1.3 │ ├── fast-json-stable-stringify@2.1.0 │ ├── json-schema-traverse@0.4.1 │ └─┬ uri-js@4.4.1 │ └── punycode@2.1.1 ├─┬ allure-playwright@2.0.0-beta.15 │ └─┬ allure-js-commons@2.0.0-beta.15 │ ├── mkdirp@1.0.4 │ ├── properties@1.2.1 │ └── uuid@8.3.2 ├─┬ babel-loader@8.2.3 │ ├─┬ find-cache-dir@3.3.2 │ │ ├── commondir@1.0.1 │ │ ├── make-dir@3.1.0 deduped │ │ └─┬ pkg-dir@4.2.0 │ │ └─┬ find-up@4.1.0 │ │ ├─┬ locate-path@5.0.0 │ │ │ └─┬ p-locate@4.1.0 │ │ │ └── p-limit@2.3.0 deduped │ │ └── path-exists@4.0.0 │ ├─┬ loader-utils@1.4.0 │ │ ├── big.js@5.2.2 │ │ ├── emojis-list@3.0.0 │ │ └─┬ json5@1.0.1 │ │ └── minimist@1.2.6 deduped │ ├─┬ make-dir@3.1.0 │ │ └── semver@6.3.0 deduped │ └─┬ schema-utils@2.7.1 │ ├── @types/json-schema@7.0.11 │ ├── ajv@6.12.6 deduped │ └── ajv-keywords@3.5.2 ├─┬ babel-plugin-istanbul@6.1.1 │ ├── @babel/helper-plugin-utils@7.16.7 │ ├─┬ @istanbuljs/load-nyc-config@1.1.0 │ │ ├── camelcase@5.3.1 │ │ ├─┬ find-up@4.1.0 │ │ │ ├─┬ locate-path@5.0.0 │ │ │ │ └─┬ p-locate@4.1.0 │ │ │ │ └─┬ p-limit@2.3.0 │ │ │ │ └── p-try@2.2.0 │ │ │ └── path-exists@4.0.0 │ │ ├── get-package-type@0.1.0 │ │ ├─┬ js-yaml@3.14.1 │ │ │ ├─┬ argparse@1.0.10 │ │ │ │ └── sprintf-js@1.0.3 │ │ │ └── esprima@4.0.1 │ │ └── resolve-from@5.0.0 │ ├── @istanbuljs/schema@0.1.3 │ ├─┬ istanbul-lib-instrument@5.2.0 │ │ ├── @babel/core@7.16.12 deduped │ │ ├── @babel/parser@7.17.10 deduped │ │ ├── @istanbuljs/schema@0.1.3 deduped │ │ ├── istanbul-lib-coverage@3.2.0 deduped │ │ └── semver@6.3.0 deduped │ └─┬ test-exclude@6.0.0 │ ├── @istanbuljs/schema@0.1.3 deduped │ ├── glob@7.2.0 deduped │ └── minimatch@3.1.2 deduped ├── comma-separated-values@3.6.4 ├─┬ copy-webpack-plugin@10.2.0 │ ├─┬ fast-glob@3.2.11 │ │ ├── @nodelib/fs.stat@2.0.5 │ │ ├─┬ @nodelib/fs.walk@1.2.8 │ │ │ ├─┬ @nodelib/fs.scandir@2.1.5 │ │ │ │ ├── @nodelib/fs.stat@2.0.5 deduped │ │ │ │ └─┬ run-parallel@1.2.0 │ │ │ │ └── queue-microtask@1.2.3 │ │ │ └─┬ fastq@1.13.0 │ │ │ └── reusify@1.0.4 │ │ ├─┬ glob-parent@5.1.2 │ │ │ └── is-glob@4.0.3 deduped │ │ ├── merge2@1.4.1 │ │ └─┬ micromatch@4.0.5 │ │ ├── braces@3.0.2 deduped │ │ └── picomatch@2.3.1 │ ├─┬ glob-parent@6.0.2 │ │ └── is-glob@4.0.3 deduped │ ├─┬ globby@12.2.0 │ │ ├── array-union@3.0.1 │ │ ├─┬ dir-glob@3.0.1 │ │ │ └── path-type@4.0.0 │ │ ├── fast-glob@3.2.11 deduped │ │ ├── ignore@5.2.0 deduped │ │ ├── merge2@1.4.1 deduped │ │ └── slash@4.0.0 │ ├── normalize-path@3.0.0 │ ├─┬ schema-utils@4.0.0 │ │ ├── @types/json-schema@7.0.11 deduped │ │ ├─┬ ajv@8.11.0 │ │ │ ├── fast-deep-equal@3.1.3 deduped │ │ │ ├── json-schema-traverse@1.0.0 │ │ │ ├── require-from-string@2.0.2 │ │ │ └── uri-js@4.4.1 deduped │ │ ├─┬ ajv-formats@2.1.1 │ │ │ └─┬ ajv@8.11.0 │ │ │ ├── fast-deep-equal@3.1.3 deduped │ │ │ ├── json-schema-traverse@1.0.0 deduped │ │ │ ├── require-from-string@2.0.2 deduped │ │ │ └── uri-js@4.4.1 deduped │ │ └─┬ ajv-keywords@5.1.0 │ │ └── fast-deep-equal@3.1.3 deduped │ └─┬ serialize-javascript@6.0.0 │ └─┬ randombytes@2.1.0 │ └── safe-buffer@5.2.1 deduped ├─┬ cross-env@7.0.3 │ └─┬ cross-spawn@7.0.3 │ ├── path-key@3.1.1 │ ├─┬ shebang-command@2.0.0 │ │ └── shebang-regex@3.0.0 │ └── which@2.0.2 deduped ├─┬ css-loader@4.0.0 │ ├── camelcase@6.3.0 │ ├── cssesc@3.0.0 │ ├─┬ icss-utils@4.1.1 │ │ └── postcss@7.0.39 deduped │ ├─┬ loader-utils@2.0.2 │ │ ├── big.js@5.2.2 deduped │ │ ├── emojis-list@3.0.0 deduped │ │ └── json5@2.2.0 deduped │ ├── normalize-path@3.0.0 deduped │ ├─┬ postcss@7.0.39 │ │ ├── picocolors@0.2.1 │ │ └── source-map@0.6.1 │ ├─┬ postcss-modules-extract-imports@2.0.0 │ │ └── postcss@7.0.39 deduped │ ├─┬ postcss-modules-local-by-default@3.0.3 │ │ ├── icss-utils@4.1.1 deduped │ │ ├── postcss@7.0.39 deduped │ │ ├─┬ postcss-selector-parser@6.0.10 │ │ │ ├── cssesc@3.0.0 deduped │ │ │ └── util-deprecate@1.0.2 │ │ └── postcss-value-parser@4.2.0 deduped │ ├─┬ postcss-modules-scope@2.2.0 │ │ ├── postcss@7.0.39 deduped │ │ └── postcss-selector-parser@6.0.10 deduped │ ├─┬ postcss-modules-values@3.0.0 │ │ ├── icss-utils@4.1.1 deduped │ │ └── postcss@7.0.39 deduped │ ├── postcss-value-parser@4.2.0 │ ├── schema-utils@2.7.1 deduped │ └─┬ semver@7.3.7 │ └─┬ lru-cache@6.0.0 │ └── yallist@4.0.0 ├── d3-axis@1.0.12 ├─┬ d3-scale@1.0.7 │ ├── d3-array@1.2.4 │ ├── d3-collection@1.0.7 │ ├── d3-color@1.4.1 │ ├── d3-format@1.4.5 │ ├─┬ d3-interpolate@1.4.0 │ │ └── d3-color@1.4.1 deduped │ ├── d3-time@1.1.0 │ └─┬ d3-time-format@2.3.0 │ └── d3-time@1.1.0 deduped ├── d3-selection@1.3.2 ├─┬ eslint@8.13.0 │ ├─┬ @eslint/eslintrc@1.2.3 │ │ ├── ajv@6.12.6 deduped │ │ ├── debug@4.3.4 deduped │ │ ├── espree@9.3.2 deduped │ │ ├─┬ globals@13.13.0 │ │ │ └── type-fest@0.20.2 deduped │ │ ├── ignore@5.2.0 deduped │ │ ├── import-fresh@3.3.0 deduped │ │ ├─┬ js-yaml@4.1.0 │ │ │ └── argparse@2.0.1 │ │ ├── minimatch@3.1.2 deduped │ │ └── strip-json-comments@3.1.1 deduped │ ├─┬ @humanwhocodes/config-array@0.9.5 │ │ ├── @humanwhocodes/object-schema@1.2.1 │ │ ├── debug@4.3.4 deduped │ │ └── minimatch@3.1.2 deduped │ ├── ajv@6.12.6 deduped │ ├─┬ chalk@4.1.2 │ │ ├─┬ ansi-styles@4.3.0 │ │ │ └─┬ color-convert@2.0.1 │ │ │ └── color-name@1.1.4 │ │ └─┬ supports-color@7.2.0 │ │ └── has-flag@4.0.0 │ ├── cross-spawn@7.0.3 deduped │ ├─┬ debug@4.3.4 │ │ └── ms@2.1.2 │ ├─┬ doctrine@3.0.0 │ │ └── esutils@2.0.3 deduped │ ├── escape-string-regexp@4.0.0 │ ├─┬ eslint-scope@7.1.1 │ │ ├── esrecurse@4.3.0 deduped │ │ └── estraverse@5.3.0 │ ├─┬ eslint-utils@3.0.0 │ │ └── eslint-visitor-keys@2.1.0 deduped │ ├── eslint-visitor-keys@3.3.0 │ ├─┬ espree@9.3.2 │ │ ├── acorn@8.7.1 deduped │ │ ├── acorn-jsx@5.3.2 │ │ └── eslint-visitor-keys@3.3.0 │ ├─┬ esquery@1.4.0 │ │ └── estraverse@5.3.0 │ ├── esutils@2.0.3 │ ├── fast-deep-equal@3.1.3 deduped │ ├─┬ file-entry-cache@6.0.1 │ │ └─┬ flat-cache@3.0.4 │ │ ├── flatted@3.2.5 deduped │ │ └── rimraf@3.0.2 deduped │ ├── functional-red-black-tree@1.0.1 │ ├─┬ glob-parent@6.0.2 │ │ └── is-glob@4.0.3 deduped │ ├─┬ globals@13.13.0 │ │ └── type-fest@0.20.2 │ ├── ignore@5.2.0 │ ├─┬ import-fresh@3.3.0 │ │ ├─┬ parent-module@1.0.1 │ │ │ └── callsites@3.1.0 │ │ └── resolve-from@4.0.0 │ ├── imurmurhash@0.1.4 │ ├─┬ is-glob@4.0.3 │ │ └── is-extglob@2.1.1 │ ├─┬ js-yaml@4.1.0 │ │ └── argparse@2.0.1 │ ├── json-stable-stringify-without-jsonify@1.0.1 │ ├─┬ levn@0.4.1 │ │ ├── prelude-ls@1.2.1 │ │ └─┬ type-check@0.4.0 │ │ └── prelude-ls@1.2.1 deduped │ ├── lodash.merge@4.6.2 │ ├─┬ minimatch@3.1.2 │ │ └── brace-expansion@1.1.11 deduped │ ├── natural-compare@1.4.0 │ ├─┬ optionator@0.9.1 │ │ ├── deep-is@0.1.4 │ │ ├── fast-levenshtein@2.0.6 │ │ ├── levn@0.4.1 deduped │ │ ├── prelude-ls@1.2.1 deduped │ │ ├── type-check@0.4.0 deduped │ │ └── word-wrap@1.2.3 │ ├── regexpp@3.2.0 │ ├─┬ strip-ansi@6.0.1 │ │ └── ansi-regex@5.0.1 │ ├── strip-json-comments@3.1.1 │ ├── text-table@0.2.0 │ └── v8-compile-cache@2.3.0 ├─┬ eslint-plugin-compat@4.0.2 │ ├── @mdn/browser-compat-data@4.1.19 │ ├─┬ ast-metadata-inferer@0.7.0 │ │ └── @mdn/browser-compat-data@3.3.14 │ ├─┬ browserslist@4.20.3 │ │ ├── caniuse-lite@1.0.30001338 deduped │ │ ├── electron-to-chromium@1.4.137 │ │ ├── escalade@3.1.1 │ │ ├── node-releases@2.0.4 │ │ └── picocolors@1.0.0 │ ├── caniuse-lite@1.0.30001338 │ ├── core-js@3.22.4 │ ├─┬ find-up@5.0.0 │ │ ├─┬ locate-path@6.0.0 │ │ │ └─┬ p-locate@5.0.0 │ │ │ └─┬ p-limit@3.1.0 │ │ │ └── yocto-queue@0.1.0 │ │ └── path-exists@4.0.0 │ ├── lodash.memoize@4.1.2 │ └─┬ semver@7.3.5 │ └── lru-cache@6.0.0 deduped ├── eslint-plugin-playwright@0.8.0 ├─┬ eslint-plugin-vue@8.5.0 │ ├── eslint-utils@3.0.0 deduped │ ├── natural-compare@1.4.0 deduped │ ├─┬ semver@7.3.7 │ │ └── lru-cache@6.0.0 deduped │ └── vue-eslint-parser@8.3.0 deduped ├─┬ eslint-plugin-you-dont-need-lodash-underscore@6.12.0 │ └── kebab-case@1.0.1 ├── eventemitter3@1.2.0 ├─┬ exports-loader@0.7.0 │ ├── loader-utils@1.4.0 deduped │ └── source-map@0.5.0 ├─┬ express@4.18.1 │ ├─┬ accepts@1.3.8 │ │ ├── mime-types@2.1.35 deduped │ │ └── negotiator@0.6.3 │ ├── array-flatten@1.1.1 │ ├─┬ body-parser@1.20.0 │ │ ├── bytes@3.1.2 │ │ ├── content-type@1.0.4 deduped │ │ ├─┬ debug@2.6.9 │ │ │ └── ms@2.0.0 │ │ ├── depd@2.0.0 deduped │ │ ├── destroy@1.2.0 │ │ ├── http-errors@2.0.0 deduped │ │ ├─┬ iconv-lite@0.4.24 │ │ │ └── safer-buffer@2.1.2 │ │ ├── on-finished@2.4.1 deduped │ │ ├── qs@6.10.3 deduped │ │ ├─┬ raw-body@2.5.1 │ │ │ ├── bytes@3.1.2 deduped │ │ │ ├── http-errors@2.0.0 deduped │ │ │ ├── iconv-lite@0.4.24 deduped │ │ │ └── unpipe@1.0.0 deduped │ │ ├── type-is@1.6.18 deduped │ │ └── unpipe@1.0.0 │ ├─┬ content-disposition@0.5.4 │ │ └── safe-buffer@5.2.1 deduped │ ├── content-type@1.0.4 │ ├── cookie@0.5.0 │ ├── cookie-signature@1.0.6 │ ├─┬ debug@2.6.9 │ │ └── ms@2.0.0 │ ├── depd@2.0.0 │ ├── encodeurl@1.0.2 │ ├── escape-html@1.0.3 │ ├── etag@1.8.1 │ ├─┬ finalhandler@1.2.0 │ │ ├─┬ debug@2.6.9 │ │ │ └── ms@2.0.0 │ │ ├── encodeurl@1.0.2 deduped │ │ ├── escape-html@1.0.3 deduped │ │ ├── on-finished@2.4.1 deduped │ │ ├── parseurl@1.3.3 deduped │ │ ├── statuses@2.0.1 deduped │ │ └── unpipe@1.0.0 deduped │ ├── fresh@0.5.2 │ ├─┬ http-errors@2.0.0 │ │ ├── depd@2.0.0 deduped │ │ ├── inherits@2.0.4 │ │ ├── setprototypeof@1.2.0 deduped │ │ ├── statuses@2.0.1 deduped │ │ └── toidentifier@1.0.1 │ ├── merge-descriptors@1.0.1 │ ├── methods@1.1.2 │ ├─┬ on-finished@2.4.1 │ │ └── ee-first@1.1.1 │ ├── parseurl@1.3.3 │ ├── path-to-regexp@0.1.7 │ ├─┬ proxy-addr@2.0.7 │ │ ├── forwarded@0.2.0 │ │ └── ipaddr.js@1.9.1 │ ├─┬ qs@6.10.3 │ │ └─┬ side-channel@1.0.4 │ │ ├─┬ call-bind@1.0.2 │ │ │ ├── function-bind@1.1.1 │ │ │ └── get-intrinsic@1.1.1 deduped │ │ ├─┬ get-intrinsic@1.1.1 │ │ │ ├── function-bind@1.1.1 deduped │ │ │ ├── has@1.0.3 deduped │ │ │ └── has-symbols@1.0.3 deduped │ │ └── object-inspect@1.12.0 │ ├── range-parser@1.2.1 │ ├── safe-buffer@5.2.1 │ ├─┬ send@0.18.0 │ │ ├─┬ debug@2.6.9 │ │ │ └── ms@2.0.0 │ │ ├── depd@2.0.0 deduped │ │ ├── destroy@1.2.0 deduped │ │ ├── encodeurl@1.0.2 deduped │ │ ├── escape-html@1.0.3 deduped │ │ ├── etag@1.8.1 deduped │ │ ├── fresh@0.5.2 deduped │ │ ├── http-errors@2.0.0 deduped │ │ ├── mime@1.6.0 │ │ ├── ms@2.1.3 │ │ ├── on-finished@2.4.1 deduped │ │ ├── range-parser@1.2.1 deduped │ │ └── statuses@2.0.1 deduped │ ├─┬ serve-static@1.15.0 │ │ ├── encodeurl@1.0.2 deduped │ │ ├── escape-html@1.0.3 deduped │ │ ├── parseurl@1.3.3 deduped │ │ └── send@0.18.0 deduped │ ├── setprototypeof@1.2.0 │ ├── statuses@2.0.1 │ ├─┬ type-is@1.6.18 │ │ ├── media-typer@0.3.0 │ │ └── mime-types@2.1.35 deduped │ ├── utils-merge@1.0.1 │ └── vary@1.1.2 ├── file-saver@2.0.5 ├─┬ git-rev-sync@3.0.2 │ ├── escape-string-regexp@1.0.5 │ ├── graceful-fs@4.1.15 │ └─┬ shelljs@0.8.5 │ ├── glob@7.2.0 deduped │ ├── interpret@1.4.0 │ └─┬ rechoir@0.6.2 │ └── resolve@1.22.0 deduped ├─┬ html2canvas@1.4.1 │ ├─┬ css-line-break@2.1.0 │ │ └─┬ utrie@1.0.2 │ │ └── base64-arraybuffer@1.0.2 │ └─┬ text-segmentation@1.0.3 │ └── utrie@1.0.2 deduped ├─┬ imports-loader@0.8.0 │ ├── loader-utils@1.4.0 deduped │ └── source-map@0.6.1 ├── jasmine-core@4.0.1 ├─┬ jsdoc@3.5.5 │ ├── babylon@7.0.0-beta.19 │ ├── bluebird@3.5.5 │ ├─┬ catharsis@0.8.11 │ │ └── lodash@4.17.21 deduped │ ├── escape-string-regexp@1.0.5 deduped │ ├─┬ js2xmlparser@3.0.0 │ │ └── xmlcreate@1.0.2 │ ├─┬ klaw@2.0.0 │ │ └── graceful-fs@4.2.10 deduped │ ├── marked@0.3.19 │ ├─┬ mkdirp@0.5.6 │ │ └── minimist@1.2.6 deduped │ ├─┬ requizzle@0.2.3 │ │ └── lodash@4.17.21 deduped │ ├── strip-json-comments@2.0.1 │ ├── taffydb@2.6.2 │ └── underscore@1.8.3 ├─┬ karma@6.3.18 │ ├── @colors/colors@1.5.0 │ ├── body-parser@1.20.0 deduped │ ├─┬ braces@3.0.2 │ │ └─┬ fill-range@7.0.1 │ │ └─┬ to-regex-range@5.0.1 │ │ └── is-number@7.0.0 │ ├─┬ chokidar@3.5.3 │ │ ├─┬ anymatch@3.1.2 │ │ │ ├── normalize-path@3.0.0 deduped │ │ │ └── picomatch@2.3.1 deduped │ │ ├── braces@3.0.2 deduped │ │ ├── fsevents@2.3.2 │ │ ├── glob-parent@5.1.2 deduped │ │ ├─┬ is-binary-path@2.1.0 │ │ │ └── binary-extensions@2.2.0 │ │ ├── is-glob@4.0.3 deduped │ │ ├── normalize-path@3.0.0 deduped │ │ └─┬ readdirp@3.6.0 │ │ └── picomatch@2.3.1 deduped │ ├─┬ connect@3.7.0 │ │ ├─┬ debug@2.6.9 │ │ │ └── ms@2.0.0 │ │ ├─┬ finalhandler@1.1.2 │ │ │ ├── debug@2.6.9 deduped │ │ │ ├── encodeurl@1.0.2 deduped │ │ │ ├── escape-html@1.0.3 deduped │ │ │ ├─┬ on-finished@2.3.0 │ │ │ │ └── ee-first@1.1.1 deduped │ │ │ ├── parseurl@1.3.3 deduped │ │ │ ├── statuses@1.5.0 │ │ │ └── unpipe@1.0.0 deduped │ │ ├── parseurl@1.3.3 deduped │ │ └── utils-merge@1.0.1 deduped │ ├── di@0.0.1 │ ├─┬ dom-serialize@2.2.1 │ │ ├── custom-event@1.0.1 │ │ ├── ent@2.2.0 │ │ ├── extend@3.0.2 deduped │ │ └── void-elements@2.0.1 │ ├─┬ glob@7.2.0 │ │ ├── fs.realpath@1.0.0 │ │ ├─┬ inflight@1.0.6 │ │ │ ├── once@1.4.0 deduped │ │ │ └── wrappy@1.0.2 │ │ ├── inherits@2.0.4 deduped │ │ ├── minimatch@3.1.2 deduped │ │ ├─┬ once@1.4.0 │ │ │ └── wrappy@1.0.2 deduped │ │ └── path-is-absolute@1.0.1 deduped │ ├── graceful-fs@4.2.10 │ ├─┬ http-proxy@1.18.1 │ │ ├── eventemitter3@4.0.7 │ │ ├── follow-redirects@1.15.0 │ │ └── requires-port@1.0.0 │ ├── isbinaryfile@4.0.10 │ ├── lodash@4.17.21 deduped │ ├── log4js@6.4.6 deduped │ ├── mime@2.6.0 │ ├── minimatch@3.1.2 deduped │ ├─┬ mkdirp@0.5.6 │ │ └── minimist@1.2.6 deduped │ ├── qjobs@1.2.0 │ ├── range-parser@1.2.1 deduped │ ├── rimraf@3.0.2 deduped │ ├─┬ socket.io@4.5.0 │ │ ├── accepts@1.3.8 deduped │ │ ├── base64id@2.0.0 │ │ ├── debug@4.3.4 deduped │ │ ├─┬ engine.io@6.2.0 │ │ │ ├── @types/cookie@0.4.1 │ │ │ ├── @types/cors@2.8.12 │ │ │ ├── @types/node@17.0.31 deduped │ │ │ ├── accepts@1.3.8 deduped │ │ │ ├── base64id@2.0.0 deduped │ │ │ ├── cookie@0.4.2 │ │ │ ├─┬ cors@2.8.5 │ │ │ │ ├── object-assign@4.1.1 │ │ │ │ └── vary@1.1.2 deduped │ │ │ ├── debug@4.3.4 deduped │ │ │ ├── engine.io-parser@5.0.4 │ │ │ └── ws@8.2.3 │ │ ├── socket.io-adapter@2.4.0 │ │ └─┬ socket.io-parser@4.0.4 │ │ ├── @types/component-emitter@1.2.11 │ │ ├── component-emitter@1.3.0 │ │ └── debug@4.3.4 deduped │ ├── source-map@0.6.1 │ ├─┬ tmp@0.2.1 │ │ └── rimraf@3.0.2 deduped │ ├── ua-parser-js@0.7.31 │ └─┬ yargs@16.2.0 │ ├─┬ cliui@7.0.4 │ │ ├── string-width@4.2.3 deduped │ │ ├── strip-ansi@6.0.1 deduped │ │ └─┬ wrap-ansi@7.0.0 │ │ ├─┬ ansi-styles@4.3.0 │ │ │ └─┬ color-convert@2.0.1 │ │ │ └── color-name@1.1.4 │ │ ├── string-width@4.2.3 deduped │ │ └── strip-ansi@6.0.1 deduped │ ├── escalade@3.1.1 deduped │ ├── get-caller-file@2.0.5 │ ├── require-directory@2.1.1 │ ├─┬ string-width@4.2.3 │ │ ├── emoji-regex@8.0.0 │ │ ├── is-fullwidth-code-point@3.0.0 │ │ └── strip-ansi@6.0.1 deduped │ ├── y18n@5.0.8 │ └── yargs-parser@20.2.9 ├─┬ karma-chrome-launcher@3.1.1 │ └─┬ which@1.3.1 │ └── isexe@2.0.0 ├─┬ karma-cli@2.0.0 │ └─┬ resolve@1.22.0 │ ├─┬ is-core-module@2.9.0 │ │ └─┬ has@1.0.3 │ │ └── function-bind@1.1.1 deduped │ ├── path-parse@1.0.7 │ └── supports-preserve-symlinks-flag@1.0.0 ├─┬ karma-coverage@2.1.1 │ ├── istanbul-lib-coverage@3.2.0 │ ├─┬ istanbul-lib-instrument@4.0.3 │ │ ├── @babel/core@7.16.12 deduped │ │ ├── @istanbuljs/schema@0.1.3 deduped │ │ ├── istanbul-lib-coverage@3.2.0 deduped │ │ └── semver@6.3.0 deduped │ ├─┬ istanbul-lib-report@3.0.0 │ │ ├── istanbul-lib-coverage@3.2.0 deduped │ │ ├── make-dir@3.1.0 deduped │ │ └─┬ supports-color@7.2.0 │ │ └── has-flag@4.0.0 │ ├─┬ istanbul-lib-source-maps@4.0.1 │ │ ├── debug@4.3.4 deduped │ │ ├── istanbul-lib-coverage@3.2.0 deduped │ │ └── source-map@0.6.1 │ ├─┬ istanbul-reports@3.1.4 │ │ ├── html-escaper@2.0.2 │ │ └── istanbul-lib-report@3.0.0 deduped │ └── minimatch@3.1.2 deduped ├─┬ karma-coverage-istanbul-reporter@3.0.3 │ ├── istanbul-lib-coverage@3.2.0 deduped │ ├── istanbul-lib-report@3.0.0 deduped │ ├─┬ istanbul-lib-source-maps@3.0.6 │ │ ├── debug@4.3.4 deduped │ │ ├── istanbul-lib-coverage@2.0.5 │ │ ├─┬ make-dir@2.1.0 │ │ │ ├── pify@4.0.1 │ │ │ └── semver@5.7.1 │ │ ├─┬ rimraf@2.7.1 │ │ │ └── glob@7.2.0 deduped │ │ └── source-map@0.6.1 │ ├── istanbul-reports@3.1.4 deduped │ └── minimatch@3.1.2 deduped ├─┬ karma-firefox-launcher@2.1.2 │ ├─┬ is-wsl@2.2.0 │ │ └── is-docker@2.2.1 deduped │ └─┬ which@2.0.2 │ └── isexe@2.0.0 deduped ├─┬ karma-jasmine@4.0.1 │ └── jasmine-core@3.99.1 ├─┬ karma-junit-reporter@2.0.1 │ ├── path-is-absolute@1.0.1 │ └── xmlbuilder@12.0.0 ├─┬ karma-sourcemap-loader@0.3.8 │ └── graceful-fs@4.2.10 deduped ├─┬ karma-spec-reporter@0.0.34 │ └── colors@1.4.0 deduped ├─┬ karma-webpack@5.0.0 │ ├── glob@7.2.0 deduped │ ├── minimatch@3.1.2 deduped │ └─┬ webpack-merge@4.2.2 │ └── lodash@4.17.21 deduped ├─┬ lighthouse@9.5.0 │ ├─┬ @sentry/node@6.19.7 │ │ ├─┬ @sentry/core@6.19.7 │ │ │ ├── @sentry/hub@6.19.7 deduped │ │ │ ├─┬ @sentry/minimal@6.19.7 │ │ │ │ ├── @sentry/hub@6.19.7 deduped │ │ │ │ ├── @sentry/types@6.19.7 deduped │ │ │ │ └── tslib@1.14.1 deduped │ │ │ ├── @sentry/types@6.19.7 deduped │ │ │ ├── @sentry/utils@6.19.7 deduped │ │ │ └── tslib@1.14.1 deduped │ │ ├─┬ @sentry/hub@6.19.7 │ │ │ ├── @sentry/types@6.19.7 deduped │ │ │ ├── @sentry/utils@6.19.7 deduped │ │ │ └── tslib@1.14.1 deduped │ │ ├── @sentry/types@6.19.7 │ │ ├─┬ @sentry/utils@6.19.7 │ │ │ ├── @sentry/types@6.19.7 deduped │ │ │ └── tslib@1.14.1 deduped │ │ ├── cookie@0.4.2 │ │ ├── https-proxy-agent@5.0.0 deduped │ │ ├── lru_map@0.3.3 │ │ └── tslib@1.14.1 │ ├── axe-core@4.3.5 │ ├─┬ chrome-launcher@0.15.0 │ │ ├── @types/node@17.0.31 deduped │ │ ├── escape-string-regexp@4.0.0 │ │ ├── is-wsl@2.2.0 deduped │ │ └── lighthouse-logger@1.3.0 deduped │ ├─┬ configstore@5.0.1 │ │ ├─┬ dot-prop@5.3.0 │ │ │ └── is-obj@2.0.0 │ │ ├── graceful-fs@4.2.10 deduped │ │ ├── make-dir@3.1.0 deduped │ │ ├─┬ unique-string@2.0.0 │ │ │ └── crypto-random-string@2.0.0 │ │ ├─┬ write-file-atomic@3.0.3 │ │ │ ├── imurmurhash@0.1.4 deduped │ │ │ ├── is-typedarray@1.0.0 deduped │ │ │ ├── signal-exit@3.0.7 deduped │ │ │ └─┬ typedarray-to-buffer@3.1.5 │ │ │ └── is-typedarray@1.0.0 deduped │ │ └── xdg-basedir@4.0.0 │ ├── csp_evaluator@1.1.0 │ ├─┬ cssstyle@1.2.1 │ │ └── cssom@0.3.8 │ ├─┬ enquirer@2.3.6 │ │ └── ansi-colors@4.1.1 │ ├── http-link-header@0.8.0 │ ├─┬ intl-messageformat@4.4.0 │ │ └── intl-messageformat-parser@1.8.1 │ ├── jpeg-js@0.4.3 deduped │ ├── js-library-detector@6.5.0 │ ├─┬ lighthouse-logger@1.3.0 │ │ ├─┬ debug@2.6.9 │ │ │ └── ms@2.0.0 │ │ └── marky@1.2.4 │ ├── lighthouse-stack-packs@1.8.1 │ ├── lodash@4.17.21 deduped │ ├── lookup-closest-locale@6.2.0 │ ├── metaviewport-parser@0.2.0 │ ├── open@8.4.0 deduped │ ├── parse-cache-control@1.0.1 │ ├── ps-list@8.1.0 │ ├── robots-parser@3.0.0 │ ├── semver@5.7.1 │ ├─┬ speedline-core@1.4.3 │ │ ├── @types/node@17.0.31 deduped │ │ ├── image-ssim@0.2.0 │ │ └── jpeg-js@0.4.3 deduped │ ├── third-party-web@0.12.7 │ ├── ws@7.5.7 │ ├─┬ yargs@17.4.1 │ │ ├── cliui@7.0.4 deduped │ │ ├── escalade@3.1.1 deduped │ │ ├── get-caller-file@2.0.5 deduped │ │ ├── require-directory@2.1.1 deduped │ │ ├── string-width@4.2.3 deduped │ │ ├── y18n@5.0.8 deduped │ │ └── yargs-parser@21.0.1 deduped │ └── yargs-parser@21.0.1 ├── location-bar@3.0.1 ├── lodash@4.17.21 ├─┬ mini-css-extract-plugin@2.6.0 │ └─┬ schema-utils@4.0.0 │ ├── @types/json-schema@7.0.11 deduped │ ├─┬ ajv@8.11.0 │ │ ├── fast-deep-equal@3.1.3 deduped │ │ ├── json-schema-traverse@1.0.0 deduped │ │ ├── require-from-string@2.0.2 deduped │ │ └── uri-js@4.4.1 deduped │ ├── ajv-formats@2.1.1 deduped │ └─┬ ajv-keywords@5.1.0 │ └── fast-deep-equal@3.1.3 deduped ├── moment@2.29.1 ├── moment-duration-format@2.3.2 ├─┬ moment-timezone@0.5.34 │ └── moment@2.29.1 deduped ├─┬ node-bourbon@4.2.3 │ └── bourbon@4.2.3 ├─┬ painterro@1.2.56 │ └── core-js@3.22.4 deduped ├─┬ playwright@1.21.1 │ └─┬ playwright-core@1.21.1 │ ├── colors@1.4.0 deduped │ ├── commander@8.3.0 deduped │ ├─┬ debug@4.3.3 │ │ └── ms@2.1.2 deduped │ ├── extract-zip@2.0.1 deduped │ ├── https-proxy-agent@5.0.0 deduped │ ├── jpeg-js@0.4.3 deduped │ ├── mime@3.0.0 deduped │ ├── pixelmatch@5.2.1 deduped │ ├── pngjs@6.0.0 deduped │ ├── progress@2.0.3 deduped │ ├── proper-lockfile@4.1.2 deduped │ ├── proxy-from-env@1.1.0 deduped │ ├── rimraf@3.0.2 deduped │ ├── socks-proxy-agent@6.1.1 deduped │ ├── stack-utils@2.0.5 deduped │ ├── ws@8.4.2 │ ├── yauzl@2.10.0 deduped │ └── yazl@2.5.1 deduped ├── plotly.js-basic-dist@2.5.0 ├── plotly.js-gl2d-dist@2.5.0 ├── printj@1.3.1 ├─┬ request@2.88.2 │ ├── aws-sign2@0.7.0 │ ├── aws4@1.11.0 │ ├── caseless@0.12.0 │ ├─┬ combined-stream@1.0.8 │ │ └── delayed-stream@1.0.0 │ ├── extend@3.0.2 │ ├── forever-agent@0.6.1 │ ├─┬ form-data@2.3.3 │ │ ├── asynckit@0.4.0 │ │ ├── combined-stream@1.0.8 deduped │ │ └── mime-types@2.1.35 deduped │ ├─┬ har-validator@5.1.5 │ │ ├── ajv@6.12.6 deduped │ │ └── har-schema@2.0.0 │ ├─┬ http-signature@1.2.0 │ │ ├── assert-plus@1.0.0 │ │ ├─┬ jsprim@1.4.2 │ │ │ ├── assert-plus@1.0.0 deduped │ │ │ ├── extsprintf@1.3.0 │ │ │ ├── json-schema@0.4.0 │ │ │ └─┬ verror@1.10.0 │ │ │ ├── assert-plus@1.0.0 deduped │ │ │ ├── core-util-is@1.0.2 │ │ │ └── extsprintf@1.3.0 deduped │ │ └─┬ sshpk@1.17.0 │ │ ├─┬ asn1@0.2.6 │ │ │ └── safer-buffer@2.1.2 deduped │ │ ├── assert-plus@1.0.0 deduped │ │ ├─┬ bcrypt-pbkdf@1.0.2 │ │ │ └── tweetnacl@0.14.5 deduped │ │ ├─┬ dashdash@1.14.1 │ │ │ └── assert-plus@1.0.0 deduped │ │ ├─┬ ecc-jsbn@0.1.2 │ │ │ ├── jsbn@0.1.1 deduped │ │ │ └── safer-buffer@2.1.2 deduped │ │ ├─┬ getpass@0.1.7 │ │ │ └── assert-plus@1.0.0 deduped │ │ ├── jsbn@0.1.1 │ │ ├── safer-buffer@2.1.2 deduped │ │ └── tweetnacl@0.14.5 │ ├── is-typedarray@1.0.0 │ ├── isstream@0.1.2 │ ├── json-stringify-safe@5.0.1 │ ├─┬ mime-types@2.1.35 │ │ └── mime-db@1.52.0 │ ├── oauth-sign@0.9.0 │ ├── performance-now@2.1.0 │ ├── qs@6.5.3 │ ├── safe-buffer@5.2.1 deduped │ ├─┬ tough-cookie@2.5.0 │ │ ├── psl@1.8.0 │ │ └── punycode@2.1.1 deduped │ ├─┬ tunnel-agent@0.6.0 │ │ └── safe-buffer@5.2.1 deduped │ └── uuid@3.3.3 deduped ├─┬ resolve-url-loader@5.0.0 │ ├─┬ adjust-sourcemap-loader@4.0.0 │ │ ├─┬ loader-utils@2.0.2 │ │ │ ├── big.js@5.2.2 deduped │ │ │ ├── emojis-list@3.0.0 deduped │ │ │ └── json5@2.2.0 deduped │ │ └── regex-parser@2.2.11 │ ├─┬ convert-source-map@1.8.0 │ │ └── safe-buffer@5.1.2 │ ├─┬ loader-utils@2.0.2 │ │ ├── big.js@5.2.2 deduped │ │ ├── emojis-list@3.0.0 deduped │ │ └── json5@2.2.0 deduped │ ├─┬ postcss@8.4.13 │ │ ├── nanoid@3.3.4 │ │ ├── picocolors@1.0.0 deduped │ │ └── source-map-js@1.0.2 deduped │ └── source-map@0.6.1 ├─┬ sass@1.49.9 │ ├── chokidar@3.5.3 deduped │ ├── immutable@4.0.0 │ └── source-map-js@1.0.2 ├─┬ sass-loader@12.6.0 │ ├── klona@2.0.5 │ └── neo-async@2.6.2 ├─┬ sinon@13.0.1 │ ├─┬ @sinonjs/commons@1.8.3 │ │ └── type-detect@4.0.8 │ ├─┬ @sinonjs/fake-timers@9.1.2 │ │ └── @sinonjs/commons@1.8.3 deduped │ ├─┬ @sinonjs/samsam@6.1.1 │ │ ├── @sinonjs/commons@1.8.3 deduped │ │ ├── lodash.get@4.4.2 │ │ └── type-detect@4.0.8 deduped │ ├── diff@5.0.0 │ ├─┬ nise@5.1.1 │ │ ├── @sinonjs/commons@1.8.3 deduped │ │ ├── @sinonjs/fake-timers@9.1.2 deduped │ │ ├── @sinonjs/text-encoding@0.7.1 │ │ ├── just-extend@4.2.1 │ │ └─┬ path-to-regexp@1.8.0 │ │ └── isarray@0.0.1 │ └─┬ supports-color@7.2.0 │ └── has-flag@4.0.0 ├─┬ style-loader@1.3.0 │ ├─┬ loader-utils@2.0.2 │ │ ├── big.js@5.2.2 deduped │ │ ├── emojis-list@3.0.0 deduped │ │ └── json5@2.2.0 deduped │ └── schema-utils@2.7.1 deduped ├── uuid@3.3.3 ├── vue@2.6.14 ├─┬ vue-eslint-parser@8.3.0 │ ├── debug@4.3.4 deduped │ ├─┬ eslint-scope@7.1.1 │ │ ├── esrecurse@4.3.0 deduped │ │ └── estraverse@5.3.0 │ ├── eslint-visitor-keys@3.3.0 │ ├── espree@9.3.2 deduped │ ├── esquery@1.4.0 deduped │ ├── lodash@4.17.21 deduped │ └─┬ semver@7.3.7 │ └── lru-cache@6.0.0 deduped ├─┬ vue-loader@15.9.8 │ ├─┬ @vue/component-compiler-utils@3.3.0 │ │ ├─┬ consolidate@0.15.1 │ │ │ └── bluebird@3.5.5 deduped │ │ ├── hash-sum@1.0.2 deduped │ │ ├─┬ lru-cache@4.1.5 │ │ │ ├── pseudomap@1.0.2 │ │ │ └── yallist@2.1.2 │ │ ├─┬ merge-source-map@1.1.0 │ │ │ └── source-map@0.6.1 │ │ ├── postcss@7.0.39 deduped │ │ ├── postcss-selector-parser@6.0.10 deduped │ │ ├── prettier@2.6.2 │ │ ├── source-map@0.6.1 │ │ └── vue-template-es2015-compiler@1.9.1 │ ├── hash-sum@1.0.2 │ ├── loader-utils@1.4.0 deduped │ ├── vue-hot-reload-api@2.3.4 │ └─┬ vue-style-loader@4.1.3 │ ├── hash-sum@1.0.2 deduped │ └── loader-utils@1.4.0 deduped ├─┬ vue-template-compiler@2.6.14 │ ├── de-indent@1.0.2 │ └── he@1.2.0 ├─┬ webpack@5.68.0 │ ├─┬ @types/eslint-scope@3.7.3 │ │ ├─┬ @types/eslint@8.4.2 │ │ │ ├── @types/estree@0.0.50 deduped │ │ │ └── @types/json-schema@7.0.11 deduped │ │ └── @types/estree@0.0.50 deduped │ ├── @types/estree@0.0.50 │ ├─┬ @webassemblyjs/ast@1.11.1 │ │ ├─┬ @webassemblyjs/helper-numbers@1.11.1 │ │ │ ├── @webassemblyjs/floating-point-hex-parser@1.11.1 │ │ │ ├── @webassemblyjs/helper-api-error@1.11.1 deduped │ │ │ └── @xtuc/long@4.2.2 │ │ └── @webassemblyjs/helper-wasm-bytecode@1.11.1 │ ├─┬ @webassemblyjs/wasm-edit@1.11.1 │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ ├── @webassemblyjs/helper-buffer@1.11.1 │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.11.1 deduped │ │ ├─┬ @webassemblyjs/helper-wasm-section@1.11.1 │ │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ │ ├── @webassemblyjs/helper-buffer@1.11.1 deduped │ │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.11.1 deduped │ │ │ └── @webassemblyjs/wasm-gen@1.11.1 deduped │ │ ├─┬ @webassemblyjs/wasm-gen@1.11.1 │ │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.11.1 deduped │ │ │ ├── @webassemblyjs/ieee754@1.11.1 deduped │ │ │ ├── @webassemblyjs/leb128@1.11.1 deduped │ │ │ └── @webassemblyjs/utf8@1.11.1 deduped │ │ ├─┬ @webassemblyjs/wasm-opt@1.11.1 │ │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ │ ├── @webassemblyjs/helper-buffer@1.11.1 deduped │ │ │ ├── @webassemblyjs/wasm-gen@1.11.1 deduped │ │ │ └── @webassemblyjs/wasm-parser@1.11.1 deduped │ │ ├── @webassemblyjs/wasm-parser@1.11.1 deduped │ │ └─┬ @webassemblyjs/wast-printer@1.11.1 │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ └── @xtuc/long@4.2.2 deduped │ ├─┬ @webassemblyjs/wasm-parser@1.11.1 │ │ ├── @webassemblyjs/ast@1.11.1 deduped │ │ ├── @webassemblyjs/helper-api-error@1.11.1 │ │ ├── @webassemblyjs/helper-wasm-bytecode@1.11.1 deduped │ │ ├─┬ @webassemblyjs/ieee754@1.11.1 │ │ │ └── @xtuc/ieee754@1.2.0 │ │ ├─┬ @webassemblyjs/leb128@1.11.1 │ │ │ └── @xtuc/long@4.2.2 deduped │ │ └── @webassemblyjs/utf8@1.11.1 │ ├── acorn@8.7.1 │ ├── acorn-import-assertions@1.8.0 │ ├── browserslist@4.20.3 deduped │ ├── chrome-trace-event@1.0.3 │ ├─┬ enhanced-resolve@5.9.3 │ │ ├── graceful-fs@4.2.10 deduped │ │ └── tapable@2.2.1 deduped │ ├── es-module-lexer@0.9.3 │ ├── eslint-scope@5.1.1 deduped │ ├── events@3.3.0 │ ├── glob-to-regexp@0.4.1 │ ├── graceful-fs@4.2.10 deduped │ ├── json-parse-better-errors@1.0.2 │ ├── loader-runner@4.3.0 │ ├── mime-types@2.1.35 deduped │ ├── neo-async@2.6.2 deduped │ ├─┬ schema-utils@3.1.1 │ │ ├── @types/json-schema@7.0.11 deduped │ │ ├── ajv@6.12.6 deduped │ │ └── ajv-keywords@3.5.2 deduped │ ├── tapable@2.2.1 │ ├─┬ terser-webpack-plugin@5.3.1 │ │ ├─┬ jest-worker@27.5.1 │ │ │ ├── @types/node@17.0.31 deduped │ │ │ ├── merge-stream@2.0.0 deduped │ │ │ └─┬ supports-color@8.1.1 │ │ │ └── has-flag@4.0.0 │ │ ├─┬ schema-utils@3.1.1 │ │ │ ├── @types/json-schema@7.0.11 deduped │ │ │ ├── ajv@6.12.6 deduped │ │ │ └── ajv-keywords@3.5.2 deduped │ │ ├── serialize-javascript@6.0.0 deduped │ │ ├── source-map@0.6.1 │ │ └─┬ terser@5.13.1 │ │ ├── acorn@8.7.1 deduped │ │ ├── commander@2.20.3 │ │ ├─┬ source-map@0.8.0-beta.0 │ │ │ └─┬ whatwg-url@7.1.0 │ │ │ ├── lodash.sortby@4.7.0 │ │ │ ├─┬ tr46@1.0.1 │ │ │ │ └── punycode@2.1.1 deduped │ │ │ └── webidl-conversions@4.0.2 │ │ └─┬ source-map-support@0.5.21 │ │ ├── buffer-from@1.1.2 │ │ └── source-map@0.6.1 │ ├─┬ watchpack@2.3.1 │ │ ├── glob-to-regexp@0.4.1 deduped │ │ └── graceful-fs@4.2.10 deduped │ └── webpack-sources@3.2.3 ├─┬ webpack-cli@4.9.2 │ ├── @discoveryjs/json-ext@0.5.7 │ ├── @webpack-cli/configtest@1.1.1 │ ├─┬ @webpack-cli/info@1.4.1 │ │ └── envinfo@7.8.1 │ ├── @webpack-cli/serve@1.6.1 │ ├── colorette@2.0.16 │ ├── commander@7.2.0 │ ├─┬ execa@5.1.1 │ │ ├── cross-spawn@7.0.3 deduped │ │ ├── get-stream@6.0.1 │ │ ├── human-signals@2.1.0 │ │ ├── is-stream@2.0.1 │ │ ├── merge-stream@2.0.0 │ │ ├─┬ npm-run-path@4.0.1 │ │ │ └── path-key@3.1.1 deduped │ │ ├─┬ onetime@5.1.2 │ │ │ └── mimic-fn@2.1.0 │ │ ├── signal-exit@3.0.7 │ │ └── strip-final-newline@2.0.0 │ ├── fastest-levenshtein@1.0.12 │ ├─┬ import-local@3.1.0 │ │ ├── pkg-dir@4.2.0 deduped │ │ └─┬ resolve-cwd@3.0.0 │ │ └── resolve-from@5.0.0 │ ├── interpret@2.2.0 │ ├─┬ rechoir@0.7.1 │ │ └── resolve@1.22.0 deduped │ └── webpack-merge@5.8.0 deduped ├─┬ webpack-dev-middleware@5.3.1 │ ├── colorette@2.0.16 deduped │ ├─┬ memfs@3.4.1 │ │ └── fs-monkey@1.0.3 │ ├── mime-types@2.1.35 deduped │ ├── range-parser@1.2.1 deduped │ └─┬ schema-utils@4.0.0 │ ├── @types/json-schema@7.0.11 deduped │ ├─┬ ajv@8.11.0 │ │ ├── fast-deep-equal@3.1.3 deduped │ │ ├── json-schema-traverse@1.0.0 deduped │ │ ├── require-from-string@2.0.2 deduped │ │ └── uri-js@4.4.1 deduped │ ├── ajv-formats@2.1.1 deduped │ └─┬ ajv-keywords@5.1.0 │ └── fast-deep-equal@3.1.3 deduped ├─┬ webpack-hot-middleware@2.25.1 │ ├── ansi-html-community@0.0.8 │ ├── html-entities@2.3.3 │ ├── querystring@0.2.1 │ └── strip-ansi@6.0.1 deduped ├─┬ webpack-merge@5.8.0 │ ├─┬ clone-deep@4.0.1 │ │ ├─┬ is-plain-object@2.0.4 │ │ │ └── isobject@3.0.1 │ │ ├── kind-of@6.0.3 │ │ └─┬ shallow-clone@3.0.1 │ │ └── kind-of@6.0.3 deduped │ └── wildcard@2.0.0 └── zepto@1.2.0 ```

npm test

Open MCT Layout: the pane: ✓ is displayed on layout load (13ms) ✓ is collapsed on layout load if specified by a hide param (10ms) ✓ on toggle collapses if expanded (6ms) ✓ on toggle expands if collapsed (6ms)

Application router utility functions ✓ has initial hash when loaded (101ms) ✓ The setSearchParam function sets an individual search parameter in the window location hash (83ms) ✓ The deleteSearchParam function deletes an individual search paramater in the window location hash (89ms) ✓ The setSearchParam function sets a multiple individual search parameters in the window location hash (126ms) ✓ The setAllSearchParams function replaces all search paramaters in the window location hash (127ms) ✓ The doPathChange function triggers aborting all requests when doing a path change (176ms)

The Agent ✓ recognizes desktop devices as non-mobile (1ms) ✓ detects iPhones (0ms) ✓ detects iPads (1ms) ✓ detects display orientation (0ms) ✓ detects touch support (0ms) ✓ allows for checking browser type (0ms)

Chrome Headless 101.0.4951.54 (Mac OS 10.15.7): Executed 784 of 848 (skipped 64) SUCCESS (26.69 secs / 25.368 secs) TOTAL: 784 SUCCESS

TOTAL: 784 SUCCESS

=============================== Coverage summary ===============================

Statements : 52.1% ( 10274/19719 ) Branches : 39.72% ( 3325/8369 ) Functions : 51.27% ( 3046/5940 ) Lines : 52.2% ( 10172/19483 )

=============================================================================