diff --git a/.changeset/big-rings-heal.md b/.changeset/big-rings-heal.md new file mode 100644 index 0000000000..59823eea6c --- /dev/null +++ b/.changeset/big-rings-heal.md @@ -0,0 +1,7 @@ +--- +'providence-analytics': minor +--- + +- Added `optimised-glob` util: a drop-in replacement for globby. It's faster, smaller and has zero dependencies +- Added `fs-adapter` util, allowing to provide a virtual fs instead of the default +- BREAKING: Cleanup of code and dependencies, removing deprecated cli commands diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.github/workflows/verify-pr.yml b/.github/workflows/verify-pr.yml new file mode 100644 index 0000000000..b57a9f0898 --- /dev/null +++ b/.github/workflows/verify-pr.yml @@ -0,0 +1,73 @@ +name: Verify changes + +on: pull_request + +jobs: + verify: + name: Verify changes + runs-on: ubuntu-latest + steps: + - uses: google/wireit@setup-github-actions-caching/v1 + - uses: actions/checkout@v4 + + - name: Sanity check + run: node ./scripts/lock-scan.mjs + + - name: Setup Node 18.x + uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: npm + + - name: Install Dependencies + run: npm install --ci + + - name: Lint + run: npm run lint + + # - name: Bundlesize + # run: npm run bundlesize + + browser-tests: + name: Browser tests + runs-on: ubuntu-latest + steps: + - uses: google/wireit@setup-github-actions-caching/v1 + - uses: actions/checkout@v4 + + - name: Setup Node 18.x + uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: npm + + - name: Install Dependencies + run: npm install --ci + + - uses: microsoft/playwright-github-action@v1 + + - name: Test + run: npm run test:browser + + node-tests: + name: Node tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + node-version: [16.x, 18.x] + os: [ubuntu-latest, windows-latest] + steps: + - uses: google/wireit@setup-github-actions-caching/v1 + - uses: actions/checkout@v4 + + - name: Setup Node ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: npm + + - name: Install Dependencies + run: npm install --ci --force + + - name: Test + run: npm run test:node diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml deleted file mode 100644 index 94bfa380bf..0000000000 --- a/.github/workflows/verify.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: Verify changes - -on: pull_request - -jobs: - verify: - name: Verify changes - runs-on: ubuntu-latest - steps: - - uses: google/wireit@setup-github-actions-caching/v1 - - uses: actions/checkout@v2 - - - name: Sanity check - run: node ./scripts/lock-scan.js - - - name: Setup Node 16.x - uses: actions/setup-node@v1 - with: - node-version: 16.x - - - name: Install Dependencies - run: npm install --ci - - - name: Lint - run: npm run lint - - - name: Bundlesize - run: npm run bundlesize - - browser-tests: - name: Browser tests - runs-on: ubuntu-latest - steps: - - uses: google/wireit@setup-github-actions-caching/v1 - - uses: actions/checkout@v2 - - - name: Setup Node 16.x - uses: actions/setup-node@v1 - with: - node-version: 16.x - - - name: Install Dependencies - run: npm install --ci - - - uses: microsoft/playwright-github-action@v1 - - - name: Test - run: npm run test:browser - - node-tests: - name: Node tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - node-version: [16.x] - os: [ubuntu-latest] - steps: - - uses: google/wireit@setup-github-actions-caching/v1 - - uses: actions/checkout@v2 - - - name: Setup Node ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Install Dependencies - run: npm install --ci - - - name: Test - run: npm run test:node - - # Note this is a duplicate of the matrix (so we have 2 1x1 matrices). Up for improvement... - node-tests-windows: - name: Node tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - node-version: [16.x] - os: [windows-latest] - steps: - - uses: google/wireit@setup-github-actions-caching/v1 - - uses: actions/checkout@v2 - - - name: Setup Node ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Install Dependencies - run: npm install --ci - - - name: Test - run: npm run test:node diff --git a/.lintstagedrc.js b/.lintstagedrc.js index 8cc602a3d0..23f4651171 100644 --- a/.lintstagedrc.js +++ b/.lintstagedrc.js @@ -4,7 +4,6 @@ module.exports = { '*.md': [ 'prettier --write', "markdownlint --ignore '{.github/**/*.md,.changeset/*.md,**/CHANGELOG.md,packages/ui/_legacy-changelogs/*.md}'", - 'git add', ], 'package-lock.json': ['node ./scripts/lock-scan.js'], '*package.json': absolutePaths => { diff --git a/docs/components/combobox/src/md-combobox/style/md-ripple.js b/docs/components/combobox/src/md-combobox/style/md-ripple.js index ea98f6ef08..0e6ff34d07 100644 --- a/docs/components/combobox/src/md-combobox/style/md-ripple.js +++ b/docs/components/combobox/src/md-combobox/style/md-ripple.js @@ -59,6 +59,7 @@ class MdRipple extends LitElement { } disconnectedCallback() { + super.disconnectedCallback(); this.removeEventListener('mousedown', this.__onRipple); } diff --git a/docs/fundamentals/systems/form/validate.md b/docs/fundamentals/systems/form/validate.md index 443da55e92..14ddef53c9 100644 --- a/docs/fundamentals/systems/form/validate.md +++ b/docs/fundamentals/systems/form/validate.md @@ -612,7 +612,7 @@ However, the validation system also supports three non blocking validation feedb - **error**: blocking the field from being submitted to the server. For example: "Please enter an amount higher than 1000,00 euro." - **warning**: something looks wrong, but it is not blocking. For example an optional email input: - "Please enter a valid e-mail address in the format "name@example.com"." + "Please enter a valid e-mail address in the format `name@example.com`." - **info**: shows extra information. For example a message of a scheduled payment planner: "Ends on 15/05/2020 after 5 payments." - **success**: will only be triggered if there was a Message from one of the above validation types and is now correct. For example: "Ok, correct." diff --git a/docs/fundamentals/systems/overlays/_configuration-positioning.md b/docs/fundamentals/systems/overlays/_configuration-positioning.md index b850ac9c22..4125d9a751 100644 --- a/docs/fundamentals/systems/overlays/_configuration-positioning.md +++ b/docs/fundamentals/systems/overlays/_configuration-positioning.md @@ -99,15 +99,6 @@ export const placementGlobal = () => { ## popperConfig -/** Viewport configuration. Will be used when placementMode is 'global' \*/ -viewportConfig?: ViewportConfig; -/** Hides other overlays when multiple are opened (currently exclusive to globalOverlayController) _/ -isBlocking?: boolean; -/\*\* Will align contentNode with referenceNode (invokerNode by default) for local overlays. Usually needed for dropdowns. 'max' will prevent contentNode from exceeding width of referenceNode, 'min' guarantees that contentNode will be at least as wide as referenceNode. 'full' will make sure that the invoker width always is the same. _/ -inheritsReferenceWidth?: 'max' | 'full' | 'min' | 'none'; -/\*_ Change the default of 9999 _/ -zIndex?: number; - | Prop | Description | Type | | | | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | --- | --- | --- | | placementMode | Determines the positioning anchor (viewport vs invokerNode/referenceNode) | 'global'\|'local' | | | | diff --git a/package-lock.json b/package-lock.json index fa9bf37b99..a4516d50c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@lion/root", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -12,71 +12,57 @@ "packages-node/*" ], "devDependencies": { - "@babel/core": "^7.21.3", + "@babel/core": "^7.24.5", "@bundled-es-modules/fetch-mock": "^6.5.2", - "@changesets/cli": "^2.26.1", - "@custom-elements-manifest/analyzer": "^0.8.0", - "@open-wc/building-rollup": "^1.10.0", - "@open-wc/eslint-config": "^10.0.0", + "@changesets/cli": "^2.27.1", + "@custom-elements-manifest/analyzer": "^0.10.2", + "@open-wc/building-rollup": "^2.2.3", + "@open-wc/eslint-config": "^12.0.3", "@open-wc/scoped-elements": "^3.0.5", - "@open-wc/testing": "^3.1.7", - "@open-wc/testing-helpers": "^2.2.0", - "@rocket/blog": "^0.4.0", + "@open-wc/testing": "^4.0.0", + "@open-wc/testing-helpers": "^3.0.1", + "@rocket/blog": "0.4.0", "@rocket/cli": "^0.10.2", "@rocket/launch": "^0.6.0", "@rocket/search": "^0.5.1", "@types/autosize": "^4.0.3", - "@types/chai-as-promised": "^7.1.5", - "@types/chai-dom": "^0.0.8", - "@types/convert-source-map": "^1.5.2", - "@types/fs-extra": "^9.0.13", - "@types/glob": "^7.1.3", - "@types/istanbul-reports": "^3.0.1", - "@types/mocha": "^10.0.1", - "@types/prettier": "^2.7.2", - "@web/dev-server": "^0.4.2", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/fs-extra": "^11.0.4", + "@types/glob": "^8.1.0", + "@types/mocha": "^10.0.6", + "@types/prettier": "^2.7.3", "@web/dev-server-legacy": "^0.1.7", - "@web/test-runner": "^0.15.2", - "@web/test-runner-browserstack": "^0.5.1", - "@web/test-runner-commands": "^0.6.5", - "@web/test-runner-playwright": "^0.9.0", - "@webcomponents/scoped-custom-element-registry": "^0.0.8", - "@yarnpkg/lockfile": "^1.1.0", - "babel-polyfill": "^6.26.0", + "@web/test-runner": "^0.18.1", + "@web/test-runner-browserstack": "^0.7.1", + "@web/test-runner-commands": "^0.9.0", + "@web/test-runner-playwright": "^0.11.0", + "@webcomponents/scoped-custom-element-registry": "^0.0.9", "bundlesize": "^1.0.0-beta.2", - "cem-plugin-vs-code-custom-data-generator": "^1.4.1", - "chai": "^4.2.0", + "cem-plugin-vs-code-custom-data-generator": "^1.4.2", + "chai": "^4.4.1", "chai-as-promised": "^7.1.1", - "changeset": "^0.2.6", - "cross-env": "^7.0.2", - "es6-promisify": "^6.1.1", + "cross-env": "^7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-lit": "^1.11.0", - "eslint-plugin-lit-a11y": "^4.1.2", "eslint-plugin-wc": "^2.1.0", - "globby": "^13.1.3", - "husky": "^6.0.0", - "lint-staged": "^10.5.4", + "globby": "^14.0.1", + "husky": "^9.0.11", + "lint-staged": "^15.2.2", "looks-same": "^7.3.0", - "markdownlint-cli": "^0.17.0", - "minimist": "^1.2.6", - "mkdirp-promise": "^5.0.1", - "mocha": "^10.1.0", + "markdownlint-cli": "^0.40.0", + "mocha": "^10.4.0", "npm-run-all": "^4.1.5", - "playwright": "^1.32.1", "postinstall-postinstall": "^2.1.0", - "prettier": "^2.0.5", - "prettier-package-json": "^2.1.3", - "remark-html": "^13.0.1", - "rimraf": "^2.6.3", + "prettier": "^2.8.8", + "prettier-package-json": "^2.8.0", + "remark-html": "^13.0.2", "rollup": "^2.79.1", - "semver": "^7.5.2", - "sinon": "^7.5.0", - "ssl-root-cas": "^1.3.1", + "semver": "^7.6.2", + "sinon": "^17.0.2", "typescript": "^4.9.5", - "wireit": "^0.7.2" + "wireit": "^0.14.4" } }, "node_modules/@11ty/dependency-tree": { @@ -230,6 +216,7 @@ }, "node_modules/@75lb/deep-merge": { "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { "lodash.assignwith": "^4.2.0", @@ -241,6 +228,7 @@ }, "node_modules/@75lb/deep-merge/node_modules/typical": { "version": "7.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=12.17" @@ -248,9 +236,8 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -267,41 +254,42 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", + "version": "7.24.2", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", + "version": "7.24.4", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.3", + "version": "7.24.5", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -311,8 +299,12 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -344,12 +336,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.21.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -357,12 +349,12 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "version": "0.3.5", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -370,6 +362,7 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" @@ -391,20 +384,17 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", + "version": "7.23.6", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -415,7 +405,7 @@ } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -427,6 +417,7 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.20.2", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -484,7 +475,7 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -502,21 +493,21 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -524,6 +515,7 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.18.9", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.9" @@ -533,34 +525,35 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", + "version": "7.24.3", "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" @@ -595,6 +588,7 @@ }, "node_modules/@babel/helper-replace-supers": { "version": "7.19.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -608,10 +602,10 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -629,31 +623,31 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", + "version": "7.24.1", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", + "version": "7.24.5", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", + "version": "7.23.5", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -674,24 +668,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.21.0", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -755,7 +750,7 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", + "version": "7.24.5", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -813,6 +808,7 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -1074,19 +1070,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "dev": true, @@ -1113,8 +1096,9 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1851,30 +1835,30 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", + "version": "7.24.0", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.3", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1882,11 +1866,11 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", + "version": "7.24.5", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1902,15 +1886,15 @@ "dev": true }, "node_modules/@changesets/apply-release-plan": { - "version": "6.1.3", + "version": "7.0.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/config": "^2.3.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^2.0.0", - "@changesets/types": "^5.2.1", + "@changesets/config": "^3.0.0", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", @@ -1918,81 +1902,64 @@ "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/@changesets/apply-release-plan/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "semver": "^7.5.3" } }, "node_modules/@changesets/assemble-release-plan": { - "version": "5.2.3", + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/types": "^5.2.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", - "semver": "^5.4.1" - } - }, - "node_modules/@changesets/assemble-release-plan/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "semver": "^7.5.3" } }, "node_modules/@changesets/changelog-git": { - "version": "0.1.14", + "version": "0.2.0", "dev": true, "license": "MIT", "dependencies": { - "@changesets/types": "^5.2.1" + "@changesets/types": "^6.0.0" } }, "node_modules/@changesets/cli": { - "version": "2.26.1", + "version": "2.27.1", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/apply-release-plan": "^6.1.3", - "@changesets/assemble-release-plan": "^5.2.3", - "@changesets/changelog-git": "^0.1.14", - "@changesets/config": "^2.3.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/get-release-plan": "^3.0.16", - "@changesets/git": "^2.0.0", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.14", - "@changesets/read": "^0.5.9", - "@changesets/types": "^5.2.1", - "@changesets/write": "^0.2.3", + "@changesets/apply-release-plan": "^7.0.0", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/changelog-git": "^0.2.0", + "@changesets/config": "^3.0.0", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/get-release-plan": "^4.0.0", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@changesets/write": "^0.3.0", "@manypkg/get-packages": "^1.1.3", - "@types/is-ci": "^3.0.0", - "@types/semver": "^6.0.0", + "@types/semver": "^7.5.0", "ansi-colors": "^4.1.3", "chalk": "^2.1.0", + "ci-info": "^3.7.0", "enquirer": "^2.3.0", "external-editor": "^3.1.0", "fs-extra": "^7.0.1", "human-id": "^1.0.2", - "is-ci": "^3.0.1", "meow": "^6.0.0", "outdent": "^0.5.0", "p-limit": "^2.2.0", "preferred-pm": "^3.0.0", "resolve-from": "^5.0.0", - "semver": "^5.4.1", + "semver": "^7.5.3", "spawndamnit": "^2.0.0", "term-size": "^2.1.0", "tty-table": "^4.1.5" @@ -2054,14 +2021,6 @@ "node": ">=4" } }, - "node_modules/@changesets/cli/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/@changesets/cli/node_modules/supports-color": { "version": "5.5.0", "dev": true, @@ -2074,21 +2033,21 @@ } }, "node_modules/@changesets/config": { - "version": "2.3.0", + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^5.2.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1", "micromatch": "^4.0.2" } }, "node_modules/@changesets/errors": { - "version": "0.1.4", + "version": "0.2.0", "dev": true, "license": "MIT", "dependencies": { @@ -2096,15 +2055,15 @@ } }, "node_modules/@changesets/get-dependents-graph": { - "version": "1.3.5", + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "@changesets/types": "^5.2.1", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "chalk": "^2.1.0", "fs-extra": "^7.0.1", - "semver": "^5.4.1" + "semver": "^7.5.3" } }, "node_modules/@changesets/get-dependents-graph/node_modules/ansi-styles": { @@ -2160,14 +2119,6 @@ "node": ">=4" } }, - "node_modules/@changesets/get-dependents-graph/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/@changesets/get-dependents-graph/node_modules/supports-color": { "version": "5.5.0", "dev": true, @@ -2180,32 +2131,32 @@ } }, "node_modules/@changesets/get-release-plan": { - "version": "3.0.16", + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/assemble-release-plan": "^5.2.3", - "@changesets/config": "^2.3.0", - "@changesets/pre": "^1.0.14", - "@changesets/read": "^0.5.9", - "@changesets/types": "^5.2.1", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/config": "^3.0.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3" } }, "node_modules/@changesets/get-version-range-type": { - "version": "0.3.2", + "version": "0.4.0", "dev": true, "license": "MIT" }, "node_modules/@changesets/git": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^5.2.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "is-subdir": "^1.1.1", "micromatch": "^4.0.2", @@ -2213,7 +2164,7 @@ } }, "node_modules/@changesets/logger": { - "version": "0.0.5", + "version": "0.1.0", "dev": true, "license": "MIT", "dependencies": { @@ -2285,36 +2236,36 @@ } }, "node_modules/@changesets/parse": { - "version": "0.3.16", + "version": "0.4.0", "dev": true, "license": "MIT", "dependencies": { - "@changesets/types": "^5.2.1", + "@changesets/types": "^6.0.0", "js-yaml": "^3.13.1" } }, "node_modules/@changesets/pre": { - "version": "1.0.14", + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^5.2.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1" } }, "node_modules/@changesets/read": { - "version": "0.5.9", + "version": "0.6.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/git": "^2.0.0", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.16", - "@changesets/types": "^5.2.1", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/parse": "^0.4.0", + "@changesets/types": "^6.0.0", "chalk": "^2.1.0", "fs-extra": "^7.0.1", "p-filter": "^2.1.0" @@ -2385,29 +2336,24 @@ } }, "node_modules/@changesets/types": { - "version": "5.2.1", + "version": "6.0.0", "dev": true, "license": "MIT" }, "node_modules/@changesets/write": { - "version": "0.2.3", + "version": "0.3.0", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.1", - "@changesets/types": "^5.2.1", + "@changesets/types": "^6.0.0", "fs-extra": "^7.0.1", "human-id": "^1.0.2", "prettier": "^2.7.1" } }, - "node_modules/@coolaj86/urequest": { - "version": "1.3.7", - "dev": true, - "license": "(MIT OR Apache-2.0)" - }, "node_modules/@custom-elements-manifest/analyzer": { - "version": "0.8.0", + "version": "0.10.2", "dev": true, "license": "MIT", "dependencies": { @@ -2420,7 +2366,7 @@ "custom-elements-manifest": "1.0.0", "debounce": "1.2.1", "globby": "11.0.4", - "typescript": "~4.3.2" + "typescript": "~5.4.2" }, "bin": { "cem": "cem.js", @@ -2447,7 +2393,7 @@ } }, "node_modules/@custom-elements-manifest/analyzer/node_modules/typescript": { - "version": "4.3.5", + "version": "5.4.5", "dev": true, "license": "Apache-2.0", "bin": { @@ -2455,7 +2401,7 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/@custom-elements-manifest/find-dependencies": { @@ -2498,18 +2444,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2530,15 +2474,13 @@ }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2551,9 +2493,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2567,9 +2508,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2579,18 +2519,16 @@ }, "node_modules/@eslint/eslintrc/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2600,9 +2538,8 @@ }, "node_modules/@eslint/js": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2620,45 +2557,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@hapi/address": { - "version": "2.1.4", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/bourne": { - "version": "1.3.2", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/hoek": { - "version": "8.5.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/joi": { - "version": "15.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "node_modules/@hapi/topo": { - "version": "3.1.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^8.3.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -2682,79 +2584,165 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "license": "MIT", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@lion/accordion": { - "version": "0.9.0", - "dev": true, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", "license": "MIT", "dependencies": { - "@lion/core": "^0.22.0" - } - }, - "node_modules/@lion/ajax": { - "resolved": "packages/ajax", + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lion/accordion": { + "version": "0.9.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@lion/core": "^0.22.0" + } + }, + "node_modules/@lion/ajax": { + "resolved": "packages/ajax", "link": true }, "node_modules/@lion/combobox": { @@ -2799,9 +2787,8 @@ }, "node_modules/@lion/combobox/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2824,9 +2811,8 @@ }, "node_modules/@lion/core/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2853,9 +2839,8 @@ }, "node_modules/@lion/form-core/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2901,9 +2886,8 @@ }, "node_modules/@lion/listbox/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2936,9 +2920,8 @@ }, "node_modules/@lion/localize/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2975,9 +2958,8 @@ }, "node_modules/@lion/overlays/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2994,11 +2976,11 @@ }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { "version": "1.4.2", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@manypkg/find-root": { @@ -3118,9 +3100,8 @@ }, "node_modules/@mdjs/mdjs-preview/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -3172,9 +3153,10 @@ } }, "node_modules/@open-wc/building-rollup": { - "version": "1.10.0", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@open-wc/building-rollup/-/building-rollup-2.2.3.tgz", + "integrity": "sha512-b6yX9uYrd/ljvCxv/SVBA0rNeUC/e3M0RlSWJVueeu4k7O+5jir1xgFDfhlsrFE+LQZaLoxIUmbzt7TzzH+AIA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.1", "@babel/helpers": "^7.10.4", @@ -3184,30 +3166,186 @@ "@babel/plugin-transform-modules-systemjs": "^7.10.5", "@babel/plugin-transform-runtime": "^7.11.0", "@babel/preset-env": "^7.9.0", - "@open-wc/building-utils": "^2.18.3", - "@open-wc/rollup-plugin-html": "^1.2.5", - "@open-wc/rollup-plugin-polyfills-loader": "^1.1.8", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-bundled-import-meta": "^0.3.2", + "@open-wc/building-utils": "^2.21.1", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-node-resolve": "^13.3.0", + "@web/rollup-plugin-html": "^1.11.0", + "@web/rollup-plugin-import-meta-assets": "^1.0.7", + "@web/rollup-plugin-polyfills-loader": "^1.3.1", "babel-plugin-template-html-minifier": "^4.0.0", - "browserslist": "^4.16.0", + "browserslist": "^4.16.5", "deepmerge": "^4.2.2", - "magic-string": "^0.25.7", - "parse5": "^5.1.1", + "magic-string": "^0.30.0", + "parse5": "^7.1.2", "regenerator-runtime": "^0.13.7", "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-workbox": "^5.2.1", - "terser": "^4.6.7" + "rollup-plugin-workbox": "^6.0.0", + "terser": "^4.8.1" }, "peerDependencies": { "rollup": "^2.11.0" } }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-babel": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-node-resolve/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@open-wc/building-rollup/node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@open-wc/building-rollup/node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@open-wc/building-rollup/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@open-wc/building-rollup/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/@open-wc/building-rollup/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/@open-wc/building-rollup/node_modules/rollup-plugin-terser/node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@open-wc/building-utils": { - "version": "2.21.0", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@open-wc/building-utils/-/building-utils-2.21.1.tgz", + "integrity": "sha512-wCyxkvkcA7vRwXJeyrIpRhDbBrVlPGAgYKsuG9n1Pyxt2aypthtZR+1q0+wPkr6h1ZYgJnM9CWQYe72AaAXxvw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.1", "@babel/plugin-syntax-dynamic-import": "^7.8.3", @@ -3223,8 +3361,8 @@ "es-module-shims": "^1.4.1", "html-minifier-terser": "^5.1.1", "lru-cache": "^6.0.0", - "minimatch": "^3.0.4", - "parse5": "^5.1.1", + "minimatch": "^7.4.2", + "parse5": "^7.1.2", "path-is-inside": "^1.0.2", "regenerator-runtime": "^0.13.7", "resolve": "^1.19.0", @@ -3237,10 +3375,35 @@ "whatwg-url": "^7.1.0" } }, + "node_modules/@open-wc/building-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@open-wc/building-utils/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@open-wc/building-utils/node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -3251,27 +3414,12 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@open-wc/chai-dom-equals": { - "version": "0.12.36", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-wc/semantic-dom-diff": "^0.13.16", - "@types/chai": "^4.1.7" - } - }, - "node_modules/@open-wc/chai-dom-equals/node_modules/@open-wc/semantic-dom-diff": { - "version": "0.13.21", - "dev": true, - "license": "MIT" - }, "node_modules/@open-wc/dedupe-mixin": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", - "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" + "license": "MIT" }, "node_modules/@open-wc/eslint-config": { - "version": "10.0.0", + "version": "12.0.3", "dev": true, "license": "MIT", "dependencies": { @@ -3281,8 +3429,8 @@ "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-import-exports-imports-resolver": "^1.0.1", - "eslint-plugin-lit": "^1.8.0", - "eslint-plugin-lit-a11y": "^2.4.0", + "eslint-plugin-lit": "^1.10.1", + "eslint-plugin-lit-a11y": "^4.1.1", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-wc": "^1.2.0" }, @@ -3290,45 +3438,16 @@ "eslint": ">=7.6.0", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-lit": "^1.3.0", - "eslint-plugin-lit-a11y": "^2.4.0", + "eslint-plugin-lit": "^1.10.1", + "eslint-plugin-lit-a11y": "^4.1.1", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-wc": "^1.2.0" } }, - "node_modules/@open-wc/eslint-config/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/@open-wc/eslint-config/node_modules/eslint-plugin-lit-a11y": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.4.1.tgz", - "integrity": "sha512-UljRja/2cVrNtgnCDj5sCT3Larxda4mGqbsPhlksvECo0+KCD8EuUori/P6wFeFqk+pHlkIC3W200E5q85E3VQ==", - "dev": true, - "dependencies": { - "aria-query": "^5.1.3", - "axe-core": "^4.3.3", - "axobject-query": "^2.2.0", - "dom5": "^3.0.1", - "emoji-regex": "^10.2.1", - "eslint-plugin-lit": "^1.6.0", - "eslint-rule-extender": "0.0.1", - "language-tags": "^1.0.5", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "~1.2.0" - }, - "peerDependencies": { - "eslint": ">= 5" - } - }, "node_modules/@open-wc/eslint-config/node_modules/eslint-plugin-wc": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-1.5.0.tgz", - "integrity": "sha512-KFSfiHDol/LeV7U6IX8GdgpGf/s3wG8FTG120Rml/hGNB/DkCuGYQhlf0VgdBdf7gweem8Nlsh5o64HNdj+qPA==", "dev": true, + "license": "MIT", "dependencies": { "is-valid-element-name": "^1.0.0", "js-levenshtein-esm": "^1.2.0" @@ -3337,57 +3456,9 @@ "eslint": ">=5" } }, - "node_modules/@open-wc/eslint-config/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/@open-wc/rollup-plugin-html": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-wc/building-utils": "^2.18.3", - "@types/html-minifier": "^3.5.3", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "html-minifier-terser": "^5.1.1", - "parse5": "^5.1.1" - } - }, - "node_modules/@open-wc/rollup-plugin-html/node_modules/fs-extra": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@open-wc/rollup-plugin-polyfills-loader": { - "version": "1.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-wc/rollup-plugin-html": "^1.2.5", - "polyfills-loader": "^1.7.5" - } - }, - "node_modules/@open-wc/scoped-elements": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-3.0.5.tgz", - "integrity": "sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==", + "node_modules/@open-wc/scoped-elements": { + "version": "3.0.5", + "license": "MIT", "dependencies": { "@open-wc/dedupe-mixin": "^1.4.0", "lit": "^3.0.0" @@ -3395,16 +3466,14 @@ }, "node_modules/@open-wc/scoped-elements/node_modules/@lit/reactive-element": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "license": "BSD-3-Clause", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0" } }, "node_modules/@open-wc/scoped-elements/node_modules/lit": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", - "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", + "license": "BSD-3-Clause", "dependencies": { "@lit/reactive-element": "^2.0.4", "lit-element": "^4.0.4", @@ -3413,8 +3482,7 @@ }, "node_modules/@open-wc/scoped-elements/node_modules/lit-element": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "license": "BSD-3-Clause", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", @@ -3423,62 +3491,50 @@ }, "node_modules/@open-wc/scoped-elements/node_modules/lit-html": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "license": "BSD-3-Clause", "dependencies": { "@types/trusted-types": "^2.0.2" } }, "node_modules/@open-wc/semantic-dom-diff": { - "version": "0.19.7", + "version": "0.20.1", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^4.3.1", - "@web/test-runner-commands": "^0.6.1" + "@web/test-runner-commands": "^0.9.0" } }, "node_modules/@open-wc/testing": { - "version": "3.1.7", + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/chai-dom-equals": "^0.12.36", - "@open-wc/semantic-dom-diff": "^0.19.7", - "@open-wc/testing-helpers": "^2.1.4", - "@types/chai": "^4.2.11", - "@types/chai-dom": "^0.0.12", + "@open-wc/semantic-dom-diff": "^0.20.0", + "@open-wc/testing-helpers": "^3.0.0", + "@types/chai-dom": "^1.11.0", "@types/sinon-chai": "^3.2.3", - "chai-a11y-axe": "^1.3.2" + "chai-a11y-axe": "^1.5.0" } }, "node_modules/@open-wc/testing-helpers": { - "version": "2.2.0", + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "@open-wc/scoped-elements": "^2.1.3", - "lit": "^2.0.0", - "lit-html": "^2.0.0" - } - }, - "node_modules/@open-wc/testing-helpers/node_modules/@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "dependencies": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" + "@open-wc/scoped-elements": "^3.0.2", + "lit": "^2.0.0 || ^3.0.0", + "lit-html": "^2.0.0 || ^3.0.0" } }, - "node_modules/@open-wc/testing/node_modules/@types/chai-dom": { - "version": "0.0.12", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", "dev": true, "license": "MIT", - "dependencies": { - "@types/chai": "*" + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@popperjs/core": { @@ -3490,64 +3546,143 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@rocket/blog": { - "version": "0.4.0", + "node_modules/@promptbook/utils": { + "version": "0.48.0-1", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/webgptorg/promptbook/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "CC-BY-4.0", "dependencies": { - "plugins-manager": "^0.3.0" + "moment": "2.30.1", + "prettier": "2.8.1", + "spacetrim": "0.11.23" } }, - "node_modules/@rocket/building-rollup": { - "version": "0.4.1", + "node_modules/@promptbook/utils/node_modules/prettier": { + "version": "2.8.1", "dev": true, "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "1.4.6", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "@rollup/plugin-babel": "^5.2.2", - "@rollup/plugin-node-resolve": "^11.0.1", - "@rollup/plugin-replace": "^2.4.2", - "@web/rollup-plugin-html": "^1.8.0", - "@web/rollup-plugin-import-meta-assets": "^1.0.4", - "@web/rollup-plugin-polyfills-loader": "^1.1.0", - "browserslist": "^4.16.1", - "rollup-plugin-terser": "^7.0.2", - "workbox-broadcast-update": "^6.1.5", - "workbox-cacheable-response": "^6.1.5", - "workbox-expiration": "^6.1.5", - "workbox-routing": "^6.1.5", - "workbox-strategies": "^6.1.5" + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.0", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" }, "peerDependencies": { - "rollup": "^2.35.0" + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@rocket/building-rollup/node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", + "node_modules/@puppeteer/browsers/node_modules/agent-base": { + "version": "7.1.1", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "debug": "^4.3.4" }, "engines": { - "node": ">= 10.0.0" + "node": ">= 14" + } + }, + "node_modules/@puppeteer/browsers/node_modules/https-proxy-agent": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "engines": { + "node": ">= 14" } }, - "node_modules/@rocket/building-rollup/node_modules/@types/resolve": { - "version": "1.17.1", + "node_modules/@puppeteer/browsers/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/proxy-agent": { + "version": "6.3.0", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-fs": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-stream": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/@rocket/blog": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "plugins-manager": "^0.3.0" } }, "node_modules/@rocket/cli": { @@ -3581,6 +3716,55 @@ "rocket": "src/cli.js" } }, + "node_modules/@rocket/cli/node_modules/@rocket/building-rollup": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@rocket/building-rollup/-/building-rollup-0.4.1.tgz", + "integrity": "sha512-99I3+NTLJnw3GHJnWaG5rEhZoiIIxgvlV+4/XncJuENcbY9tjmYZOHMzQ0lyJfhx25WZZQ+iNsvIE0NWCt92vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/preset-env": "^7.12.11", + "@rollup/plugin-babel": "^5.2.2", + "@rollup/plugin-node-resolve": "^11.0.1", + "@rollup/plugin-replace": "^2.4.2", + "@web/rollup-plugin-html": "^1.8.0", + "@web/rollup-plugin-import-meta-assets": "^1.0.4", + "@web/rollup-plugin-polyfills-loader": "^1.1.0", + "browserslist": "^4.16.1", + "rollup-plugin-terser": "^7.0.2", + "workbox-broadcast-update": "^6.1.5", + "workbox-cacheable-response": "^6.1.5", + "workbox-expiration": "^6.1.5", + "workbox-routing": "^6.1.5", + "workbox-strategies": "^6.1.5" + }, + "peerDependencies": { + "rollup": "^2.35.0" + } + }, + "node_modules/@rocket/cli/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, "node_modules/@rocket/cli/node_modules/@rollup/plugin-node-resolve": { "version": "11.2.1", "dev": true, @@ -3600,6 +3784,42 @@ "rollup": "^1.20.0||^2.0.0" } }, + "node_modules/@rocket/cli/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rocket/cli/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rocket/cli/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "node_modules/@rocket/cli/node_modules/@types/resolve": { "version": "1.17.1", "dev": true, @@ -3610,9 +3830,8 @@ }, "node_modules/@rocket/cli/node_modules/@web/dev-server": { "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", - "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", @@ -3639,9 +3858,8 @@ }, "node_modules/@rocket/cli/node_modules/@web/dev-server-core": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", @@ -3668,9 +3886,8 @@ }, "node_modules/@rocket/cli/node_modules/@web/dev-server/node_modules/@rollup/plugin-node-resolve": { "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -3688,9 +3905,8 @@ }, "node_modules/@rocket/cli/node_modules/@web/dev-server/node_modules/@web/dev-server-rollup": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", - "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^13.0.4", "@web/dev-server-core": "^0.4.1", @@ -3705,9 +3921,8 @@ }, "node_modules/@rocket/cli/node_modules/@web/dev-server/node_modules/command-line-usage": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -3720,9 +3935,8 @@ }, "node_modules/@rocket/cli/node_modules/command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -3735,27 +3949,24 @@ }, "node_modules/@rocket/cli/node_modules/command-line-args/node_modules/array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@rocket/cli/node_modules/command-line-args/node_modules/typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@rocket/cli/node_modules/es-module-lexer": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rocket/cli/node_modules/fs-extra": { "version": "9.1.0", @@ -3773,9 +3984,8 @@ }, "node_modules/@rocket/cli/node_modules/isbinaryfile": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.0.0" }, @@ -3796,15 +4006,29 @@ }, "node_modules/@rocket/cli/node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@rocket/cli/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } }, "node_modules/@rocket/cli/node_modules/table-layout": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "dev": true, + "license": "MIT", "dependencies": { "@75lb/deep-merge": "^1.1.1", "array-back": "^6.2.2", @@ -3823,9 +4047,8 @@ }, "node_modules/@rocket/cli/node_modules/table-layout/node_modules/command-line-usage": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -3836,11 +4059,28 @@ "node": ">=12.20.0" } }, + "node_modules/@rocket/cli/node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@rocket/cli/node_modules/tr46": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -3850,9 +4090,8 @@ }, "node_modules/@rocket/cli/node_modules/typical": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -3867,18 +4106,16 @@ }, "node_modules/@rocket/cli/node_modules/webidl-conversions": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/@rocket/cli/node_modules/whatwg-url": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -3889,9 +4126,8 @@ }, "node_modules/@rocket/cli/node_modules/wordwrapjs": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -3978,86 +4214,67 @@ }, "node_modules/@rocket/search/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "dev": true, - "license": "MIT", + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "@types/babel__core": { + "rollup": { "optional": true } } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "7.1.3", - "dev": true, - "license": "MIT", + "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dependencies": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">= 8.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } + "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.1.tgz", - "integrity": "sha512-4C4UERETjXpC4WpBXDbkgNVgHyWfG3B/NKY46e7w5H134UDOFqUJKpsLm0UYmuupW+aJmRgeScrDNfvZ5WV80A==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", "cpu": [ "arm" ], @@ -4068,9 +4285,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.1.tgz", - "integrity": "sha512-TrTaFJ9pXgfXEiJKQ3yQRelpQFqgRzVR9it8DbeRzG0RX7mKUy0bqhCFsgevwXLJepQKTnLl95TnPGf9T9AMOA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", "cpu": [ "arm64" ], @@ -4081,9 +4298,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.1.tgz", - "integrity": "sha512-fz7jN6ahTI3cKzDO2otQuybts5cyu0feymg0bjvYCBrZQ8tSgE8pc0sSNEuGvifrQJWiwx9F05BowihmLxeQKw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", "cpu": [ "arm64" ], @@ -4094,9 +4311,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.1.tgz", - "integrity": "sha512-WTvdz7SLMlJpektdrnWRUN9C0N2qNHwNbWpNo0a3Tod3gb9leX+yrYdCeB7VV36OtoyiPAivl7/xZ3G1z5h20g==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", "cpu": [ "x64" ], @@ -4107,9 +4324,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.1.tgz", - "integrity": "sha512-dBHQl+7wZzBYcIF6o4k2XkAfwP2ks1mYW2q/Gzv9n39uDcDiAGDqEyml08OdY0BIct0yLSPkDTqn4i6czpBLLw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", "cpu": [ "arm" ], @@ -4120,9 +4350,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.1.tgz", - "integrity": "sha512-bur4JOxvYxfrAmocRJIW0SADs3QdEYK6TQ7dTNz6Z4/lySeu3Z1H/+tl0a4qDYv0bCdBpUYM0sYa/X+9ZqgfSQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", "cpu": [ "arm64" ], @@ -4133,9 +4363,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.1.tgz", - "integrity": "sha512-ssp77SjcDIUSoUyj7DU7/5iwM4ZEluY+N8umtCT9nBRs3u045t0KkW02LTyHouHDomnMXaXSZcCSr2bdMK63kA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", "cpu": [ "arm64" ], @@ -4145,10 +4375,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.1.tgz", - "integrity": "sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", "cpu": [ "riscv64" ], @@ -4159,9 +4402,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.1.tgz", - "integrity": "sha512-U564BrhEfaNChdATQaEODtquCC7Ez+8Hxz1h5MAdMYj0AqD0GA9rHCpElajb/sQcaFL6NXmHc5O+7FXpWMa73Q==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", "cpu": [ "s390x" ], @@ -4172,9 +4415,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.1.tgz", - "integrity": "sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", "cpu": [ "x64" ], @@ -4185,9 +4428,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.1.tgz", - "integrity": "sha512-VTk/MveyPdMFkYJJPCkYBw07KcTkGU2hLEyqYMsU4NjiOfzoaDTW9PWGRsNwiOA3qI0k/JQPjkl/4FCK1smskQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", "cpu": [ "x64" ], @@ -4198,9 +4441,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.1.tgz", - "integrity": "sha512-L+hX8Dtibb02r/OYCsp4sQQIi3ldZkFI0EUkMTDwRfFykXBPptoz/tuuGqEd3bThBSLRWPR6wsixDSgOx/U3Zw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", "cpu": [ "arm64" ], @@ -4211,9 +4454,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.1.tgz", - "integrity": "sha512-+dI2jVPfM5A8zme8riEoNC7UKk0Lzc7jCj/U89cQIrOjrZTCWZl/+IXUeRT2rEZ5j25lnSA9G9H1Ob9azaF/KQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", "cpu": [ "ia32" ], @@ -4224,9 +4467,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.1.tgz", - "integrity": "sha512-YY1Exxo2viZ/O2dMHuwQvimJ0SqvL+OAWQLLY6rvXavgQKjhQUzn7nc1Dd29gjB5Fqi00nrBWctJBOyfVMIVxw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", "cpu": [ "x64" ], @@ -4237,41 +4480,58 @@ ] }, "node_modules/@sindresorhus/is": { - "version": "4.6.0", + "version": "5.6.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sinonjs/commons": { - "version": "1.8.5", + "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/formatio": { - "version": "3.2.2", + "node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "^3.0.0" } }, "node_modules/@sinonjs/samsam": { - "version": "3.3.3", + "version": "8.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "version": "2.0.0", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" + "type-detect": "4.0.8" } }, "node_modules/@sinonjs/text-encoding": { @@ -4285,18 +4545,41 @@ "license": "MIT" }, "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@swc/core": { - "version": "1.3.42", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.5.tgz", + "integrity": "sha512-M8O22EEgdSONLd+7KRrXj8pn+RdAZZ7ISnPjE9KCQQlI0kkFNEquWR+uFdlFxQfwlyCe/Zb6uGXGDvtcov4IMg==", "hasInstallScript": true, - "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.2", + "@swc/types": "^0.1.5" + }, "engines": { "node": ">=10" }, @@ -4305,24 +4588,33 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.42", - "@swc/core-darwin-x64": "1.3.42", - "@swc/core-linux-arm-gnueabihf": "1.3.42", - "@swc/core-linux-arm64-gnu": "1.3.42", - "@swc/core-linux-arm64-musl": "1.3.42", - "@swc/core-linux-x64-gnu": "1.3.42", - "@swc/core-linux-x64-musl": "1.3.42", - "@swc/core-win32-arm64-msvc": "1.3.42", - "@swc/core-win32-ia32-msvc": "1.3.42", - "@swc/core-win32-x64-msvc": "1.3.42" + "@swc/core-darwin-arm64": "1.5.5", + "@swc/core-darwin-x64": "1.5.5", + "@swc/core-linux-arm-gnueabihf": "1.5.5", + "@swc/core-linux-arm64-gnu": "1.5.5", + "@swc/core-linux-arm64-musl": "1.5.5", + "@swc/core-linux-x64-gnu": "1.5.5", + "@swc/core-linux-x64-musl": "1.5.5", + "@swc/core-win32-arm64-msvc": "1.5.5", + "@swc/core-win32-ia32-msvc": "1.5.5", + "@swc/core-win32-x64-msvc": "1.5.5" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.42", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.5.tgz", + "integrity": "sha512-Ol5ZwZYdTOZsv2NwjcT/qVVALKzVFeh+IJ4GNarr3P99+38Dkwi81OqCI1o/WaDXQYKAQC/V+CzMbkEuJJfq9Q==", "cpu": [ "arm64" ], - "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -4331,76 +4623,211 @@ "node": ">=10" } }, - "node_modules/@swc/counter": { - "version": "0.1.2", - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.5", - "license": "Apache-2.0" - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.5.tgz", + "integrity": "sha512-XHWpKBIPKYLgh5/lV2PYjO84lkzf5JR51kjiloyz2Pa9HIV8tHoAP8bYdJwm4nUp2I7KcEh3pPH0AVu5LpxMKw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">=10" } }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/autosize": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/autosize/-/autosize-4.0.3.tgz", - "integrity": "sha512-o0ZyU3ePp3+KRbhHsY4ogjc+ZQWgVN5h6j8BHW5RII4cFKi6PEKK9QPAcphJVkD0dGpyFnD3VRR0WMvHVjCv9w==", - "dev": true - }, - "node_modules/@types/babel__code-frame": { - "version": "7.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.1.20", - "dev": true, - "license": "MIT", + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.5.tgz", + "integrity": "sha512-vtoWNCWAe+CNSqtqIwFnIH48qgPPlUZKoQ4EVFeMM+7/kDi6SeNxoh5TierJs5bKAWxD49VkPvRoWFCk6V62mA==", + "cpu": [ + "arm" + ], "optional": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "license": "MIT", + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.5.tgz", + "integrity": "sha512-L4l7M78U6h/rCAxId+y5Vu+1KfDRF6dJZtitFcaT293guiUQFwJv8gLxI4Jh5wFtZ0fYd0QaCuvh2Ip79CzGMg==", + "cpu": [ + "arm64" + ], "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.0.0" + "os": [ + "linux" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, - "license": "MIT", + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.5.tgz", + "integrity": "sha512-DkzJc13ukXa7oJpyn24BjIgsiOybYrc+IxjsQyfNlDrrs1QXP4elStcpkD02SsIuSyHjZV8Hw2HFBMQB3OHPrA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.5.tgz", + "integrity": "sha512-kj4ZwWJGeBEUzHrRQP2VudN+kkkYH7OI1dPVDc6kWQx5X4329JeKOas4qY0l7gDVjBbRwN9IbbPI6TIn2KfAug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.5.tgz", + "integrity": "sha512-6pTorCs4mYhPhYtC4jNOnhGgjNd3DZcRoZ9P0tzXXP69aCbYjvlgNH/NRvAROp9AaVFeZ7a7PmCWb6+Rbe7NKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.5.tgz", + "integrity": "sha512-o0/9pstmEjwZyrY/bA+mymF0zH7E+GT/XCVqdKeWW9Wn3gTTyWa5MZnrFgI2THQ+AXwdglMB/Zo76ARQPaz/+A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.5.tgz", + "integrity": "sha512-B+nypUwsmCuaH6RtKWgiPCb+ENjxstJPPJeMJvBqlJqyCaIkZzN4M07Ozi3xVv1VG21SRkd6G3xIqRoalrNc0Q==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.5.tgz", + "integrity": "sha512-ry83ki9ZX0Q+GWGnqc2J618Z+FvKE8Ajn42F8EYi8Wj0q6Jz3mj+pJzgzakk2INm2ldEZ+FaRPipn4ozsZDcBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "license": "Apache-2.0" + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/accepts": { + "version": "1.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/autosize": { + "version": "4.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -4433,23 +4860,13 @@ }, "node_modules/@types/body-parser": { "version": "1.19.2", + "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/chai": { "version": "4.3.4", "dev": true, @@ -4464,22 +4881,13 @@ } }, "node_modules/@types/chai-dom": { - "version": "0.0.8", + "version": "1.11.3", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "*" } }, - "node_modules/@types/clean-css": { - "version": "4.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "source-map": "^0.6.0" - } - }, "node_modules/@types/co-body": { "version": "6.1.0", "dev": true, @@ -4491,10 +4899,12 @@ }, "node_modules/@types/command-line-args": { "version": "5.2.0", + "dev": true, "license": "MIT" }, "node_modules/@types/connect": { "version": "3.4.35", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -4502,10 +4912,11 @@ }, "node_modules/@types/content-disposition": { "version": "0.5.5", + "dev": true, "license": "MIT" }, "node_modules/@types/convert-source-map": { - "version": "1.5.2", + "version": "2.0.3", "dev": true, "license": "MIT" }, @@ -4516,6 +4927,7 @@ }, "node_modules/@types/cookies": { "version": "0.7.7", + "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", @@ -4535,12 +4947,13 @@ "license": "MIT" }, "node_modules/@types/estree": { - "version": "0.0.39", - "dev": true, - "license": "MIT" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/express": { "version": "4.17.14", + "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -4551,6 +4964,7 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.31", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -4559,19 +4973,20 @@ } }, "node_modules/@types/fs-extra": { - "version": "9.0.13", + "version": "11.0.4", "dev": true, "license": "MIT", "dependencies": { + "@types/jsonfile": "*", "@types/node": "*" } }, "node_modules/@types/glob": { - "version": "7.2.0", + "version": "8.1.0", "dev": true, "license": "MIT", "dependencies": { - "@types/minimatch": "*", + "@types/minimatch": "^5.1.2", "@types/node": "*" } }, @@ -4583,53 +4998,20 @@ "@types/unist": "*" } }, - "node_modules/@types/html-minifier": { - "version": "3.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/clean-css": "*", - "@types/relateurl": "*", - "@types/uglify-js": "*" - } - }, "node_modules/@types/http-assert": { "version": "1.5.3", + "dev": true, "license": "MIT" }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", + "version": "4.0.4", "dev": true, "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.1", - "license": "MIT" - }, - "node_modules/@types/inquirer": { - "version": "9.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, - "node_modules/@types/inquirer/node_modules/rxjs": { - "version": "7.8.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@types/is-ci": { - "version": "3.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.1.0" - } + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", @@ -4645,7 +5027,7 @@ } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { @@ -4654,24 +5036,25 @@ }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", + "dev": true, "license": "MIT" }, - "node_modules/@types/keyv": { - "version": "3.1.4", + "node_modules/@types/jsonfile": { + "version": "6.1.4", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/keygrip": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, "node_modules/@types/koa": { "version": "2.13.5", + "dev": true, "license": "MIT", "dependencies": { "@types/accepts": "*", @@ -4686,6 +5069,7 @@ }, "node_modules/@types/koa-compose": { "version": "3.2.5", + "dev": true, "license": "MIT", "dependencies": { "@types/koa": "*" @@ -4700,6 +5084,7 @@ }, "node_modules/@types/mime": { "version": "3.0.1", + "dev": true, "license": "MIT" }, "node_modules/@types/minimatch": { @@ -4713,12 +5098,13 @@ "license": "MIT" }, "node_modules/@types/mocha": { - "version": "10.0.1", + "version": "10.0.6", "dev": true, "license": "MIT" }, "node_modules/@types/node": { "version": "12.20.55", + "dev": true, "license": "MIT" }, "node_modules/@types/normalize-package-data": { @@ -4738,12 +5124,14 @@ }, "node_modules/@types/parse5": { "version": "6.0.3", + "dev": true, "license": "MIT" }, "node_modules/@types/prettier": { - "version": "2.7.2", - "dev": true, - "license": "MIT" + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true }, "node_modules/@types/prismjs": { "version": "1.26.0", @@ -4752,40 +5140,27 @@ }, "node_modules/@types/qs": { "version": "6.9.7", + "dev": true, "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "license": "MIT" - }, - "node_modules/@types/relateurl": { - "version": "0.2.29", "dev": true, "license": "MIT" }, "node_modules/@types/resolve": { - "version": "0.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" }, "node_modules/@types/semver": { - "version": "6.2.3", + "version": "7.5.8", "dev": true, "license": "MIT" }, "node_modules/@types/serve-static": { "version": "1.15.0", + "dev": true, "license": "MIT", "dependencies": { "@types/mime": "*", @@ -4826,37 +5201,25 @@ "version": "2.0.2", "license": "MIT" }, - "node_modules/@types/ua-parser-js": { - "version": "0.7.36", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/uglify-js": { - "version": "3.17.1", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.6.1" - } - }, "node_modules/@types/unist": { "version": "2.0.6", "license": "MIT" }, "node_modules/@types/which": { - "version": "1.3.2", + "version": "2.0.2", "dev": true, "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yauzl": { - "version": "2.10.0", + "version": "2.10.3", "dev": true, "license": "MIT", "optional": true, @@ -4866,181 +5229,295 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@wdio/config": { - "version": "7.26.0", + "version": "8.36.1", "dev": true, "license": "MIT", "dependencies": { - "@wdio/logger": "7.26.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "deepmerge": "^4.0.0", - "glob": "^8.0.3" + "@wdio/logger": "8.28.0", + "@wdio/types": "8.36.1", + "@wdio/utils": "8.36.1", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.0.0", + "glob": "^10.2.2", + "import-meta-resolve": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" } }, - "node_modules/@wdio/config/node_modules/@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "node_modules/@wdio/config/node_modules/brace-expansion": { + "version": "2.0.1", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "balanced-match": "^1.0.0" } }, - "node_modules/@wdio/config/node_modules/@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", + "node_modules/@wdio/config/node_modules/decamelize": { + "version": "6.0.0", "dev": true, - "dependencies": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - }, + "license": "MIT", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "^4.6.2" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@wdio/config/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@wdio/config/node_modules/glob": { - "version": "8.0.3", + "version": "10.3.12", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@wdio/config/node_modules/minimatch": { - "version": "5.1.0", + "version": "9.0.4", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@wdio/logger": { - "version": "7.26.0", + "version": "8.28.0", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", + "chalk": "^5.1.2", "loglevel": "^1.6.0", "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^6.0.0" + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" } }, - "node_modules/@wdio/protocols": { - "version": "7.22.0", + "node_modules/@wdio/logger/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@wdio/protocols": { + "version": "8.32.0", + "dev": true, + "license": "MIT" + }, "node_modules/@wdio/repl": { - "version": "7.26.0", + "version": "8.24.12", "dev": true, "license": "MIT", "dependencies": { - "@wdio/utils": "7.26.0" + "@types/node": "^20.1.0" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" } }, - "node_modules/@wdio/utils": { - "version": "7.26.0", + "node_modules/@wdio/repl/node_modules/@types/node": { + "version": "20.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@wdio/types": { + "version": "8.36.1", "dev": true, "license": "MIT", "dependencies": { - "@wdio/logger": "7.26.0", - "@wdio/types": "7.26.0", - "p-iteration": "^1.1.8" + "@types/node": "^20.1.0" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" } }, - "node_modules/@wdio/utils/node_modules/@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "node_modules/@wdio/types/node_modules/@types/node": { + "version": "20.12.11", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@wdio/utils/node_modules/@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", + "node_modules/@wdio/utils": { + "version": "8.36.1", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "^18.0.0", - "got": "^11.8.1" + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.28.0", + "@wdio/types": "8.36.1", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.3.5", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" + } + }, + "node_modules/@wdio/utils/node_modules/@puppeteer/browsers": { + "version": "1.9.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.1", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" }, - "peerDependencies": { - "typescript": "^4.6.2" + "bin": { + "browsers": "lib/cjs/main-cli.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=16.3.0" } }, - "node_modules/@web/browser-logs": { - "version": "0.2.5", + "node_modules/@wdio/utils/node_modules/decamelize": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wdio/utils/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/@wdio/utils/node_modules/tar-fs": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/@wdio/utils/node_modules/tar-stream": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/@wdio/utils/node_modules/yargs": { + "version": "17.7.2", "dev": true, "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wdio/utils/node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/browser-logs": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", + "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", + "dev": true, "dependencies": { "errorstacks": "^2.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/@web/config-loader": { "version": "0.1.3", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.3.4" @@ -5050,10 +5527,9 @@ } }, "node_modules/@web/dev-server": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.3.tgz", - "integrity": "sha512-vf2ZVjdTj8ExrMSYagyHD+snRue9oRetynxd1p0P7ndEpZDKeNLYsvkJyo0pNU6moBxHmXnYeC5VrAT4E3+lNg==", + "version": "0.4.4", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", @@ -5118,8 +5594,9 @@ }, "node_modules/@web/dev-server-legacy": { "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@web/dev-server-legacy/-/dev-server-legacy-0.1.7.tgz", + "integrity": "sha512-mWQP4S4mn9OZyFmOBCJM6GfuiOGaaAhWpVYiRgJ8Ib6GlpNCbO3uqslCRHnlvIzTiEkKG/Y6HrymfQAznlUXhw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-dynamic-import": "^7.12.1", @@ -5144,8 +5621,9 @@ }, "node_modules/@web/dev-server-legacy/node_modules/parse5": { "version": "6.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, "node_modules/@web/dev-server-rollup": { "version": "0.3.19", @@ -5182,6 +5660,29 @@ "rollup": "^2.42.0" } }, + "node_modules/@web/dev-server-rollup/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "node_modules/@web/dev-server-rollup/node_modules/@types/resolve": { "version": "1.17.1", "dev": true, @@ -5226,79 +5727,18 @@ "node": ">=12" } }, - "node_modules/@web/dev-server/node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@web/dev-server/node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@web/dev-server/node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@web/dev-server/node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, "node_modules/@web/dev-server/node_modules/@web/config-loader": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", - "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/@web/dev-server/node_modules/@web/dev-server-core": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.1.tgz", - "integrity": "sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", @@ -5325,9 +5765,8 @@ }, "node_modules/@web/dev-server/node_modules/@web/dev-server-rollup": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.1.tgz", - "integrity": "sha512-vhtsQ8qu1pBHailOBOYJwZnYDc1Lmx6ZAd2j+y5PD2ck0R1LmVsZ7dZK8hDCpkvpvlu2ndURjL9tbzdcsBRJmg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^15.0.1", "@web/dev-server-core": "^0.7.0", @@ -5342,9 +5781,8 @@ }, "node_modules/@web/dev-server/node_modules/@web/parse5-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", - "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" @@ -5355,9 +5793,8 @@ }, "node_modules/@web/dev-server/node_modules/command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -5370,27 +5807,24 @@ }, "node_modules/@web/dev-server/node_modules/command-line-args/node_modules/array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@web/dev-server/node_modules/command-line-args/node_modules/typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@web/dev-server/node_modules/command-line-usage": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -5403,27 +5837,18 @@ }, "node_modules/@web/dev-server/node_modules/es-module-lexer": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true - }, - "node_modules/@web/dev-server/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@web/dev-server/node_modules/ip": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@web/dev-server/node_modules/isbinaryfile": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.0.0" }, @@ -5433,23 +5858,21 @@ }, "node_modules/@web/dev-server/node_modules/lru-cache": { "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, + "license": "ISC", "engines": { "node": ">=16.14" } }, "node_modules/@web/dev-server/node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@web/dev-server/node_modules/rollup": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.1.tgz", - "integrity": "sha512-hFi+fU132IvJ2ZuihN56dwgpltpmLZHZWsx27rMCTZ2sYwrqlgL5sECGy1eeV2lAihD8EzChBVVhsXci0wD4Tg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -5462,28 +5885,29 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.1", - "@rollup/rollup-android-arm64": "4.13.1", - "@rollup/rollup-darwin-arm64": "4.13.1", - "@rollup/rollup-darwin-x64": "4.13.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.1", - "@rollup/rollup-linux-arm64-gnu": "4.13.1", - "@rollup/rollup-linux-arm64-musl": "4.13.1", - "@rollup/rollup-linux-riscv64-gnu": "4.13.1", - "@rollup/rollup-linux-s390x-gnu": "4.13.1", - "@rollup/rollup-linux-x64-gnu": "4.13.1", - "@rollup/rollup-linux-x64-musl": "4.13.1", - "@rollup/rollup-win32-arm64-msvc": "4.13.1", - "@rollup/rollup-win32-ia32-msvc": "4.13.1", - "@rollup/rollup-win32-x64-msvc": "4.13.1", + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", "fsevents": "~2.3.2" } }, "node_modules/@web/dev-server/node_modules/table-layout": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "dev": true, + "license": "MIT", "dependencies": { "@75lb/deep-merge": "^1.1.1", "array-back": "^6.2.2", @@ -5502,9 +5926,8 @@ }, "node_modules/@web/dev-server/node_modules/tr46": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -5514,27 +5937,24 @@ }, "node_modules/@web/dev-server/node_modules/typical": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/@web/dev-server/node_modules/webidl-conversions": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/@web/dev-server/node_modules/whatwg-url": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -5545,17 +5965,16 @@ }, "node_modules/@web/dev-server/node_modules/wordwrapjs": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/@web/parse5-utils": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", - "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", + "dev": true, + "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" @@ -5566,6 +5985,7 @@ }, "node_modules/@web/parse5-utils/node_modules/parse5": { "version": "6.0.1", + "dev": true, "license": "MIT" }, "node_modules/@web/polyfills-loader": { @@ -5739,21 +6159,22 @@ } }, "node_modules/@web/test-runner": { - "version": "0.15.2", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.1.tgz", + "integrity": "sha512-jB/9vrpGVtcLY6/7sPpKpSheQ3wWY9P5aQcz2SK2gMHTq3gNpa51NAyec0Al7EFpHvJ1wKYTGRLB2gPyEoJeDg==", "dev": true, - "license": "MIT", "dependencies": { - "@web/browser-logs": "^0.2.2", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.37", - "@web/test-runner-chrome": "^0.12.0", - "@web/test-runner-commands": "^0.6.3", - "@web/test-runner-core": "^0.10.27", - "@web/test-runner-mocha": "^0.7.5", + "@web/browser-logs": "^0.4.0", + "@web/config-loader": "^0.3.0", + "@web/dev-server": "^0.4.0", + "@web/test-runner-chrome": "^0.16.0", + "@web/test-runner-commands": "^0.9.0", + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-mocha": "^0.9.0", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "convert-source-map": "^1.7.0", + "command-line-usage": "^7.0.1", + "convert-source-map": "^2.0.0", "diff": "^5.0.0", "globby": "^11.0.1", "nanocolors": "^0.2.1", @@ -5765,86 +6186,221 @@ "wtr": "dist/bin.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@web/test-runner-browserstack": { - "version": "0.5.1", + "version": "0.7.1", "dev": true, "license": "MIT", "dependencies": { - "@web/test-runner-webdriver": "^0.5.1", + "@web/test-runner-webdriver": "^0.8.0", "browserstack-local": "^1.4.8", - "ip": "^1.1.5", + "ip": "^2.0.1", "nanoid": "^3.1.25" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, + "node_modules/@web/test-runner-browserstack/node_modules/ip": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, "node_modules/@web/test-runner-chrome": { - "version": "0.12.0", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.16.0.tgz", + "integrity": "sha512-Edc6Y49aVB6k18S5IOj9OCX3rEf8F3jptIu0p95+imqxmcutFEh1GNmlAk2bQGnXS0U6uVY7Xbf61fiaXUQqhg==", "dev": true, - "license": "MIT", "dependencies": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.5.0", + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-coverage-v8": "^0.8.0", + "async-mutex": "0.4.0", "chrome-launcher": "^0.15.0", - "puppeteer-core": "^18.2.1" + "puppeteer-core": "^22.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/@puppeteer/browsers": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", + "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.4.0", + "semver": "7.6.0", + "tar-fs": "3.0.5", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/chromium-bidi": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", + "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", + "dev": true, + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.22.4" + }, + "peerDependencies": { + "devtools-protocol": "*" } }, "node_modules/@web/test-runner-chrome/node_modules/devtools-protocol": { - "version": "0.0.1045489", + "version": "0.0.1273771", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1273771.tgz", + "integrity": "sha512-QDbb27xcTVReQQW/GHJsdQqGKwYBE7re7gxehj467kKP2DKuYBUj6i2k5LRiAC66J1yZG/9gsxooz/s9pcm0Og==", + "dev": true + }, + "node_modules/@web/test-runner-chrome/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "BSD-3-Clause" + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/@web/test-runner-chrome/node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/@web/test-runner-chrome/node_modules/puppeteer-core": { - "version": "18.2.1", + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.8.0.tgz", + "integrity": "sha512-S5bWx3g/fNuyFxjZX9TkZMN07CEH47+9Zm6IiTl1QfqI9pnVaShbwrD9kRe5vmz/XPp/jLGhhxRUj1sY4wObnA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "cross-fetch": "3.1.5", + "@puppeteer/browsers": "2.2.3", + "chromium-bidi": "0.5.19", "debug": "4.3.4", - "devtools-protocol": "0.0.1045489", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.9.0" + "devtools-protocol": "0.0.1273771", + "ws": "8.17.0" }, "engines": { - "node": ">=14.1.0" + "node": ">=18" } }, - "node_modules/@web/test-runner-chrome/node_modules/rimraf": { - "version": "3.0.2", + "node_modules/@web/test-runner-chrome/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "lru-cache": "^6.0.0" }, "bin": { - "rimraf": "bin.js" + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "dev": true, + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/@web/test-runner-chrome/node_modules/ws": { - "version": "8.9.0", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -5855,42 +6411,70 @@ } } }, + "node_modules/@web/test-runner-chrome/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/test-runner-chrome/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@web/test-runner-commands": { - "version": "0.6.5", + "version": "0.9.0", "dev": true, "license": "MIT", "dependencies": { - "@web/test-runner-core": "^0.10.27", + "@web/test-runner-core": "^0.13.0", "mkdirp": "^1.0.4" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@web/test-runner-core": { - "version": "0.10.27", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.1.tgz", + "integrity": "sha512-2hESALx/UFsAzK+ApWXAkFp2eCmwcs2yj1v4YjwV8F38sQumJ40P3px3BMjFwkOYDORtQOicW0RUeSw1g3BMLA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/babel__code-frame": "^7.0.2", "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", + "@types/convert-source-map": "^2.0.0", "@types/debounce": "^1.2.0", "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.18", + "@web/browser-logs": "^0.4.0", + "@web/dev-server-core": "^0.7.0", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", + "convert-source-map": "^2.0.0", "debounce": "^1.2.0", "dependency-graph": "^0.11.0", "globby": "^11.0.1", - "ip": "^1.1.5", + "ip": "^2.0.1", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", + "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.0.2", "log-update": "^4.0.0", "nanocolors": "^0.2.1", @@ -5900,21 +6484,77 @@ "source-map": "^0.7.3" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/@web/dev-server-core": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.1.tgz", + "integrity": "sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.1.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^8.0.4", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/@web/parse5-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", + "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, + "node_modules/@web/test-runner-core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@web/test-runner-core/node_modules/dependency-graph": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" } }, + "node_modules/@web/test-runner-core/node_modules/es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", + "dev": true + }, "node_modules/@web/test-runner-core/node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5930,187 +6570,117 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@web/test-runner-core/node_modules/source-map": { - "version": "0.7.4", + "node_modules/@web/test-runner-core/node_modules/ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", + "dev": true + }, + "node_modules/@web/test-runner-core/node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", "dev": true, - "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/@web/test-runner-coverage-v8": { - "version": "0.5.0", + "node_modules/@web/test-runner-core/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "istanbul-lib-coverage": "^3.0.0", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-mocha": { - "version": "0.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.20" - }, "engines": { - "node": ">=12.0.0" + "node": ">=16.14" } }, - "node_modules/@web/test-runner-mocha/node_modules/@types/mocha": { - "version": "8.2.3", - "dev": true, - "license": "MIT" + "node_modules/@web/test-runner-core/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, - "node_modules/@web/test-runner-playwright": { - "version": "0.9.0", + "node_modules/@web/test-runner-core/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.5.0", - "playwright": "^1.22.2" - }, "engines": { - "node": ">=12.0.0" + "node": ">= 8" } }, - "node_modules/@web/test-runner-webdriver": { - "version": "0.5.1", + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", + "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", "dev": true, - "license": "MIT", "dependencies": { - "@web/test-runner-core": "^0.10.20", - "webdriverio": "^7.16.0" + "@web/test-runner-core": "^0.13.0", + "istanbul-lib-coverage": "^3.0.0", + "lru-cache": "^8.0.4", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, - "node_modules/@web/test-runner/node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "node_modules/@web/test-runner-coverage-v8/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@web/test-runner/node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" + "node": ">=16.14" } }, - "node_modules/@web/test-runner/node_modules/@web/dev-server": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", - "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", + "node_modules/@web/test-runner-mocha": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.4.1", - "@web/dev-server-rollup": "^0.4.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "bin": { - "wds": "dist/bin.js", - "web-dev-server": "dist/bin.js" + "@web/test-runner-core": "^0.13.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, - "node_modules/@web/test-runner/node_modules/@web/dev-server-core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "node_modules/@web/test-runner-playwright": { + "version": "0.11.0", "dev": true, + "license": "MIT", "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-coverage-v8": "^0.8.0", + "playwright": "^1.22.2" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, - "node_modules/@web/test-runner/node_modules/@web/dev-server-rollup": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", - "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", + "node_modules/@web/test-runner-webdriver": { + "version": "0.8.0", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.4.1", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" + "@web/test-runner-core": "^0.13.0", + "webdriverio": "^8.8.6" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, - "node_modules/@web/test-runner/node_modules/@web/dev-server/node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "node_modules/@web/test-runner/node_modules/@web/config-loader": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", + "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", "dev": true, - "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, "engines": { - "node": ">=12.20.0" + "node": ">=18.0.0" } }, "node_modules/@web/test-runner/node_modules/command-line-args": { @@ -6146,16 +6716,32 @@ "node": ">=8" } }, - "node_modules/@web/test-runner/node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "node_modules/@web/test-runner/node_modules/command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "dev": true, + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@web/test-runner/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/@web/test-runner/node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6171,28 +6757,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@web/test-runner/node_modules/isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "dev": true, - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/@web/test-runner/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/@web/test-runner/node_modules/source-map": { "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -6218,33 +6787,6 @@ "node": ">=12.17" } }, - "node_modules/@web/test-runner/node_modules/table-layout/node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@web/test-runner/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@web/test-runner/node_modules/typical": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", @@ -6254,28 +6796,6 @@ "node": ">=12.17" } }, - "node_modules/@web/test-runner/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/test-runner/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@web/test-runner/node_modules/wordwrapjs": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", @@ -6286,7 +6806,7 @@ } }, "node_modules/@webcomponents/scoped-custom-element-registry": { - "version": "0.0.8", + "version": "0.0.9", "dev": true, "license": "BSD-3-Clause" }, @@ -6300,11 +6820,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/a-sync-waterfall": { "version": "1.0.1", "dev": true, @@ -6315,6 +6830,17 @@ "dev": true, "license": "ISC" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/abortcontroller-polyfill": { "version": "1.7.5", "dev": true, @@ -6322,6 +6848,7 @@ }, "node_modules/accepts": { "version": "1.3.8", + "dev": true, "license": "MIT", "dependencies": { "mime-types": "~2.1.34", @@ -6333,9 +6860,8 @@ }, "node_modules/acorn": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6364,9 +6890,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -6382,23 +6907,10 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6471,6 +6983,7 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -6484,6 +6997,7 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -6494,58 +7008,187 @@ } }, "node_modules/archiver": { - "version": "5.3.1", + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/archiver-utils": { - "version": "2.1.0", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { - "glob": "^7.1.4", + "glob": "^10.0.0", "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", + "lodash": "^4.17.15", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, - "node_modules/archiver/node_modules/async": { - "version": "3.2.4", + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.3.12", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "4.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/async": { + "version": "3.2.5", "dev": true, "license": "MIT" }, + "node_modules/archiver/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.0", + "version": "4.5.2", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/tar-stream": { + "version": "3.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/argparse": { @@ -6573,8 +7216,8 @@ }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -6594,16 +7237,10 @@ "node": ">=8" } }, - "node_modules/array-from": { - "version": "2.1.1", - "dev": true, - "license": "MIT" - }, "node_modules/array-includes": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6637,9 +7274,8 @@ }, "node_modules/array.prototype.findlastindex": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -6657,9 +7293,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6675,9 +7310,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6691,27 +7325,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", @@ -6739,6 +7356,7 @@ }, "node_modules/asap": { "version": "2.0.6", + "dev": true, "license": "MIT" }, "node_modules/assertion-error": { @@ -6749,6 +7367,17 @@ "node": "*" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/astral-regex": { "version": "2.0.0", "dev": true, @@ -6759,6 +7388,7 @@ }, "node_modules/async": { "version": "2.6.4", + "dev": true, "license": "MIT", "dependencies": { "lodash": "^4.17.14" @@ -6772,6 +7402,15 @@ "node": ">=0.8.0" } }, + "node_modules/async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/at-least-node": { "version": "1.0.0", "license": "ISC", @@ -6789,13 +7428,12 @@ }, "node_modules/autosize": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/autosize/-/autosize-6.0.1.tgz", - "integrity": "sha512-f86EjiUKE6Xvczc4ioP1JBlWG7FKrE13qe/DxBCpe8GCipCq2nFw73aO8QEBKHfSbYGDN5eB9jXWKen7tspDqQ==" + "license": "MIT" }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -6808,14 +7446,18 @@ }, "node_modules/awesome-phonenumber": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-6.4.0.tgz", - "integrity": "sha512-GRtyAHsD/usULDEZ8a5QQVZnvLm+WqP8q5sDPf3DkzEDGSr2DcvygGhuhWc6cTP4r28cSo0weM5eStwxJgxDoA==", + "license": "MIT", + "workspaces": [ + "webpack", + "cjs-test", + "esm-test" + ], "engines": { "node": ">=18" } }, "node_modules/axe-core": { - "version": "4.5.2", + "version": "4.9.1", "dev": true, "license": "MPL-2.0", "engines": { @@ -6835,31 +7477,10 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/babel-extract-comments": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babylon": "^6.18.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-bundled-import-meta": { - "version": "0.3.2", + "node_modules/b4a": { + "version": "1.6.6", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/plugin-syntax-import-meta": "^7.2.0", - "@babel/template": "^7.7.0" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "@babel/core": "^7.7.0" - } + "license": "Apache-2.0" }, "node_modules/babel-plugin-extend-docs": { "resolved": "packages-node/babel-plugin-extend-docs", @@ -6909,11 +7530,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "dev": true, - "license": "MIT" - }, "node_modules/babel-plugin-template-html-minifier": { "version": "4.1.0", "dev": true, @@ -6938,30 +7554,6 @@ "node": ">= 4.0" } }, - "node_modules/babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "node_modules/babel-polyfill": { - "version": "6.26.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "node_modules/babel-polyfill/node_modules/regenerator-runtime": { - "version": "0.10.5", - "dev": true, - "license": "MIT" - }, "node_modules/babel-runtime": { "version": "6.26.0", "dev": true, @@ -7015,8 +7607,50 @@ "version": "1.0.2", "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.2.2", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^1.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.2", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "1.0.0", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.16.1" + } + }, "node_modules/base64-js": { "version": "1.5.1", + "dev": true, "funding": [ { "type": "github", @@ -7041,6 +7675,14 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "dev": true, @@ -7057,8 +7699,17 @@ "node": ">=4" } }, + "node_modules/big-integer": { + "version": "1.6.52", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7087,6 +7738,11 @@ "node": ">= 6" } }, + "node_modules/bluebird": { + "version": "3.4.7", + "dev": true, + "license": "MIT" + }, "node_modules/boolbase": { "version": "1.0.0", "license": "ISC" @@ -7213,7 +7869,7 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", + "version": "4.23.0", "funding": [ { "type": "opencollective", @@ -7222,14 +7878,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -7240,8 +7900,9 @@ }, "node_modules/browserslist-useragent": { "version": "3.1.4", + "resolved": "https://registry.npmjs.org/browserslist-useragent/-/browserslist-useragent-3.1.4.tgz", + "integrity": "sha512-o9V55790uae98Kwn+vwyO+ww07OreiH1BUc9bjjlUbIL3Fh43fyoasZxZ2EiI4ErfEIKwbycQ1pvwOBlySJ7ow==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.19.1", "electron-to-chromium": "^1.4.67", @@ -7299,15 +7960,16 @@ } }, "node_modules/buffer-crc32": { - "version": "0.2.13", + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=8.0.0" } }, "node_modules/buffer-from": { "version": "1.1.2", + "dev": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -7354,6 +8016,7 @@ }, "node_modules/cache-content-type": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "mime-types": "^2.1.18", @@ -7364,39 +8027,36 @@ } }, "node_modules/cacheable-lookup": { - "version": "5.0.4", + "version": "7.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10.6.0" + "node": ">=14.16" } }, "node_modules/cacheable-request": { - "version": "7.0.2", + "version": "10.2.14", "dev": true, "license": "MIT", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", + "node_modules/cacheable-request/node_modules/mimic-response": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7404,8 +8064,8 @@ }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -7461,6 +8121,7 @@ }, "node_modules/camelcase": { "version": "6.3.0", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -7495,8 +8156,9 @@ }, "node_modules/caniuse-api": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -7505,7 +8167,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001434", + "version": "1.0.30001616", "funding": [ { "type": "opencollective", @@ -7514,6 +8176,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "CC-BY-4.0" @@ -7547,24 +8213,24 @@ } }, "node_modules/chai": { - "version": "4.3.7", + "version": "4.4.1", "dev": true, "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" } }, "node_modules/chai-a11y-axe": { - "version": "1.4.0", + "version": "1.5.0", "dev": true, "license": "MIT", "dependencies": { @@ -7573,9 +8239,8 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, + "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -7585,6 +8250,7 @@ }, "node_modules/chalk": { "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -7599,6 +8265,7 @@ }, "node_modules/chalk-template": { "version": "0.4.0", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2" @@ -7610,15 +8277,6 @@ "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, - "node_modules/changeset": { - "version": "0.2.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "udc": "^1.0.0", - "underscore": "^1.8.3" - } - }, "node_modules/character-entities": { "version": "1.2.4", "license": "MIT", @@ -7662,12 +8320,16 @@ }, "node_modules/chardet": { "version": "0.7.0", + "dev": true, "license": "MIT" }, "node_modules/check-error": { - "version": "1.0.2", + "version": "1.0.3", "dev": true, "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -7719,6 +8381,7 @@ }, "node_modules/chokidar": { "version": "3.5.2", + "dev": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -7742,9 +8405,10 @@ "license": "ISC" }, "node_modules/chrome-launcher": { - "version": "0.15.1", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -7758,23 +8422,46 @@ "node": ">=12.13.0" } }, + "node_modules/chromium-bidi": { + "version": "0.4.16", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/chromium-bidi/node_modules/mitt": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/ci-env": { "version": "1.17.0", "dev": true, "license": "MIT" }, "node_modules/ci-info": { - "version": "3.6.2", + "version": "3.9.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/clean-css": { - "version": "5.3.1", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, - "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -7782,14 +8469,6 @@ "node": ">= 10.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "dev": true, @@ -7801,31 +8480,67 @@ "node": ">=8" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", + "node_modules/cli-truncate": { + "version": "4.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.1.0", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -7841,44 +8556,15 @@ }, "node_modules/clone": { "version": "2.1.2", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8" } }, "node_modules/co": { "version": "4.6.0", + "dev": true, "license": "MIT", "engines": { "iojs": ">= 1.0.0", @@ -7910,6 +8596,7 @@ }, "node_modules/color-convert": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -7925,6 +8612,7 @@ }, "node_modules/color-name": { "version": "1.1.4", + "dev": true, "license": "MIT" }, "node_modules/color-string": { @@ -7937,7 +8625,7 @@ } }, "node_modules/colorette": { - "version": "2.0.19", + "version": "2.0.20", "dev": true, "license": "MIT" }, @@ -8071,41 +8759,72 @@ }, "node_modules/common-tags": { "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/compress-commons": { - "version": "4.1.1", + "version": "6.0.2", "dev": true, "license": "MIT", "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "node_modules/compress-commons/node_modules/readable-stream": { - "version": "3.6.0", + "version": "4.5.2", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/compress-commons/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" } }, "node_modules/concat-map": { @@ -8222,6 +8941,7 @@ }, "node_modules/content-disposition": { "version": "0.5.4", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" @@ -8232,6 +8952,7 @@ }, "node_modules/content-type": { "version": "1.0.4", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -8239,6 +8960,7 @@ }, "node_modules/convert-source-map": { "version": "1.9.0", + "dev": true, "license": "MIT" }, "node_modules/cookie": { @@ -8251,6 +8973,7 @@ }, "node_modules/cookies": { "version": "0.8.0", + "dev": true, "license": "MIT", "dependencies": { "depd": "~2.0.0", @@ -8331,28 +9054,61 @@ } }, "node_modules/crc32-stream": { - "version": "4.0.2", + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/crc32-stream/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.0", + "version": "4.5.2", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/crc32-stream/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" } }, "node_modules/cross-env": { @@ -8373,11 +9129,11 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.5", + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -8394,11 +9150,12 @@ } }, "node_modules/crypto-random-string": { - "version": "1.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/css-selector-parser": { @@ -8457,8 +9214,8 @@ }, "node_modules/data-view-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -8473,8 +9230,8 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -8489,8 +9246,8 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -8513,6 +9270,7 @@ }, "node_modules/debounce": { "version": "1.2.1", + "dev": true, "license": "MIT" }, "node_modules/debug": { @@ -8530,13 +9288,6 @@ } } }, - "node_modules/debuglog": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/decamelize": { "version": "1.2.0", "dev": true, @@ -8582,13 +9333,8 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, "node_modules/deep-eql": { - "version": "4.1.2", + "version": "4.1.3", "dev": true, "license": "MIT", "dependencies": { @@ -8631,16 +9377,10 @@ "node": ">=4.0.0" } }, - "node_modules/deep-freeze": { - "version": "0.0.1", - "dev": true, - "license": "public domain" - }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.2.2", @@ -8649,8 +9389,17 @@ "node": ">=0.10.0" } }, + "node_modules/deepmerge-ts": { + "version": "5.1.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/defaults": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { "clone": "^1.0.2" @@ -8661,6 +9410,7 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8" @@ -8676,8 +9426,8 @@ }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -8692,6 +9442,7 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8699,8 +9450,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -8713,12 +9464,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delegates": { "version": "1.0.0", + "dev": true, "license": "MIT" }, "node_modules/depd": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -8734,6 +9500,7 @@ }, "node_modules/destroy": { "version": "1.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8", @@ -8769,70 +9536,13 @@ "node": ">= 0.8.0" } }, - "node_modules/devtools": { - "version": "7.26.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "^18.0.0", - "@types/ua-parser-js": "^0.7.33", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "chrome-launcher": "^0.15.0", - "edge-paths": "^2.1.0", - "puppeteer-core": "^13.1.3", - "query-selector-shadow-dom": "^1.0.0", - "ua-parser-js": "^1.0.1", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/devtools-protocol": { - "version": "0.0.981744", + "version": "0.0.1147663", "dev": true, "license": "BSD-3-Clause" }, - "node_modules/devtools/node_modules/@types/node": { - "version": "18.11.9", - "dev": true, - "license": "MIT" - }, - "node_modules/devtools/node_modules/@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "dependencies": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "^4.6.2" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "node_modules/diff": { - "version": "5.1.0", + "version": "5.2.0", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -8841,6 +9551,7 @@ }, "node_modules/dir-glob": { "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -8953,6 +9664,14 @@ "dev": true, "license": "MIT" }, + "node_modules/duplexer2": { + "version": "0.1.4", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, "node_modules/dynamic-import-polyfill": { "version": "0.1.1", "dev": true, @@ -8960,6 +9679,7 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", + "dev": true, "license": "MIT" }, "node_modules/easy-extender": { @@ -8980,12 +9700,85 @@ } }, "node_modules/edge-paths": { - "version": "2.2.1", + "version": "3.0.5", "dev": true, "license": "MIT", "dependencies": { - "@types/which": "^1.3.2", + "@types/which": "^2.0.1", "which": "^2.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/shirshak55" + } + }, + "node_modules/edgedriver": { + "version": "5.4.0", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@wdio/logger": "^8.28.0", + "decamelize": "^6.0.0", + "edge-paths": "^3.0.5", + "node-fetch": "^3.3.2", + "unzipper": "^0.11.4", + "which": "^4.0.0" + }, + "bin": { + "edgedriver": "bin/edgedriver.js" + } + }, + "node_modules/edgedriver/node_modules/decamelize": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/edgedriver/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/edgedriver/node_modules/node-fetch": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/edgedriver/node_modules/which": { + "version": "4.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/editorconfig": { @@ -9026,6 +9819,7 @@ }, "node_modules/ee-first": { "version": "1.1.1", + "dev": true, "license": "MIT" }, "node_modules/ejs": { @@ -9038,15 +9832,17 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", + "version": "1.4.759", "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -9187,8 +9983,8 @@ }, "node_modules/es-abstract": { "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", @@ -9244,14 +10040,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -9261,8 +10053,8 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9296,8 +10088,8 @@ }, "node_modules/es-object-atoms": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -9307,8 +10099,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", @@ -9320,15 +10112,15 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -9342,13 +10134,8 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-promisify": { - "version": "6.1.1", - "dev": true, - "license": "MIT" - }, "node_modules/escalade": { - "version": "3.1.1", + "version": "3.1.2", "license": "MIT", "engines": { "node": ">=6" @@ -9356,6 +10143,7 @@ }, "node_modules/escape-html": { "version": "1.0.3", + "dev": true, "license": "MIT" }, "node_modules/escape-string-regexp": { @@ -9368,11 +10156,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/eslint": { "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -9451,9 +10266,8 @@ }, "node_modules/eslint-config-prettier": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9463,9 +10277,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -9474,18 +10287,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9500,9 +10311,8 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -9517,9 +10327,8 @@ }, "node_modules/eslint-plugin-import": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -9576,18 +10385,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-lit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.11.0.tgz", - "integrity": "sha512-jVqy2juQTAtOzj1ILf+ZW5GpDobXlSw0kvpP2zu2r8ZbW7KISt7ikj1Gw9DhNeirEU1UlSJR0VIWpdr4lzjayw==", + "version": "1.12.0", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", @@ -9602,9 +10409,8 @@ }, "node_modules/eslint-plugin-lit-a11y": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.2.tgz", - "integrity": "sha512-otrF1Q0uv6RUz/AflVgnf1rVzbfQJfgUmnB+xBl71IR8EwtJGEOrqGs3Ky/4APMda+maF6bsZLctppcz16m7Hw==", "dev": true, + "license": "ISC", "dependencies": { "aria-query": "^5.1.3", "axe-core": "^4.3.3", @@ -9623,22 +10429,10 @@ } }, "node_modules/eslint-plugin-lit-a11y/node_modules/emoji-regex": { - "version": "10.2.1", + "version": "10.3.0", "dev": true, "license": "MIT" }, - "node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/eslint-plugin-lit/node_modules/parse5": { "version": "6.0.1", "dev": true, @@ -9654,9 +10448,8 @@ }, "node_modules/eslint-plugin-wc": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.1.0.tgz", - "integrity": "sha512-s/BGOtmpgQ2yifR6EC1OM9t0DwYLgg4ZAL07Kw4eXvBb5TYaPafI+65tswvnZvhH8FqcjERLbBZPPvYsvinkfg==", "dev": true, + "license": "MIT", "dependencies": { "is-valid-element-name": "^1.0.0", "js-levenshtein-esm": "^1.2.0" @@ -9704,9 +10497,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9720,9 +10512,8 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9732,9 +10523,8 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -9845,9 +10635,8 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -9862,9 +10651,8 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9932,8 +10720,9 @@ }, "node_modules/estree-walker": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true }, "node_modules/esutils": { "version": "2.0.3", @@ -9945,6 +10734,7 @@ }, "node_modules/etag": { "version": "1.8.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9964,68 +10754,128 @@ "through": "~2.3.1" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "dev": true, "license": "MIT" }, + "node_modules/events": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { - "version": "4.1.0", + "version": "8.0.1", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/execa/node_modules/get-stream": { - "version": "5.2.0", + "version": "8.0.1", "dev": true, "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/expand-template": { - "version": "2.0.3", + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", "dev": true, - "license": "(MIT OR WTFPL)", + "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "dev": true, + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/extendable-error": { @@ -10035,6 +10885,7 @@ }, "node_modules/external-editor": { "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { "chardet": "^0.7.0", @@ -10080,13 +10931,16 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.2.12", + "node_modules/fast-fifo": { + "version": "1.3.2", "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -10106,9 +10960,8 @@ }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.13.0", @@ -10180,6 +11033,36 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.0.1", "license": "MIT", @@ -10220,43 +11103,6 @@ "dev": true, "license": "MIT" }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/find-replace": { "version": "3.0.0", "license": "MIT", @@ -10371,11 +11217,46 @@ }, "node_modules/for-each": { "version": "0.3.3", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, "node_modules/formdata-polyfill": { "version": "4.0.10", "dev": true, @@ -10389,6 +11270,7 @@ }, "node_modules/fresh": { "version": "0.5.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -10423,6 +11305,7 @@ }, "node_modules/fsevents": { "version": "2.3.2", + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10432,18 +11315,42 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/fstream": { + "version": "1.0.12", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10459,110 +11366,310 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "license": "MIT", + "node_modules/geckodriver": { + "version": "4.4.0", + "dev": true, + "hasInstallScript": true, + "license": "MPL-2.0", + "dependencies": { + "@wdio/logger": "^8.28.0", + "decamelize": "^6.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "node-fetch": "^3.3.2", + "tar-fs": "^3.0.6", + "unzipper": "^0.11.4", + "which": "^4.0.0" + }, + "bin": { + "geckodriver": "bin/geckodriver.js" + }, "engines": { - "node": ">=6.9.0" + "node": "^16.13 || >=18 || >=20" } }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/get-func-name": { - "version": "2.0.0", + "node_modules/geckodriver/node_modules/agent-base": { + "version": "7.1.1", "dev": true, "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, "engines": { - "node": "*" + "node": ">= 14" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, + "node_modules/geckodriver/node_modules/decamelize": { + "version": "6.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/get-stdin": { - "version": "5.0.1", + "node_modules/geckodriver/node_modules/https-proxy-agent": { + "version": "7.0.4", "dev": true, "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 14" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "license": "MIT", + "node_modules/geckodriver/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "license": "ISC", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "node_modules/geckodriver/node_modules/node-fetch": { + "version": "3.3.2", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" }, "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, - "node_modules/github-build": { - "version": "1.2.3", + "node_modules/geckodriver/node_modules/tar-fs": { + "version": "3.0.6", "dev": true, "license": "MIT", "dependencies": { - "axios": "0.21.3" + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, - "node_modules/github-build/node_modules/axios": { - "version": "0.21.3", + "node_modules/geckodriver/node_modules/tar-stream": { + "version": "3.1.7", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.0" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "node_modules/github-build/node_modules/follow-redirects": { - "version": "1.15.2", + "node_modules/geckodriver/node_modules/which": { + "version": "4.0.0", "dev": true, - "funding": [ - { - "type": "individual", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "dev": true, + "license": "ISC" + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-port": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "11.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/get-uri/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/get-uri/node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/github-build": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "axios": "0.21.3" + } + }, + "node_modules/github-build/node_modules/axios": { + "version": "0.21.3", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/github-build/node_modules/follow-redirects": { + "version": "1.15.2", + "dev": true, + "funding": [ + { + "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], @@ -10631,8 +11738,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -10644,26 +11751,25 @@ } }, "node_modules/globby": { - "version": "13.1.3", - "dev": true, + "version": "14.0.1", "license": "MIT", "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/slash": { - "version": "4.0.0", - "dev": true, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", "license": "MIT", "engines": { "node": ">=12" @@ -10672,8 +11778,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/slash": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -10683,24 +11800,24 @@ } }, "node_modules/got": { - "version": "11.8.5", + "version": "12.6.1", "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -10710,11 +11827,6 @@ "version": "4.2.10", "license": "ISC" }, - "node_modules/graceful-readlink": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/grapheme-splitter": { "version": "1.0.4", "dev": true, @@ -10722,9 +11834,8 @@ }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/gray-matter": { "version": "4.0.3", @@ -10786,6 +11897,7 @@ }, "node_modules/has-bigints": { "version": "1.0.2", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10801,6 +11913,7 @@ }, "node_modules/has-flag": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10808,8 +11921,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -10819,8 +11932,8 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10830,6 +11943,7 @@ }, "node_modules/has-symbols": { "version": "1.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -10840,8 +11954,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -10859,8 +11973,7 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -11064,6 +12177,7 @@ }, "node_modules/hosted-git-info": { "version": "2.8.9", + "dev": true, "license": "ISC" }, "node_modules/html-escaper": { @@ -11139,6 +12253,7 @@ }, "node_modules/http-assert": { "version": "1.5.0", + "dev": true, "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", @@ -11150,6 +12265,7 @@ }, "node_modules/http-assert/node_modules/deep-equal": { "version": "1.0.1", + "dev": true, "license": "MIT" }, "node_modules/http-cache-semantics": { @@ -11159,6 +12275,7 @@ }, "node_modules/http-errors": { "version": "1.8.1", + "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", @@ -11173,6 +12290,7 @@ }, "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -11180,6 +12298,7 @@ }, "node_modules/http-errors/node_modules/statuses": { "version": "1.5.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -11198,13 +12317,36 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/http2-wrapper": { - "version": "1.0.3", + "version": "2.2.1", "dev": true, "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -11239,19 +12381,22 @@ "license": "MIT" }, "node_modules/human-signals": { - "version": "1.1.1", + "version": "5.0.0", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=16.17.0" } }, "node_modules/husky": { - "version": "6.0.0", + "version": "9.0.11", "dev": true, "license": "MIT", "bin": { - "husky": "lib/bin.js" + "husky": "bin.mjs" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -11259,11 +12404,11 @@ }, "node_modules/ibantools": { "version": "4.3.9", - "resolved": "https://registry.npmjs.org/ibantools/-/ibantools-4.3.9.tgz", - "integrity": "sha512-PxQuxv1vq1CgOtfBZIMThZBZEi/hFMmPiAzq4QPx2rmbrUVF/p4dFqvk9e9Z+hVXZxUmdW1cgJh21lpt1UYZzg==" + "license": "MPL-2.0" }, "node_modules/iconv-lite": { "version": "0.4.24", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -11279,6 +12424,7 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "dev": true, "funding": [ { "type": "github", @@ -11296,7 +12442,7 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.2.4", + "version": "5.3.1", "license": "MIT", "engines": { "node": ">= 4" @@ -11344,6 +12490,15 @@ "node": ">=4" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "dev": true, @@ -11392,8 +12547,8 @@ }, "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -11410,8 +12565,26 @@ }, "node_modules/ip": { "version": "1.1.8", + "dev": true, "license": "MIT" }, + "node_modules/ip-address": { + "version": "9.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/irregular-plurals": { "version": "2.0.0", "dev": true, @@ -11469,8 +12642,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -11489,6 +12662,7 @@ }, "node_modules/is-bigint": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" @@ -11499,6 +12673,7 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -11509,6 +12684,7 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -11544,8 +12720,7 @@ }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -11558,6 +12733,7 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -11566,21 +12742,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -11590,8 +12754,8 @@ }, "node_modules/is-data-view": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" }, @@ -11604,6 +12768,7 @@ }, "node_modules/is-date-object": { "version": "1.0.5", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -11633,6 +12798,7 @@ }, "node_modules/is-docker": { "version": "2.2.1", + "dev": true, "license": "MIT", "bin": { "is-docker": "cli.js" @@ -11689,6 +12855,7 @@ }, "node_modules/is-generator-function": { "version": "1.0.10", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -11718,16 +12885,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-interactive": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-map": { "version": "2.0.2", "dev": true, @@ -11740,17 +12897,10 @@ "version": "1.0.0", "license": "MIT" }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-negative-zero": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11775,6 +12925,7 @@ }, "node_modules/is-number-object": { "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -11788,8 +12939,9 @@ }, "node_modules/is-obj": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11810,16 +12962,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "dev": true, @@ -11832,6 +12974,7 @@ }, "node_modules/is-regex": { "version": "1.1.4", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -11846,8 +12989,9 @@ }, "node_modules/is-regexp": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11878,8 +13022,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7" }, @@ -11892,6 +13036,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -11902,6 +13047,7 @@ }, "node_modules/is-string": { "version": "1.0.7", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -11926,6 +13072,7 @@ }, "node_modules/is-symbol": { "version": "1.0.4", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -11939,8 +13086,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" }, @@ -11991,6 +13138,7 @@ }, "node_modules/is-weakref": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -12029,6 +13177,7 @@ }, "node_modules/is-wsl": { "version": "2.2.0", + "dev": true, "license": "MIT", "dependencies": { "is-docker": "^2.0.0" @@ -12039,6 +13188,7 @@ }, "node_modules/isarray": { "version": "2.0.5", + "dev": true, "license": "MIT" }, "node_modules/isbinaryfile": { @@ -12057,13 +13207,6 @@ "dev": true, "license": "ISC" }, - "node_modules/isobject": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "dev": true, @@ -12073,16 +13216,16 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-reports": { @@ -12097,6 +13240,47 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", + "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, "node_modules/javascript-stringify": { "version": "2.1.0", "dev": true, @@ -12104,8 +13288,9 @@ }, "node_modules/jest-worker": { "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -12205,6 +13390,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, "node_modules/jsesc": { "version": "2.5.2", "license": "MIT", @@ -12227,13 +13417,19 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "dev": true, "license": "MIT" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -12251,7 +13447,7 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", + "version": "3.2.1", "dev": true, "license": "MIT" }, @@ -12263,6 +13459,14 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jstransformer": { "version": "1.0.0", "dev": true, @@ -12281,12 +13485,13 @@ } }, "node_modules/just-extend": { - "version": "4.2.1", + "version": "6.2.0", "dev": true, "license": "MIT" }, "node_modules/keygrip": { "version": "1.1.0", + "dev": true, "license": "MIT", "dependencies": { "tsscmp": "1.0.6" @@ -12296,7 +13501,7 @@ } }, "node_modules/keyv": { - "version": "4.5.2", + "version": "4.5.4", "dev": true, "license": "MIT", "dependencies": { @@ -12305,6 +13510,7 @@ }, "node_modules/kind-of": { "version": "6.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -12320,6 +13526,7 @@ }, "node_modules/koa": { "version": "2.13.4", + "dev": true, "license": "MIT", "dependencies": { "accepts": "^1.3.5", @@ -12352,10 +13559,12 @@ }, "node_modules/koa-compose": { "version": "4.1.0", + "dev": true, "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { "co": "^4.6.0", @@ -12367,6 +13576,7 @@ }, "node_modules/koa-etag": { "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { "etag": "^1.8.1" @@ -12374,6 +13584,7 @@ }, "node_modules/koa-send": { "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.1", @@ -12386,6 +13597,7 @@ }, "node_modules/koa-static": { "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { "debug": "^3.1.0", @@ -12397,6 +13609,7 @@ }, "node_modules/koa-static/node_modules/debug": { "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.1" @@ -12404,17 +13617,18 @@ }, "node_modules/koa/node_modules/statuses": { "version": "1.5.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/ky": { - "version": "0.30.0", + "version": "0.33.3", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/ky?sponsor=1" @@ -12426,11 +13640,14 @@ "license": "CC0-1.0" }, "node_modules/language-tags": { - "version": "1.0.5", + "version": "1.0.9", "dev": true, "license": "MIT", "dependencies": { - "language-subtag-registry": "~0.3.2" + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/lazy-cache": { @@ -12452,11 +13669,19 @@ "node": ">= 0.6.3" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12466,9 +13691,10 @@ } }, "node_modules/lighthouse-logger": { - "version": "1.3.0", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -12476,16 +13702,26 @@ }, "node_modules/lighthouse-logger/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/lilconfig": { + "version": "3.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=14" + } }, "node_modules/limiter": { "version": "1.1.5", @@ -12505,94 +13741,67 @@ } }, "node_modules/lint-staged": { - "version": "10.5.4", + "version": "15.2.2", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "chalk": "5.3.0", + "commander": "11.1.0", + "debug": "4.3.4", + "execa": "8.0.1", + "lilconfig": "3.0.0", + "listr2": "8.0.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.4" }, "bin": { "lint-staged": "bin/lint-staged.js" }, + "engines": { + "node": ">=18.12.0" + }, "funding": { "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "6.2.1", + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 6" - } - }, - "node_modules/lint-staged/node_modules/cosmiconfig": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/lint-staged/node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/lint-staged/node_modules/commander": { + "version": "11.1.0", "dev": true, "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, - "node_modules/lint-staged/node_modules/parse-json": { - "version": "5.2.0", + "node_modules/lint-staged/node_modules/pidtree": { + "version": "0.6.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/lint-staged/node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.3.4", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=4" + "node": ">= 14" } }, "node_modules/liquidjs": { @@ -12604,43 +13813,190 @@ } }, "node_modules/listr2": { - "version": "3.14.0", + "version": "8.0.1", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "node": ">=18.0.0" } }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.5.7", + "node_modules/listr2/node_modules/ansi-escapes": { + "version": "6.2.1", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lit": { - "version": "2.4.1", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/cli-cursor": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/log-update": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^6.2.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^7.0.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/restore-cursor": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lit": { + "version": "2.4.1", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@lit/reactive-element": "^1.4.0", "lit-element": "^3.2.0", @@ -12803,6 +14159,37 @@ "node": ">=10" } }, + "node_modules/locate-app": { + "version": "2.4.13", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/hejny/locate-app/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@promptbook/utils": "0.48.0-1", + "type-fest": "2.13.0", + "userhome": "1.0.0" + } + }, + "node_modules/locate-app/node_modules/type-fest": { + "version": "2.13.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/locate-path": { "version": "5.0.0", "dev": true, @@ -12816,15 +14203,12 @@ }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", "dev": true, "license": "MIT" }, "node_modules/lodash.assignwith": { "version": "4.2.0", + "dev": true, "license": "MIT" }, "node_modules/lodash.camelcase": { @@ -12841,23 +14225,8 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.differencewith": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", + "node_modules/lodash.get": { + "version": "4.4.2", "dev": true, "license": "MIT" }, @@ -12866,20 +14235,11 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.isobject": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -12888,40 +14248,20 @@ }, "node_modules/lodash.sortby": { "version": "4.7.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true }, "node_modules/lodash.startcase": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "node_modules/lodash.template": { - "version": "4.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.uniq": { "version": "4.5.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true }, "node_modules/lodash.zip": { "version": "4.2.0", @@ -12990,7 +14330,7 @@ } }, "node_modules/loglevel": { - "version": "1.8.1", + "version": "1.9.1", "dev": true, "license": "MIT", "engines": { @@ -13006,11 +14346,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lolex": { - "version": "4.2.0", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/longest": { "version": "1.0.1", "dev": true, @@ -13075,15 +14410,19 @@ } }, "node_modules/lowercase-keys": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -13109,27 +14448,19 @@ } }, "node_modules/make-dir": { - "version": "3.1.0", + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/map-cache": { "version": "0.2.2", "dev": true, @@ -13184,114 +14515,167 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/markdownlint": { + "version": "0.34.0", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-it": "14.1.0", + "markdownlint-micromark": "0.1.9" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, "node_modules/markdownlint-cli": { - "version": "0.17.0", + "version": "0.40.0", "dev": true, "license": "MIT", "dependencies": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "js-yaml": "^3.13.1", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.15.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" + "commander": "~12.0.0", + "get-stdin": "~9.0.0", + "glob": "~10.3.12", + "ignore": "~5.3.1", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.2.1", + "jsonpointer": "5.0.1", + "markdownlint": "~0.34.0", + "minimatch": "~9.0.4", + "run-con": "~1.3.2", + "toml": "~3.0.0" }, "bin": { "markdownlint": "markdownlint.js" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/markdownlint-cli/node_modules/commander": { - "version": "2.9.0", + "node_modules/markdownlint-cli/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" + "balanced-match": "^1.0.0" } }, - "node_modules/markdownlint-cli/node_modules/deep-extend": { - "version": "0.5.1", + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "12.0.0", "dev": true, "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/markdownlint-cli/node_modules/entities": { - "version": "1.1.2", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/markdownlint-cli/node_modules/glob": { - "version": "7.1.7", + "node_modules/markdownlint-cli/node_modules/glob": { + "version": "10.3.12", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/markdownlint-cli/node_modules/markdown-it": { - "version": "8.4.2", + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "argparse": "^2.0.1" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/markdownlint-cli/node_modules/markdownlint": { - "version": "0.15.0", + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "9.0.4", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "markdown-it": "8.4.2" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/markdownlint-cli/node_modules/minimatch": { - "version": "3.0.8", + "node_modules/markdownlint-micromark": { + "version": "0.1.9", "dev": true, - "license": "ISC", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/markdownlint/node_modules/linkify-it": { + "version": "5.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "uc.micro": "^2.0.0" + } + }, + "node_modules/markdownlint/node_modules/markdown-it": { + "version": "14.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": "*" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, + "node_modules/markdownlint/node_modules/mdurl": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/markdownlint/node_modules/uc.micro": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, "node_modules/marky": { "version": "1.2.5", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true }, "node_modules/maximatch": { "version": "0.1.0", @@ -13486,6 +14870,7 @@ }, "node_modules/media-typer": { "version": "0.3.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -13652,6 +15037,7 @@ }, "node_modules/mime-db": { "version": "1.52.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -13659,6 +15045,7 @@ }, "node_modules/mime-types": { "version": "2.1.35", + "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -13669,6 +15056,7 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -13704,7 +15092,8 @@ } }, "node_modules/minimist": { - "version": "1.2.7", + "version": "1.2.8", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13731,6 +15120,14 @@ "node": ">=0.10.0" } }, + "node_modules/minipass": { + "version": "7.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/minisearch": { "version": "3.3.0", "dev": true, @@ -13765,19 +15162,8 @@ "dev": true, "license": "MIT" }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mocha": { - "version": "10.1.0", + "version": "10.4.0", "dev": true, "license": "MIT", "dependencies": { @@ -13788,13 +15174,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -13809,10 +15194,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/ansi-colors": { @@ -13896,35 +15277,23 @@ } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", + "version": "8.1.0", "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", "dev": true, @@ -13974,17 +15343,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mocha/node_modules/nanoid": { - "version": "3.3.3", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/mocha/node_modules/p-limit": { "version": "3.1.0", "dev": true, @@ -14091,6 +15449,14 @@ "node": ">=0.10.0" } }, + "node_modules/moment": { + "version": "2.30.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/moo": { "version": "0.5.2", "dev": true, @@ -14133,6 +15499,7 @@ }, "node_modules/nanocolors": { "version": "0.2.13", + "dev": true, "license": "MIT" }, "node_modules/nanoid": { @@ -14158,6 +15525,7 @@ }, "node_modules/negotiator": { "version": "0.6.3", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -14173,29 +15541,29 @@ "dev": true, "license": "MIT" }, + "node_modules/netmask": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/nice-try": { "version": "1.0.5", "dev": true, "license": "MIT" }, "node_modules/nise": { - "version": "1.5.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^5.0.1", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/lolex": { - "version": "5.1.2", + "version": "5.1.9", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" } }, "node_modules/no-case": { @@ -14242,7 +15610,7 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", + "version": "2.7.0", "dev": true, "license": "MIT", "dependencies": { @@ -14280,7 +15648,7 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", + "version": "2.0.14", "license": "MIT" }, "node_modules/nopt": { @@ -14299,6 +15667,7 @@ }, "node_modules/normalize-package-data": { "version": "2.5.0", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", @@ -14309,6 +15678,7 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver" @@ -14316,17 +15686,18 @@ }, "node_modules/normalize-path": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "6.1.0", + "version": "8.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14335,10 +15706,6 @@ "node_modules/not": { "version": "0.1.0" }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "license": "ISC" - }, "node_modules/npm-run-all": { "version": "4.1.5", "dev": true, @@ -14489,14 +15856,28 @@ } }, "node_modules/npm-run-path": { - "version": "4.0.1", + "version": "5.3.0", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nth-check": { @@ -14551,8 +15932,8 @@ }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14574,6 +15955,7 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -14581,8 +15963,8 @@ }, "node_modules/object.assign": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -14611,9 +15993,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -14627,27 +16008,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.groupby": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -14659,9 +16023,8 @@ }, "node_modules/object.values": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -14676,6 +16039,7 @@ }, "node_modules/on-finished": { "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { "ee-first": "1.1.1" @@ -14693,6 +16057,7 @@ }, "node_modules/onetime": { "version": "5.1.2", + "dev": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -14705,10 +16070,12 @@ } }, "node_modules/only": { - "version": "0.0.2" + "version": "0.0.2", + "dev": true }, "node_modules/open": { "version": "8.4.0", + "dev": true, "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", @@ -14748,9 +16115,8 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -14763,235 +16129,164 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "6.3.0", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/outdent": { + "version": "0.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=12.20" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^2.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/ora/node_modules/chalk": { - "version": "5.2.0", + "node_modules/p-finally": { + "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", + "node_modules/p-limit": { + "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", + "node_modules/p-locate": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", + "node_modules/p-map": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "7.0.1", + "node_modules/p-queue": { + "version": "6.6.2", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/outdent": { - "version": "0.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-filter": { - "version": "2.1.0", + "node_modules/p-timeout": { + "version": "3.2.0", "dev": true, "license": "MIT", "dependencies": { - "p-map": "^2.0.0" + "p-finally": "^1.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-iteration": { - "version": "1.1.8", + "node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "4.1.0", + "node_modules/pac-proxy-agent": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/p-map": { - "version": "4.0.0", + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "debug": "^4.3.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/p-queue": { - "version": "6.6.2", + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", "dev": true, "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/p-timeout": { - "version": "3.2.0", + "node_modules/pac-resolver": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" + "degenerator": "^5.0.0", + "netmask": "^2.0.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=6" + "node": ">= 14" } }, "node_modules/param-case": { @@ -15095,9 +16390,15 @@ } }, "node_modules/parse5": { - "version": "5.1.1", - "dev": true, - "license": "MIT" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", @@ -15114,6 +16415,7 @@ }, "node_modules/parseurl": { "version": "1.3.3", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -15145,8 +16447,9 @@ }, "node_modules/path-is-inside": { "version": "1.0.2", - "dev": true, - "license": "(WTFPL OR MIT)" + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true }, "node_modules/path-key": { "version": "3.1.1", @@ -15179,21 +16482,37 @@ "node": ">=0.10.0" } }, - "node_modules/path-to-regexp": { - "version": "1.8.0", + "node_modules/path-scurry": { + "version": "1.10.2", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "isarray": "0.0.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "dev": true, + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "6.2.2", "dev": true, "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -15261,61 +16580,6 @@ "node": ">=4" } }, - "node_modules/pirates": { - "version": "4.0.5", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/playwright": { "version": "1.32.1", "dev": true, @@ -15375,8 +16639,9 @@ }, "node_modules/polyfills-loader": { "version": "1.7.6", + "resolved": "https://registry.npmjs.org/polyfills-loader/-/polyfills-loader-1.7.6.tgz", + "integrity": "sha512-AiLIgmGFmzcvsqewyKsqWb7H8CnWNTSQBoM0u+Mauzmp0DsjObXmnZdeqvTn0HNwc1wYHHTOta82WjSjG341eQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.1", "@open-wc/building-utils": "^2.18.3", @@ -15400,16 +16665,25 @@ }, "node_modules/polyfills-loader/node_modules/es-module-shims": { "version": "0.4.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-shims/-/es-module-shims-0.4.7.tgz", + "integrity": "sha512-0LTiSQoPWwdcaTVIQXhGlaDwTneD0g9/tnH1PNs3zHFFH+xoCeJclDM3rQeqF9nurXPfMKm3l9+kfPRa5VpbKg==", + "dev": true }, "node_modules/polyfills-loader/node_modules/intersection-observer": { "version": "0.7.0", - "dev": true, - "license": "W3C-20150513" + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.7.0.tgz", + "integrity": "sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==", + "dev": true + }, + "node_modules/polyfills-loader/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true }, "node_modules/portfinder": { "version": "1.0.32", + "dev": true, "license": "MIT", "dependencies": { "async": "^2.6.4", @@ -15422,6 +16696,7 @@ }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.1" @@ -15429,6 +16704,7 @@ }, "node_modules/portfinder/node_modules/mkdirp": { "version": "0.5.6", + "dev": true, "license": "MIT", "dependencies": { "minimist": "^1.2.6" @@ -15452,8 +16728,8 @@ }, "node_modules/possible-typed-array-names": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -15570,17 +16846,16 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "2.8.0", - "dev": true, - "license": "MIT", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "bin": { "prettier": "bin-prettier.js" }, @@ -15592,7 +16867,7 @@ } }, "node_modules/prettier-package-json": { - "version": "2.7.0", + "version": "2.8.0", "dev": true, "license": "MIT", "dependencies": { @@ -15720,8 +16995,9 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -15823,6 +17099,14 @@ "node": ">=6" } }, + "node_modules/process": { + "version": "0.11.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "dev": true, @@ -15875,28 +17159,77 @@ "resolved": "packages-node/providence-analytics", "link": true }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/prr": { - "version": "1.0.1", + "node_modules/proxy-agent": { + "version": "6.3.1", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/ps-tree": { - "version": "1.2.0", + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.1", "dev": true, "license": "MIT", "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" + "debug": "^4.3.4" }, "engines": { - "node": ">= 0.10" + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ps-tree": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/pseudomap": { @@ -16107,60 +17440,46 @@ }, "node_modules/punycode": { "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/puppeteer-core": { - "version": "13.7.0", + "node_modules/punycode.js": { + "version": "2.3.1", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, + "license": "MIT", "engines": { - "node": ">=10.18.1" + "node": ">=6" } }, - "node_modules/puppeteer-core/node_modules/pkg-dir": { - "version": "4.2.0", + "node_modules/puppeteer-core": { + "version": "20.9.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "find-up": "^4.0.0" + "@puppeteer/browsers": "1.4.6", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1147663", + "ws": "8.13.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer-core/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" + "node": ">=16.3.0" }, - "bin": { - "rimraf": "bin.js" + "peerDependencies": { + "typescript": ">= 4.7.4" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.5.0", + "version": "8.13.0", "dev": true, "license": "MIT", "engines": { @@ -16168,7 +17487,7 @@ }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -16224,6 +17543,11 @@ ], "license": "MIT" }, + "node_modules/queue-tick": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, "node_modules/quick-lru": { "version": "4.0.1", "dev": true, @@ -16307,25 +17631,6 @@ "node": ">=0.10.0" } }, - "node_modules/read-package-json": { - "version": "2.1.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "license": "ISC", - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, "node_modules/read-pkg": { "version": "3.0.0", "dev": true, @@ -16460,7 +17765,7 @@ "license": "MIT" }, "node_modules/readdir-glob": { - "version": "1.1.2", + "version": "1.1.3", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16476,7 +17781,7 @@ } }, "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.0", + "version": "5.1.6", "dev": true, "license": "ISC", "dependencies": { @@ -16486,18 +17791,9 @@ "node": ">=10" } }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, "node_modules/readdirp": { "version": "3.6.0", + "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -16600,8 +17896,8 @@ }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -16901,6 +18197,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "dev": true, @@ -16926,8 +18231,7 @@ }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -16955,6 +18259,7 @@ }, "node_modules/resolve-path": { "version": "1.4.0", + "dev": true, "license": "MIT", "dependencies": { "http-errors": "~1.6.2", @@ -16966,6 +18271,7 @@ }, "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -16973,6 +18279,7 @@ }, "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", + "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", @@ -16986,14 +18293,17 @@ }, "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", + "dev": true, "license": "ISC" }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", + "dev": true, "license": "ISC" }, "node_modules/resolve-path/node_modules/statuses": { "version": "1.5.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -17040,18 +18350,21 @@ "license": "MIT" }, "node_modules/responselike": { - "version": "2.0.1", + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/resq": { - "version": "1.10.2", + "version": "1.11.0", "dev": true, "license": "MIT", "dependencies": { @@ -17092,7 +18405,7 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", + "version": "1.3.1", "dev": true, "license": "MIT" }, @@ -17137,7 +18450,9 @@ }, "node_modules/rollup": { "version": "2.79.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "devOptional": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -17148,74 +18463,91 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-babel": { - "version": "4.4.0", + "node_modules/rollup-plugin-workbox": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-workbox/-/rollup-plugin-workbox-6.2.2.tgz", + "integrity": "sha512-USWzCnzYzgJ/FwEAaiq+7RVptD0gnmm60YN8aU+w4z+eTnppgvJ4spFoUBygIoJqK+4U//b8dF+aptnD6lnFWA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - }, - "peerDependencies": { - "@babel/core": "7 || ^7.0.0-rc.2", - "rollup": ">=0.60.0 <3" + "@rollup/plugin-node-resolve": "^11.0.1", + "@rollup/plugin-replace": "^5.0.2", + "pretty-bytes": "^5.5.0", + "rollup-plugin-terser": "^7.0.2", + "workbox-build": "^6.2.4" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", + "node_modules/rollup-plugin-workbox/node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" }, "peerDependencies": { - "rollup": "^2.0.0" + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/rollup-plugin-terser/node_modules/terser": { - "version": "5.15.1", + "node_modules/rollup-plugin-workbox/node_modules/@rollup/plugin-replace": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz", + "integrity": "sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" }, "engines": { - "node": ">=10" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/rollup-plugin-workbox": { - "version": "5.2.1", + "node_modules/rollup-plugin-workbox/node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/plugin-node-resolve": "^8.4.0", - "@rollup/plugin-replace": "^2.3.3", - "pretty-bytes": "^5.3.0", - "rollup-plugin-terser": "^6.1.0", - "workbox-build": "^5.0.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/rollup-plugin-workbox/node_modules/@rollup/plugin-node-resolve": { - "version": "8.4.0", + "node_modules/rollup-plugin-workbox/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deep-freeze": "^0.0.1", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.17.0" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" }, "engines": { "node": ">= 8.0.0" @@ -17224,54 +18556,96 @@ "rollup": "^1.20.0||^2.0.0" } }, + "node_modules/rollup-plugin-workbox/node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/rollup-plugin-workbox/node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "node_modules/rollup-plugin-workbox/node_modules/@types/resolve": { "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/rollup-plugin-workbox/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/rollup-plugin-workbox/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "node_modules/rollup-plugin-workbox/node_modules/rollup-plugin-terser": { - "version": "6.1.0", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.8.3", - "jest-worker": "^26.0.0", - "serialize-javascript": "^3.0.0", - "terser": "^4.7.0" + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" }, "peerDependencies": { "rollup": "^2.0.0" } }, - "node_modules/rollup-plugin-workbox/node_modules/serialize-javascript": { - "version": "3.1.0", + "node_modules/rollup-plugin-workbox/node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "randombytes": "^2.1.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", + "node_modules/run-con": { + "version": "1.3.2", "dev": true, - "license": "MIT", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { - "estree-walker": "^0.6.1" + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" } }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", + "node_modules/run-con/node_modules/ini": { + "version": "4.1.2", "dev": true, - "license": "MIT" - }, - "node_modules/run-async": { - "version": "2.4.1", - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=0.12.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/run-parallel": { @@ -17311,10 +18685,15 @@ "npm": ">=2.0.0" } }, + "node_modules/safaridriver": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, "node_modules/safe-array-concat": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", @@ -17330,6 +18709,7 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "dev": true, "funding": [ { "type": "github", @@ -17348,8 +18728,8 @@ }, "node_modules/safe-regex-test": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -17364,6 +18744,7 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", + "dev": true, "license": "MIT" }, "node_modules/sax-wasm": { @@ -17384,11 +18765,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "bin": { "semver": "bin/semver.js" }, @@ -17483,25 +18862,25 @@ } }, "node_modules/serialize-error": { - "version": "8.1.0", + "version": "11.0.3", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "type-fest": "^2.12.2" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.20.2", + "version": "2.19.0", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -17509,8 +18888,9 @@ }, "node_modules/serialize-javascript": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -17611,8 +18991,8 @@ }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -17627,8 +19007,8 @@ }, "node_modules/set-function-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -17641,6 +19021,7 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", + "dev": true, "license": "ISC" }, "node_modules/shady-css-scoped-element": { @@ -17648,16 +19029,6 @@ "dev": true, "license": "MIT" }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/sharp": { "version": "0.29.3", "dev": true, @@ -17716,12 +19087,18 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -17734,6 +19111,7 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "dev": true, "license": "ISC" }, "node_modules/simple-concat": { @@ -17797,65 +19175,65 @@ "link": true }, "node_modules/sinon": { - "version": "7.5.0", + "version": "17.0.2", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.3", - "diff": "^3.5.0", - "lolex": "^4.2.0", - "nise": "^1.5.2", - "supports-color": "^5.5.0" - } - }, - "node_modules/sinon/node_modules/diff": { - "version": "3.5.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.2.0", + "nise": "^5.1.9", + "supports-color": "^7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "node_modules/sinon/node_modules/has-flag": { + "node_modules/slash": { "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/sinon/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/slice-ansi": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slash": { - "version": "3.0.0", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/slugify": { @@ -17866,6 +19244,15 @@ "node": ">=8.0.0" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/smartwrap": { "version": "2.0.2", "dev": true, @@ -17989,6 +19376,43 @@ "node": ">=10.0.0" } }, + "node_modules/socks": { + "version": "2.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/sort-object-keys": { "version": "1.1.3", "dev": true, @@ -18001,6 +19425,7 @@ }, "node_modules/source-map": { "version": "0.6.1", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -18008,17 +19433,13 @@ }, "node_modules/source-map-support": { "version": "0.5.21", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, "node_modules/sourcemap-codec": { "version": "1.4.8", "dev": true, @@ -18033,6 +19454,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/spacetrim": { + "version": "0.11.23", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://buymeacoffee.com/hejny" + }, + { + "type": "github", + "url": "https://github.com/hejny/spacetrim/blob/main/README.md#%EF%B8%8F-contributing" + } + ], + "license": "SEE LICENSE IN LICENSE" + }, "node_modules/spawndamnit": { "version": "2.0.0", "dev": true, @@ -18098,6 +19534,7 @@ }, "node_modules/spdx-correct": { "version": "3.1.1", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -18106,10 +19543,12 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", + "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -18118,6 +19557,7 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.12", + "dev": true, "license": "CC0-1.0" }, "node_modules/split": { @@ -18131,19 +19571,19 @@ "node": "*" } }, + "node_modules/split2": { + "version": "4.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "dev": true, "license": "BSD-3-Clause" }, - "node_modules/ssl-root-cas": { - "version": "1.3.1", - "dev": true, - "license": "Apache2", - "dependencies": { - "@coolaj86/urequest": "^1.3.6" - } - }, "node_modules/statuses": { "version": "1.3.1", "dev": true, @@ -18152,62 +19592,6 @@ "node": ">= 0.6" } }, - "node_modules/stdin-discarder": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "bl": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stdin-discarder/node_modules/bl": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/stdin-discarder/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/stdin-discarder/node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/stream-combiner": { "version": "0.0.4", "dev": true, @@ -18218,6 +19602,7 @@ }, "node_modules/stream-read-all": { "version": "3.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -18246,8 +19631,21 @@ "mixme": "^0.5.1" } }, + "node_modules/streamx": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" @@ -18255,10 +19653,11 @@ }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", + "dev": true, "license": "MIT" }, "node_modules/string-argv": { - "version": "0.3.1", + "version": "0.3.2", "dev": true, "license": "MIT", "engines": { @@ -18278,11 +19677,56 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, "license": "MIT" }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.padend": { "version": "3.1.4", "dev": true, @@ -18301,8 +19745,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -18318,8 +19762,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -18331,8 +19775,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -18361,8 +19805,9 @@ }, "node_modules/stringify-object": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -18383,7 +19828,19 @@ "node": ">=8" } }, - "node_modules/strip-bom": { + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -18400,23 +19857,23 @@ } }, "node_modules/strip-comments": { - "version": "1.0.2", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", "dev": true, - "license": "MIT", - "dependencies": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - }, "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/strip-final-newline": { - "version": "2.0.0", + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-indent": { @@ -18451,6 +19908,7 @@ }, "node_modules/supports-color": { "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -18469,19 +19927,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swc-to-babel": { - "version": "1.26.0", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.18.13", - "@babel/traverse": "^7.1.6", - "@babel/types": "^7.2.0", - "@swc/core": "^1.2.242" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/symbol-observable": { "version": "1.0.1", "dev": true, @@ -18565,11 +20010,12 @@ } }, "node_modules/temp-dir": { - "version": "1.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/temp-fs": { @@ -18595,24 +20041,33 @@ } }, "node_modules/tempy": { - "version": "0.3.0", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", "dev": true, - "license": "MIT", "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tempy/node_modules/type-fest": { - "version": "0.3.1", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/term-size": { @@ -18649,6 +20104,7 @@ }, "node_modules/through": { "version": "2.3.8", + "dev": true, "license": "MIT" }, "node_modules/time-require": { @@ -18698,6 +20154,7 @@ }, "node_modules/tmp": { "version": "0.0.33", + "dev": true, "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" @@ -18725,6 +20182,7 @@ }, "node_modules/toidentifier": { "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.6" @@ -18735,10 +20193,16 @@ "dev": true, "license": "MIT" }, + "node_modules/toml": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/tr46": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, - "license": "MIT", "dependencies": { "punycode": "^2.1.0" } @@ -18761,9 +20225,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -18773,9 +20236,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -18785,10 +20247,12 @@ }, "node_modules/tslib": { "version": "2.4.1", + "dev": true, "license": "0BSD" }, "node_modules/tsscmp": { "version": "1.0.6", + "dev": true, "license": "MIT", "engines": { "node": ">=0.6.x" @@ -18827,9 +20291,8 @@ }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -18858,6 +20321,7 @@ }, "node_modules/type-is": { "version": "1.6.18", + "dev": true, "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -18869,8 +20333,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -18882,8 +20346,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -18900,8 +20364,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -18919,8 +20383,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -18943,9 +20407,8 @@ }, "node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18984,11 +20447,6 @@ "dev": true, "license": "MIT" }, - "node_modules/udc": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/uglify-js": { "version": "3.17.4", "dev": true, @@ -19009,6 +20467,7 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -19037,16 +20496,10 @@ "node": ">=0.10.0" } }, - "node_modules/underscore": { - "version": "1.13.6", - "dev": true, - "license": "MIT" - }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -19084,6 +20537,16 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { "version": "9.2.2", "license": "MIT", @@ -19108,14 +20571,15 @@ } }, "node_modules/unique-string": { - "version": "1.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, - "license": "MIT", "dependencies": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/unist-builder": { @@ -19251,17 +20715,30 @@ "node": ">= 0.8" } }, + "node_modules/unzipper": { + "version": "0.11.5", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.17", + "bluebird": "~3.4.1", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2" + } + }, "node_modules/upath": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", + "version": "1.0.15", "funding": [ { "type": "opencollective", @@ -19270,15 +20747,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "escalade": "^3.1.1", + "escalade": "^3.1.2", "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -19286,17 +20767,23 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, "node_modules/useragent": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, - "license": "MIT", "dependencies": { "lru-cache": "4.1.x", "tmp": "0.0.x" @@ -19304,8 +20791,9 @@ }, "node_modules/useragent/node_modules/lru-cache": { "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, - "license": "ISC", "dependencies": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -19313,8 +20801,16 @@ }, "node_modules/useragent/node_modules/yallist": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/userhome": { + "version": "1.0.0", "dev": true, - "license": "ISC" + "engines": { + "node": ">= 0.8.0" + } }, "node_modules/utf8": { "version": "3.0.0", @@ -19323,15 +20819,9 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "dev": true, "license": "MIT" }, - "node_modules/util-promisify": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, "node_modules/utils-merge": { "version": "1.0.1", "dev": true, @@ -19340,14 +20830,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "dev": true, @@ -19367,6 +20849,7 @@ }, "node_modules/validate-npm-package-license": { "version": "3.0.4", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -19375,6 +20858,7 @@ }, "node_modules/vary": { "version": "1.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -19423,8 +20907,33 @@ "node": ">=0.10.0" } }, + "node_modules/wait-port": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "commander": "^9.3.0", + "debug": "^4.3.4" + }, + "bin": { + "wait-port": "bin/wait-port.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wait-port/node_modules/commander": { + "version": "9.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/wcwidth": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "defaults": "^1.0.3" @@ -19448,113 +20957,112 @@ } }, "node_modules/webdriver": { - "version": "7.26.0", + "version": "8.36.1", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "^18.0.0", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "got": "^11.0.2", - "ky": "0.30.0", - "lodash.merge": "^4.6.1" + "@types/node": "^20.1.0", + "@types/ws": "^8.5.3", + "@wdio/config": "8.36.1", + "@wdio/logger": "8.28.0", + "@wdio/protocols": "8.32.0", + "@wdio/types": "8.36.1", + "@wdio/utils": "8.36.1", + "deepmerge-ts": "^5.1.0", + "got": "^12.6.1", + "ky": "^0.33.0", + "ws": "^8.8.0" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" } }, "node_modules/webdriver/node_modules/@types/node": { - "version": "18.11.9", + "version": "20.12.11", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } }, - "node_modules/webdriver/node_modules/@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", + "node_modules/webdriver/node_modules/@types/ws": { + "version": "8.5.10", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - }, + "@types/node": "*" + } + }, + "node_modules/webdriver/node_modules/ws": { + "version": "8.17.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">=10.0.0" }, "peerDependencies": { - "typescript": "^4.6.2" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "typescript": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, "node_modules/webdriverio": { - "version": "7.26.0", + "version": "8.36.1", "dev": true, "license": "MIT", "dependencies": { - "@types/aria-query": "^5.0.0", - "@types/node": "^18.0.0", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/repl": "7.26.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "archiver": "^5.0.0", + "@types/node": "^20.1.0", + "@wdio/config": "8.36.1", + "@wdio/logger": "8.28.0", + "@wdio/protocols": "8.32.0", + "@wdio/repl": "8.24.12", + "@wdio/types": "8.36.1", + "@wdio/utils": "8.36.1", + "archiver": "^7.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools": "7.26.0", - "devtools-protocol": "^0.0.1069585", - "fs-extra": "^10.0.0", + "devtools-protocol": "^0.0.1282316", "grapheme-splitter": "^1.0.2", + "import-meta-resolve": "^4.0.0", + "is-plain-obj": "^4.1.0", "lodash.clonedeep": "^4.5.0", - "lodash.isobject": "^3.0.2", - "lodash.isplainobject": "^4.0.6", "lodash.zip": "^4.2.0", - "minimatch": "^5.0.0", - "puppeteer-core": "^13.1.3", + "minimatch": "^9.0.0", + "puppeteer-core": "^20.9.0", "query-selector-shadow-dom": "^1.0.0", "resq": "^1.9.1", "rgb2hex": "0.2.5", - "serialize-error": "^8.0.0", - "webdriver": "7.26.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/webdriverio/node_modules/@types/node": { - "version": "18.11.9", - "dev": true, - "license": "MIT" - }, - "node_modules/webdriverio/node_modules/@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "dependencies": { - "@types/node": "^18.0.0", - "got": "^11.8.1" + "serialize-error": "^11.0.1", + "webdriver": "8.36.1" }, "engines": { - "node": ">=12.0.0" + "node": "^16.13 || >=18" }, "peerDependencies": { - "typescript": "^4.6.2" + "devtools": "^8.14.0" }, "peerDependenciesMeta": { - "typescript": { + "devtools": { "optional": true } } }, + "node_modules/webdriverio/node_modules/@types/node": { + "version": "20.12.11", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/webdriverio/node_modules/brace-expansion": { "version": "2.0.1", "dev": true, @@ -19564,57 +21072,40 @@ } }, "node_modules/webdriverio/node_modules/devtools-protocol": { - "version": "0.0.1069585", + "version": "0.0.1282316", "dev": true, "license": "BSD-3-Clause" }, - "node_modules/webdriverio/node_modules/fs-extra": { - "version": "10.1.0", + "node_modules/webdriverio/node_modules/is-plain-obj": { + "version": "4.1.0", "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, "engines": { "node": ">=12" - } - }, - "node_modules/webdriverio/node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/webdriverio/node_modules/minimatch": { - "version": "5.1.0", + "version": "9.0.4", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/webdriverio/node_modules/universalify": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webidl-conversions": { "version": "4.0.2", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true }, "node_modules/whatwg-fetch": { "version": "3.6.2", @@ -19623,8 +21114,9 @@ }, "node_modules/whatwg-url": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, - "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -19647,6 +21139,7 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", @@ -19692,8 +21185,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -19716,7 +21209,7 @@ } }, "node_modules/wireit": { - "version": "0.7.3", + "version": "0.14.4", "dev": true, "license": "Apache-2.0", "workspaces": [ @@ -19809,361 +21302,405 @@ } }, "node_modules/workbox-background-sync": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "idb": "^7.0.1", + "workbox-core": "6.6.0" } }, - "node_modules/workbox-background-sync/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/workbox-broadcast-update": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workbox-build": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", "common-tags": "^1.8.0", "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", + "fs-extra": "^9.0.1", "glob": "^7.1.6", - "lodash.template": "^4.5.0", + "lodash": "^4.17.20", "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, - "node_modules/workbox-build/node_modules/acorn": { - "version": "7.4.1", + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" } }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "8.1.0", + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" }, "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/workbox-build/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } } }, - "node_modules/workbox-build/node_modules/jest-worker": { - "version": "24.9.0", + "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", "dev": true, - "license": "MIT", "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">= 6" + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/workbox-build/node_modules/rollup": { - "version": "1.32.1", + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" }, - "bin": { - "rollup": "dist/bin/rollup" + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/workbox-build/node_modules/rollup-plugin-terser": { - "version": "5.3.1", + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" }, "peerDependencies": { - "rollup": ">=0.66.0 <3" + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.7.4", + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/workbox-build/node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" + "dependencies": { + "@types/node": "*" } }, - "node_modules/workbox-build/node_modules/supports-color": { - "version": "6.1.0", + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" }, - "engines": { - "node": ">=6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/workbox-build/node_modules/workbox-broadcast-update": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/workbox-build/node_modules/workbox-cacheable-response": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/workbox-build/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/workbox-build/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/workbox-expiration": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" } }, - "node_modules/workbox-build/node_modules/workbox-routing": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/workbox-build/node_modules/workbox-strategies": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "node_modules/workbox-build/node_modules/workbox-window": { - "version": "5.1.4", + "node_modules/workbox-build/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" + "engines": { + "node": ">= 10.0.0" } }, "node_modules/workbox-cacheable-response": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workbox-core": { - "version": "6.5.4", - "dev": true, - "license": "MIT" + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "dev": true }, "node_modules/workbox-expiration": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", "dev": true, - "license": "MIT", "dependencies": { "idb": "^7.0.1", - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workbox-google-analytics": { - "version": "5.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - } - }, - "node_modules/workbox-google-analytics/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-google-analytics/node_modules/workbox-routing": { - "version": "5.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-google-analytics/node_modules/workbox-strategies": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" } }, "node_modules/workbox-navigation-preload": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "workbox-core": "6.6.0" } }, - "node_modules/workbox-navigation-preload/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/workbox-precaching": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" } }, - "node_modules/workbox-precaching/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/workbox-range-requests": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "workbox-core": "6.6.0" } }, - "node_modules/workbox-range-requests/node_modules/workbox-core": { - "version": "5.1.4", + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", "dev": true, - "license": "MIT" + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } }, "node_modules/workbox-routing": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workbox-strategies": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workbox-streams": { - "version": "5.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "node_modules/workbox-streams/node_modules/workbox-core": { - "version": "5.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-streams/node_modules/workbox-routing": { - "version": "5.1.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", "dev": true, - "license": "MIT", "dependencies": { - "workbox-core": "^5.1.4" + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" } }, "node_modules/workbox-sw": { - "version": "5.1.4", - "dev": true, - "license": "MIT" + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "dev": true }, "node_modules/workbox-window": { - "version": "6.5.4", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", "dev": true, - "license": "MIT", "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.4" + "workbox-core": "6.6.0" } }, "node_modules/workerpool": { @@ -20187,12 +21724,30 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "license": "ISC" }, "node_modules/ws": { "version": "7.5.9", + "dev": true, "license": "MIT", "engines": { "node": ">=8.3.0" @@ -20235,6 +21790,7 @@ }, "node_modules/yallist": { "version": "4.0.0", + "dev": true, "license": "ISC" }, "node_modules/yaml": { @@ -20247,10 +21803,12 @@ }, "node_modules/yamlparser": { "version": "0.0.2", + "resolved": "https://registry.npmjs.org/yamlparser/-/yamlparser-0.0.2.tgz", + "integrity": "sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ==", "dev": true }, "node_modules/yargs": { - "version": "17.6.2", + "version": "17.7.1", "dev": true, "license": "MIT", "dependencies": { @@ -20344,8 +21902,17 @@ "fd-slicer": "~1.1.0" } }, + "node_modules/yauzl/node_modules/buffer-crc32": { + "version": "0.2.13", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/ylru": { "version": "1.3.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -20363,37 +21930,79 @@ } }, "node_modules/zip-stream": { - "version": "4.1.0", + "version": "6.0.1", "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/zip-stream/node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.0", + "version": "4.5.2", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/zwitch": { - "version": "1.0.5", + "node_modules/zip-stream/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "packages-node/babel-plugin-extend-docs": { @@ -20405,16395 +22014,633 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@babel/generator": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.22.5", - "es-module-lexer": "^0.3.6", - "globby": "^13.2.0", + "@babel/generator": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "es-module-lexer": "^0.3.26", + "globby": "^14.0.1", "prettier": "^2.8.8" } }, - "packages-node/nodejs-helpers/node_modules/@babel/code-frame": { - "version": "7.22.13", + "packages-node/providence-analytics": { + "version": "0.15.3", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/parser": "^7.24.5", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "@putout/babel": "^2.4.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@swc/core": "^1.5.5", + "commander": "^2.20.3", + "parse5": "^7.1.2", + "semver": "^7.6.2" }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/nodejs-helpers/node_modules/@babel/generator": { - "version": "7.23.0", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "bin": { + "providence": "src/cli/index.js" + }, + "devDependencies": { + "@types/chai": "^4.3.16", + "@types/inquirer": "^9.0.7", + "@types/mocha": "^10.0.6", + "@web/dev-server": "^0.4.4", + "@web/dev-server-core": "^0.7.1", + "globby": "^14.0.1", + "lit-element": "^4.0.5", + "mock-fs": "^5.2.0", + "mock-require": "^3.0.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=18.0.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", + "packages-node/providence-analytics/node_modules/@babel/compat-data": { + "version": "7.23.2", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-function-name": { - "version": "7.23.0", + "packages-node/providence-analytics/node_modules/@babel/core": { + "version": "7.23.2", "license": "MIT", + "peer": true, "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "packages-node/providence-analytics/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", + "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", "license": "MIT", + "peer": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" } }, - "packages-node/nodejs-helpers/node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "packages-node/nodejs-helpers/node_modules/@babel/highlight": { - "version": "7.22.20", + "packages-node/providence-analytics/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/parser": { + "packages-node/providence-analytics/node_modules/@babel/helper-module-transforms": { "version": "7.23.0", "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/template": { - "version": "7.22.15", + "packages-node/providence-analytics/node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/traverse": { - "version": "7.23.2", + "packages-node/providence-analytics/node_modules/@babel/helper-simple-access": { + "version": "7.22.5", "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@babel/types": { - "version": "7.23.0", + "packages-node/providence-analytics/node_modules/@babel/helper-validator-option": { + "version": "7.22.15", "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, + "peer": true, "engines": { "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", + "packages-node/providence-analytics/node_modules/@babel/helpers": { + "version": "7.23.2", "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/ansi-styles": { - "version": "3.2.1", + "packages-node/providence-analytics/node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "packages-node/nodejs-helpers/node_modules/chalk": { - "version": "2.4.2", + "packages-node/providence-analytics/node_modules/@babel/template": { + "version": "7.22.15", "license": "MIT", + "peer": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "packages-node/nodejs-helpers/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", + "packages-node/providence-analytics/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "color-name": "1.1.3" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "packages-node/nodejs-helpers/node_modules/color-name": { - "version": "1.1.3", + "packages-node/providence-analytics/node_modules/@putout/babel": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@putout/babel/-/babel-2.4.0.tgz", + "integrity": "sha512-o2nsxmyOI206J4NdyCRg78pwhBRLGvBp/UktOG3XZyxGGOwKYS/+zl24004ZUPBF0xY+VwxyPrq4WN1kIhv42A==", + "engines": { + "node": ">=16" + } + }, + "packages-node/providence-analytics/node_modules/@types/chai": { + "version": "4.3.16", + "dev": true, "license": "MIT" }, - "packages-node/nodejs-helpers/node_modules/escape-string-regexp": { - "version": "1.0.5", + "packages-node/providence-analytics/node_modules/@types/inquirer": { + "version": "9.0.7", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.0" + "dependencies": { + "@types/through": "*", + "rxjs": "^7.2.0" } }, - "packages-node/nodejs-helpers/node_modules/fast-glob": { - "version": "3.3.2", + "packages-node/providence-analytics/node_modules/@web/dev-server-core": { + "version": "0.7.1", + "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.1.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^8.0.4", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" }, "engines": { - "node": ">=8.6.0" + "node": ">=18.0.0" } }, - "packages-node/nodejs-helpers/node_modules/globby": { - "version": "13.2.2", + "packages-node/providence-analytics/node_modules/@web/dev-server-core/node_modules/parse5": { + "version": "6.0.1", + "dev": true, + "license": "MIT" + }, + "packages-node/providence-analytics/node_modules/@web/parse5-utils": { + "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.0.0" } }, - "packages-node/nodejs-helpers/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "packages-node/providence-analytics/node_modules/@web/parse5-utils/node_modules/parse5": { + "version": "6.0.1", + "dev": true, + "license": "MIT" }, - "packages-node/nodejs-helpers/node_modules/prettier": { - "version": "2.8.8", + "packages-node/providence-analytics/node_modules/browserslist": { + "version": "4.22.1", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, "bin": { - "prettier": "bin-prettier.js" + "browserslist": "cli.js" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "packages-node/nodejs-helpers/node_modules/slash": { - "version": "4.0.0", + "packages-node/providence-analytics/node_modules/caniuse-lite": { + "version": "1.0.30001561", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, + "packages-node/providence-analytics/node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT", + "peer": true + }, + "packages-node/providence-analytics/node_modules/electron-to-chromium": { + "version": "1.4.578", + "license": "ISC", + "peer": true + }, + "packages-node/providence-analytics/node_modules/es-module-lexer": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "packages-node/providence-analytics/node_modules/isbinaryfile": { + "version": "5.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 18.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/gjtorikian/" } }, - "packages-node/nodejs-helpers/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", + "packages-node/providence-analytics/node_modules/lit-element": { + "version": "4.0.5", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "has-flag": "^3.0.0" - }, + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" + } + }, + "packages-node/providence-analytics/node_modules/lit-html": { + "version": "3.1.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "packages-node/providence-analytics/node_modules/lru-cache": { + "version": "8.0.5", + "dev": true, + "license": "ISC", "engines": { - "node": ">=4" + "node": ">=16.14" } }, - "packages-node/providence-analytics": { - "version": "0.15.3", - "hasInstallScript": true, + "packages-node/providence-analytics/node_modules/node-releases": { + "version": "2.0.13", "license": "MIT", + "peer": true + }, + "packages-node/providence-analytics/node_modules/rxjs": { + "version": "7.8.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.21.4", - "@babel/parser": "^7.21.4", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-syntax-export-default-from": "^7.18.6", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/register": "^7.21.0", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "@rollup/plugin-node-resolve": "^15.0.2", - "@swc/core": "^1.3.46", - "@web/dev-server": "^0.4.2", - "anymatch": "^3.1.3", - "commander": "^2.20.3", - "glob": "^8.1.0", - "inquirer": "^9.1.5", - "is-negated-glob": "^1.0.0", - "lit-element": "~3.3.1", - "parse5": "^7.1.2", - "read-package-tree": "5.3.1", - "semver": "^7.3.8", - "swc-to-babel": "^1.26.0" + "tslib": "^2.1.0" + } + }, + "packages-node/providence-analytics/node_modules/update-browserslist-db": { + "version": "1.0.13", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, "bin": { - "providence": "src/cli/index.js" + "update-browserslist-db": "cli.js" }, - "devDependencies": { - "@types/chai": "^4.3.4", - "@types/inquirer": "^9.0.3", - "@types/mocha": "^10.0.1", - "@web/dev-server-core": "^0.4.0", - "mock-fs": "^5.2.0", - "mock-require": "^3.0.3" + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "packages-node/providence-analytics/node_modules/@babel/code-frame": { - "version": "7.22.13", + "packages-node/providence-analytics/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC", + "peer": true + }, + "packages-node/publish-docs": { + "version": "0.2.1", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "command-line-args": "^5.1.1", + "fs-extra": "^9.0.0", + "glob": "^7.1.6" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "publish-docs": "src/cli.js" } }, - "packages-node/providence-analytics/node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", + "packages-node/publish-docs/node_modules/fs-extra": { + "version": "9.1.0", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "packages-node/providence-analytics/node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", + "packages-node/publish-docs/node_modules/jsonfile": { + "version": "6.1.0", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=4" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "packages-node/providence-analytics/node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", + "packages-node/publish-docs/node_modules/universalify": { + "version": "2.0.0", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 10.0.0" } }, - "packages-node/providence-analytics/node_modules/@babel/compat-data": { - "version": "7.23.2", + "packages-node/remark-extend": { + "version": "0.5.2", "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "not": "^0.1.0", + "remark-gfm": "^1.0.0", + "remark-parse": "^9.0.0", + "unified": "^9.2.0", + "unist-util-is": "^4.0.2", + "unist-util-select": "^3.0.1", + "unist-util-visit": "^2.0.2" } }, - "packages-node/providence-analytics/node_modules/@babel/core": { - "version": "7.23.2", + "packages-node/remark-extend/node_modules/unist-util-select": { + "version": "3.0.4", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "css-selector-parser": "^1.0.0", + "not": "^0.1.0", + "nth-check": "^2.0.0", + "unist-util-is": "^4.0.0", + "zwitch": "^1.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "packages-node/providence-analytics/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "url": "https://opencollective.com/unified" } }, - "packages-node/providence-analytics/node_modules/@babel/generator": { - "version": "7.23.0", + "packages-node/rocket-preset-extend-lion-docs": { + "version": "0.4.0", "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" + "@babel/core": "^7.10.1", + "@babel/plugin-syntax-import-assertions": "^7.14.5", + "babel-plugin-extend-docs": "^0.5.3", + "es-module-lexer": "^0.3.6", + "glob": "^7.1.6", + "plugins-manager": "^0.3.0", + "remark-extend": "^0.5.1", + "unist-util-visit": "^2.0.2" } }, - "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", + "packages-node/rocket-preset-extend-lion-docs/node_modules/brace-expansion": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "balanced-match": "^1.0.0" } }, - "packages-node/providence-analytics/node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", + "packages-node/rocket-preset-extend-lion-docs/node_modules/glob": { + "version": "8.0.3", "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" + "node": ">=12" }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "packages-node/providence-analytics/node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "packages-node/providence-analytics/node_modules/@babel/helpers": { - "version": "7.23.2", - "license": "MIT", + "packages-node/rocket-preset-extend-lion-docs/node_modules/minimatch": { + "version": "5.1.0", + "license": "ISC", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" } }, - "packages-node/providence-analytics/node_modules/@babel/highlight": { - "version": "7.22.20", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } + "packages/ajax": { + "name": "@lion/ajax", + "version": "2.0.2", + "license": "MIT" }, - "packages-node/providence-analytics/node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } + "packages/singleton-manager": { + "version": "1.7.0", + "license": "MIT" }, - "packages-node/providence-analytics/node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", + "packages/ui": { + "name": "@lion/ui", + "version": "0.7.2", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages-node/providence-analytics/node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "@bundled-es-modules/message-format": "^6.2.4", + "@open-wc/dedupe-mixin": "^1.4.0", + "@open-wc/scoped-elements": "^3.0.5", + "@popperjs/core": "^2.11.8", + "autosize": "^6.0.0", + "awesome-phonenumber": "^6.4.0", + "ibantools": "^4.3.9", + "lit": "^3.1.2", + "singleton-manager": "^1.7.0" } }, - "packages-node/providence-analytics/node_modules/@babel/parser": { - "version": "7.23.0", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "packages/ui/node_modules/@bundled-es-modules/message-format": { + "version": "6.2.4" }, - "packages-node/providence-analytics/node_modules/@babel/register": { - "version": "7.21.0", - "license": "MIT", + "packages/ui/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "license": "BSD-3-Clause", "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "packages-node/providence-analytics/node_modules/@babel/template": { - "version": "7.22.15", + "packages/ui/node_modules/@popperjs/core": { + "version": "2.11.8", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "packages-node/providence-analytics/node_modules/@babel/traverse": { - "version": "7.23.2", - "license": "MIT", + "packages/ui/node_modules/lit": { + "version": "3.1.2", + "license": "BSD-3-Clause", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.0.4", + "lit-html": "^3.1.2" } }, - "packages-node/providence-analytics/node_modules/@babel/types": { - "version": "7.23.0", - "license": "MIT", + "packages/ui/node_modules/lit-element": { + "version": "4.0.4", + "license": "BSD-3-Clause", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" } }, - "packages-node/providence-analytics/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "license": "MIT", + "packages/ui/node_modules/lit-html": { + "version": "3.1.2", + "license": "BSD-3-Clause", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@types/trusted-types": "^2.0.2" } - }, - "packages-node/providence-analytics/node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "packages-node/providence-analytics/node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "packages-node/providence-analytics/node_modules/@swc/core": { - "version": "1.3.96", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.96", - "@swc/core-darwin-x64": "1.3.96", - "@swc/core-linux-arm-gnueabihf": "1.3.96", - "@swc/core-linux-arm64-gnu": "1.3.96", - "@swc/core-linux-arm64-musl": "1.3.96", - "@swc/core-linux-x64-gnu": "1.3.96", - "@swc/core-linux-x64-musl": "1.3.96", - "@swc/core-win32-arm64-msvc": "1.3.96", - "@swc/core-win32-ia32-msvc": "1.3.96", - "@swc/core-win32-x64-msvc": "1.3.96" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "packages-node/providence-analytics/node_modules/@swc/core-darwin-arm64": { - "version": "1.3.96", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "packages-node/providence-analytics/node_modules/@types/estree": { - "version": "1.0.0", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/@types/resolve": { - "version": "1.20.2", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/@web/dev-server": { - "version": "0.1.38", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.4.1", - "@web/dev-server-rollup": "^0.4.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "bin": { - "wds": "dist/bin.js", - "web-dev-server": "dist/bin.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-core": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-core/node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.4.1", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/@types/estree": { - "version": "0.0.39", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/@types/resolve": { - "version": "1.17.1", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/estree-walker": { - "version": "1.0.1", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/@web/dev-server-rollup/node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/ansi-escapes": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages-node/providence-analytics/node_modules/browserslist": { - "version": "4.22.1", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "packages-node/providence-analytics/node_modules/caniuse-lite": { - "version": "1.0.30001561", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "packages-node/providence-analytics/node_modules/chalk": { - "version": "5.2.0", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/cli-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/cli-width": { - "version": "4.0.0", - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "packages-node/providence-analytics/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "packages-node/providence-analytics/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/command-line-args": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "packages-node/providence-analytics/node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages-node/providence-analytics/node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "packages-node/providence-analytics/node_modules/command-line-usage": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "packages-node/providence-analytics/node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/electron-to-chromium": { - "version": "1.4.578", - "license": "ISC" - }, - "packages-node/providence-analytics/node_modules/es-module-lexer": { - "version": "1.2.1", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/escape-string-regexp": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/figures": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/glob": { - "version": "8.1.0", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages-node/providence-analytics/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages-node/providence-analytics/node_modules/inquirer": { - "version": "9.1.5", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.2.0", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.8.0", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "packages-node/providence-analytics/node_modules/is-unicode-supported": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/isbinaryfile": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "packages-node/providence-analytics/node_modules/lit-element": { - "version": "3.3.3", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "packages-node/providence-analytics/node_modules/lit-html": { - "version": "2.8.0", - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "packages-node/providence-analytics/node_modules/make-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages-node/providence-analytics/node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "packages-node/providence-analytics/node_modules/minimatch": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "packages-node/providence-analytics/node_modules/mute-stream": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "packages-node/providence-analytics/node_modules/node-releases": { - "version": "2.0.13", - "license": "MIT" - }, - "packages-node/providence-analytics/node_modules/parse5": { - "version": "7.1.2", - "license": "MIT", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/pify": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages-node/providence-analytics/node_modules/restore-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/rxjs": { - "version": "7.8.0", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "packages-node/providence-analytics/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/strip-ansi": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages-node/providence-analytics/node_modules/table-layout": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "bin": { - "table-layout": "bin/cli.js" - }, - "engines": { - "node": ">=12.17" - } - }, - "packages-node/providence-analytics/node_modules/tr46": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "packages-node/providence-analytics/node_modules/type-fest": { - "version": "3.7.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages-node/providence-analytics/node_modules/typical": { - "version": "7.1.1", - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "packages-node/providence-analytics/node_modules/update-browserslist-db": { - "version": "1.0.13", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "packages-node/providence-analytics/node_modules/webidl-conversions": { - "version": "7.0.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "packages-node/providence-analytics/node_modules/whatwg-url": { - "version": "11.0.0", - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "packages-node/providence-analytics/node_modules/wordwrapjs": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "packages-node/providence-analytics/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "packages-node/providence-analytics/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "packages-node/publish-docs": { - "version": "0.2.1", - "license": "MIT", - "dependencies": { - "command-line-args": "^5.1.1", - "fs-extra": "^9.0.0", - "glob": "^7.1.6" - }, - "bin": { - "publish-docs": "src/cli.js" - } - }, - "packages-node/publish-docs/node_modules/fs-extra": { - "version": "9.1.0", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "packages-node/publish-docs/node_modules/jsonfile": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "packages-node/publish-docs/node_modules/universalify": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "packages-node/remark-extend": { - "version": "0.5.2", - "license": "MIT", - "dependencies": { - "not": "^0.1.0", - "remark-gfm": "^1.0.0", - "remark-parse": "^9.0.0", - "unified": "^9.2.0", - "unist-util-is": "^4.0.2", - "unist-util-select": "^3.0.1", - "unist-util-visit": "^2.0.2" - } - }, - "packages-node/remark-extend/node_modules/unist-util-select": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "css-selector-parser": "^1.0.0", - "not": "^0.1.0", - "nth-check": "^2.0.0", - "unist-util-is": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "packages-node/rocket-preset-extend-lion-docs": { - "version": "0.4.0", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.10.1", - "@babel/plugin-syntax-import-assertions": "^7.14.5", - "babel-plugin-extend-docs": "^0.5.3", - "es-module-lexer": "^0.3.6", - "glob": "^7.1.6", - "plugins-manager": "^0.3.0", - "remark-extend": "^0.5.1", - "unist-util-visit": "^2.0.2" - } - }, - "packages-node/rocket-preset-extend-lion-docs/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages-node/rocket-preset-extend-lion-docs/node_modules/glob": { - "version": "8.0.3", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages-node/rocket-preset-extend-lion-docs/node_modules/minimatch": { - "version": "5.1.0", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "packages/ajax": { - "name": "@lion/ajax", - "version": "2.0.1", - "license": "MIT" - }, - "packages/singleton-manager": { - "version": "1.7.0", - "license": "MIT" - }, - "packages/ui": { - "name": "@lion/ui", - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "@bundled-es-modules/message-format": "^6.2.4", - "@open-wc/dedupe-mixin": "^1.4.0", - "@open-wc/scoped-elements": "^3.0.5", - "@popperjs/core": "^2.11.8", - "autosize": "^6.0.0", - "awesome-phonenumber": "^6.4.0", - "ibantools": "^4.3.9", - "lit": "^3.1.2", - "singleton-manager": "^1.7.0" - } - }, - "packages/ui/node_modules/@bundled-es-modules/message-format": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@bundled-es-modules/message-format/-/message-format-6.2.4.tgz", - "integrity": "sha512-NBaIEUCzSjLZjrsmSOh8PJLqQjSpXVuekIOuUT8tt4N/FdtAavWsC1YinIqIrbRnkBqV90OxgKzsxhFCzETQBw==" - }, - "packages/ui/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "packages/ui/node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "packages/ui/node_modules/lit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", - "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", - "dependencies": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" - } - }, - "packages/ui/node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" - } - }, - "packages/ui/node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - } - }, - "dependencies": { - "@11ty/dependency-tree": { - "version": "1.0.0", - "dev": true - }, - "@11ty/eleventy": { - "version": "0.11.1", - "dev": true, - "requires": { - "@11ty/dependency-tree": "^1.0.0", - "browser-sync": "^2.26.13", - "chalk": "^3.0.0", - "chokidar": "^3.4.0", - "debug": "^4.1.1", - "dependency-graph": "^0.9.0", - "ejs": "^2.7.4", - "fast-glob": "^3.2.2", - "fs-extra": "^8.1.0", - "gray-matter": "^4.0.2", - "hamljs": "^0.6.2", - "handlebars": "^4.7.6", - "javascript-stringify": "^2.0.1", - "liquidjs": "^6.4.3", - "lodash": "^4.17.15", - "luxon": "^1.24.1", - "markdown-it": "^10.0.0", - "minimist": "^1.2.5", - "moo": "^0.5.1", - "multimatch": "^4.0.0", - "mustache": "^2.3.2", - "normalize-path": "^3.0.0", - "nunjucks": "^3.2.1", - "parse-filepath": "^1.0.2", - "please-upgrade-node": "^3.2.0", - "pretty": "^2.0.0", - "pug": "^2.0.4", - "recursive-copy": "^2.0.10", - "semver": "^7.3.2", - "slugify": "^1.4.0", - "time-require": "^0.1.2", - "valid-url": "^1.0.9" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@11ty/eleventy-cache-assets": { - "version": "2.3.0", - "dev": true, - "requires": { - "debug": "^4.3.1", - "flat-cache": "^3.0.4", - "node-fetch": "^2.6.1", - "p-queue": "^6.6.2", - "short-hash": "^1.0.0" - } - }, - "@11ty/eleventy-img": { - "version": "0.9.0", - "dev": true, - "requires": { - "@11ty/eleventy-cache-assets": "^2.2.1", - "debug": "^4.3.1", - "fs-extra": "^9.0.1", - "image-size": "^0.9.3", - "p-queue": "^6.6.2", - "sharp": "^0.29.x", - "short-hash": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "dev": true - } - } - }, - "@75lb/deep-merge": { - "version": "1.1.1", - "requires": { - "lodash.assignwith": "^4.2.0", - "typical": "^7.1.1" - }, - "dependencies": { - "typical": { - "version": "7.1.1" - } - } - }, - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@ampproject/remapping": { - "version": "2.2.0", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.0" - }, - "@babel/core": { - "version": "7.21.3", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "@babel/eslint-parser": { - "version": "7.21.3", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.21.3", - "requires": { - "@babel/types": "^7.21.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.19.1", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4" - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1" - }, - "@babel/helper-validator-option": { - "version": "7.18.6" - }, - "@babel/helper-wrap-function": { - "version": "7.19.0", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" - } - }, - "@babel/helpers": { - "version": "7.21.0", - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "has-flag": { - "version": "3.0.0" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.21.3" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.18.6", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.20.2", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.20.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.19.6", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.19.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.20.2", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.20.1", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.10" - } - }, - "@babel/template": { - "version": "7.20.7", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.3", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.21.3", - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@bundled-es-modules/fetch-mock": { - "version": "6.5.2", - "dev": true - }, - "@bundled-es-modules/message-format": { - "version": "6.0.4", - "dev": true - }, - "@changesets/apply-release-plan": { - "version": "6.1.3", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/config": "^2.3.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^2.0.0", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^2.7.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.2.3", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "@changesets/changelog-git": { - "version": "0.1.14", - "dev": true, - "requires": { - "@changesets/types": "^5.2.1" - } - }, - "@changesets/cli": { - "version": "2.26.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/apply-release-plan": "^6.1.3", - "@changesets/assemble-release-plan": "^5.2.3", - "@changesets/changelog-git": "^0.1.14", - "@changesets/config": "^2.3.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/get-release-plan": "^3.0.16", - "@changesets/git": "^2.0.0", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.14", - "@changesets/read": "^0.5.9", - "@changesets/types": "^5.2.1", - "@changesets/write": "^0.2.3", - "@manypkg/get-packages": "^1.1.3", - "@types/is-ci": "^3.0.0", - "@types/semver": "^6.0.0", - "ansi-colors": "^4.1.3", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^3.0.1", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "resolve-from": "^5.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^4.1.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@changesets/config": { - "version": "2.3.0", - "dev": true, - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.3.5", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - } - }, - "@changesets/errors": { - "version": "0.1.4", - "dev": true, - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.3.5", - "dev": true, - "requires": { - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.16", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/assemble-release-plan": "^5.2.3", - "@changesets/config": "^2.3.0", - "@changesets/pre": "^1.0.14", - "@changesets/read": "^0.5.9", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "dev": true - }, - "@changesets/git": { - "version": "2.0.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "is-subdir": "^1.1.1", - "micromatch": "^4.0.2", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "dev": true, - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.16", - "dev": true, - "requires": { - "@changesets/types": "^5.2.1", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.14", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^5.2.1", - "@manypkg/get-packages": "^1.1.3", - "fs-extra": "^7.0.1" - } - }, - "@changesets/read": { - "version": "0.5.9", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/git": "^2.0.0", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.16", - "@changesets/types": "^5.2.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@changesets/types": { - "version": "5.2.1", - "dev": true - }, - "@changesets/write": { - "version": "0.2.3", - "dev": true, - "requires": { - "@babel/runtime": "^7.20.1", - "@changesets/types": "^5.2.1", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^2.7.1" - } - }, - "@coolaj86/urequest": { - "version": "1.3.7", - "dev": true - }, - "@custom-elements-manifest/analyzer": { - "version": "0.8.0", - "dev": true, - "requires": { - "@custom-elements-manifest/find-dependencies": "^0.0.5", - "@github/catalyst": "^1.6.0", - "@web/config-loader": "0.1.3", - "chokidar": "3.5.2", - "command-line-args": "5.1.2", - "comment-parser": "1.2.4", - "custom-elements-manifest": "1.0.0", - "debounce": "1.2.1", - "globby": "11.0.4", - "typescript": "~4.3.2" - }, - "dependencies": { - "globby": { - "version": "11.0.4", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "typescript": { - "version": "4.3.5", - "dev": true - } - } - }, - "@custom-elements-manifest/find-dependencies": { - "version": "0.0.5", - "dev": true, - "requires": { - "es-module-lexer": "^0.9.3" - }, - "dependencies": { - "es-module-lexer": { - "version": "0.9.3", - "dev": true - } - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.0", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "@esm-bundle/chai": { - "version": "4.3.4-fix.0", - "dev": true, - "requires": { - "@types/chai": "^4.2.12" - } - }, - "@github/catalyst": { - "version": "1.6.0", - "dev": true - }, - "@hapi/address": { - "version": "2.1.4", - "dev": true - }, - "@hapi/bourne": { - "version": "1.3.2", - "dev": true - }, - "@hapi/hoek": { - "version": "8.5.1", - "dev": true - }, - "@hapi/joi": { - "version": "15.1.1", - "dev": true, - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "dev": true, - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0" - }, - "@jridgewell/set-array": { - "version": "1.1.2" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@lion/accordion": { - "version": "0.9.0", - "dev": true, - "requires": { - "@lion/core": "^0.22.0" - } - }, - "@lion/ajax": { - "version": "file:packages/ajax" - }, - "@lion/combobox": { - "version": "0.8.7", - "dev": true, - "requires": { - "@lion/core": "0.20.0", - "@lion/form-core": "0.15.5", - "@lion/listbox": "0.11.0", - "@lion/overlays": "0.30.0" - }, - "dependencies": { - "@lion/core": { - "version": "0.20.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@lion/listbox": { - "version": "0.11.0", - "dev": true, - "requires": { - "@lion/core": "0.20.0", - "@lion/form-core": "0.15.5" - } - }, - "@lion/overlays": { - "version": "0.30.0", - "dev": true, - "requires": { - "@lion/core": "0.20.0", - "@popperjs/core": "^2.5.4", - "singleton-manager": "1.4.3" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - }, - "singleton-manager": { - "version": "1.4.3", - "dev": true - } - } - }, - "@lion/core": { - "version": "0.22.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.1.1", - "lit": "^2.0.2" - }, - "dependencies": { - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - } - } - }, - "@lion/form-core": { - "version": "0.15.5", - "dev": true, - "requires": { - "@lion/core": "0.20.0", - "@lion/localize": "0.22.0" - }, - "dependencies": { - "@lion/core": { - "version": "0.20.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - } - } - }, - "@lion/listbox": { - "version": "0.10.7", - "dev": true, - "requires": { - "@lion/core": "0.19.0", - "@lion/form-core": "0.15.4" - }, - "dependencies": { - "@lion/core": { - "version": "0.19.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@lion/form-core": { - "version": "0.15.4", - "dev": true, - "requires": { - "@lion/core": "0.19.0", - "@lion/localize": "0.21.3" - } - }, - "@lion/localize": { - "version": "0.21.3", - "dev": true, - "requires": { - "@bundled-es-modules/message-format": "6.0.4", - "@lion/core": "0.19.0", - "singleton-manager": "1.4.2" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - }, - "singleton-manager": { - "version": "1.4.2", - "dev": true - } - } - }, - "@lion/localize": { - "version": "0.22.0", - "dev": true, - "requires": { - "@bundled-es-modules/message-format": "6.0.4", - "@lion/core": "0.20.0", - "singleton-manager": "1.4.3" - }, - "dependencies": { - "@lion/core": { - "version": "0.20.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - }, - "singleton-manager": { - "version": "1.4.3", - "dev": true - } - } - }, - "@lion/nodejs-helpers": { - "version": "file:packages-node/nodejs-helpers", - "requires": { - "@babel/generator": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.22.5", - "es-module-lexer": "^0.3.6", - "globby": "^13.2.0", - "prettier": "^2.8.8" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.13", - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/generator": { - "version": "7.23.0", - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20" - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5" - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20" - }, - "@babel/highlight": { - "version": "7.22.20", - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0" - }, - "@babel/template": { - "version": "7.22.15", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.2", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.0", - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "fast-glob": { - "version": "3.3.2", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "globby": { - "version": "13.2.2", - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "has-flag": { - "version": "3.0.0" - }, - "prettier": { - "version": "2.8.8" - }, - "slash": { - "version": "4.0.0" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@lion/overlays": { - "version": "0.29.1", - "dev": true, - "requires": { - "@lion/core": "0.19.0", - "@popperjs/core": "^2.5.4", - "singleton-manager": "1.4.2" - }, - "dependencies": { - "@lion/core": { - "version": "0.19.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - }, - "singleton-manager": { - "version": "1.4.2", - "dev": true - } - } - }, - "@lion/ui": { - "version": "file:packages/ui", - "requires": { - "@bundled-es-modules/message-format": "^6.2.4", - "@open-wc/dedupe-mixin": "^1.4.0", - "@open-wc/scoped-elements": "^3.0.5", - "@popperjs/core": "^2.11.8", - "autosize": "^6.0.0", - "awesome-phonenumber": "^6.4.0", - "ibantools": "^4.3.9", - "lit": "^3.1.2", - "singleton-manager": "^1.7.0" - }, - "dependencies": { - "@bundled-es-modules/message-format": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@bundled-es-modules/message-format/-/message-format-6.2.4.tgz", - "integrity": "sha512-NBaIEUCzSjLZjrsmSOh8PJLqQjSpXVuekIOuUT8tt4N/FdtAavWsC1YinIqIrbRnkBqV90OxgKzsxhFCzETQBw==" - }, - "@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" - }, - "lit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", - "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", - "requires": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" - } - }, - "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" - } - }, - "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", - "requires": { - "@types/trusted-types": "^2.0.2" - } - } - } - }, - "@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" - }, - "@lit/reactive-element": { - "version": "1.4.2" - }, - "@manypkg/find-root": { - "version": "1.1.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.3", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@changesets/types": "^4.0.1", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - }, - "dependencies": { - "@changesets/types": { - "version": "4.1.0", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - } - } - }, - "@mdjs/core": { - "version": "0.9.5", - "dev": true, - "requires": { - "@mdjs/mdjs-preview": "^0.5.8", - "@mdjs/mdjs-story": "^0.3.2", - "@types/unist": "^2.0.3", - "es-module-lexer": "^0.9.3", - "github-markdown-css": "^4.0.0", - "plugins-manager": "^0.3.0", - "rehype-autolink-headings": "^5.0.1", - "rehype-prism": "^1.0.1", - "rehype-raw": "^5.0.0", - "rehype-slug": "^4.0.1", - "rehype-stringify": "^8.0.0", - "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-parse": "^9.0.0", - "remark-rehype": "^8.0.0", - "slash": "^3.0.0", - "unified": "^9.2.0", - "unist-util-remove": "^2.0.1", - "unist-util-visit": "^2.0.3" - }, - "dependencies": { - "es-module-lexer": { - "version": "0.9.3", - "dev": true - } - } - }, - "@mdjs/mdjs-preview": { - "version": "0.5.9", - "dev": true, - "requires": { - "@lion/accordion": "^0.9.0", - "@open-wc/scoped-elements": "^2.0.0", - "lit": "^2.2.5" - }, - "dependencies": { - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - } - } - }, - "@mdjs/mdjs-story": { - "version": "0.3.2", - "dev": true, - "requires": { - "lit": "^2.2.5" - } - }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@open-wc/building-rollup": { - "version": "1.10.0", - "dev": true, - "requires": { - "@babel/core": "^7.11.1", - "@babel/helpers": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.5", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.9.0", - "@open-wc/building-utils": "^2.18.3", - "@open-wc/rollup-plugin-html": "^1.2.5", - "@open-wc/rollup-plugin-polyfills-loader": "^1.1.8", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "babel-plugin-bundled-import-meta": "^0.3.2", - "babel-plugin-template-html-minifier": "^4.0.0", - "browserslist": "^4.16.0", - "deepmerge": "^4.2.2", - "magic-string": "^0.25.7", - "parse5": "^5.1.1", - "regenerator-runtime": "^0.13.7", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-workbox": "^5.2.1", - "terser": "^4.6.7" - } - }, - "@open-wc/building-utils": { - "version": "2.21.0", - "dev": true, - "requires": { - "@babel/core": "^7.11.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@webcomponents/shadycss": "^1.10.2", - "@webcomponents/webcomponentsjs": "^2.5.0", - "arrify": "^2.0.1", - "browserslist": "^4.16.5", - "chokidar": "^3.4.3", - "clean-css": "^5.3.1", - "clone": "^2.1.2", - "core-js-bundle": "^3.8.1", - "deepmerge": "^4.2.2", - "es-module-shims": "^1.4.1", - "html-minifier-terser": "^5.1.1", - "lru-cache": "^6.0.0", - "minimatch": "^3.0.4", - "parse5": "^5.1.1", - "path-is-inside": "^1.0.2", - "regenerator-runtime": "^0.13.7", - "resolve": "^1.19.0", - "rimraf": "^3.0.2", - "shady-css-scoped-element": "^0.0.2", - "systemjs": "^6.8.3", - "terser": "^4.8.1", - "valid-url": "^1.0.9", - "whatwg-fetch": "^3.5.0", - "whatwg-url": "^7.1.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "@open-wc/chai-dom-equals": { - "version": "0.12.36", - "dev": true, - "requires": { - "@open-wc/semantic-dom-diff": "^0.13.16", - "@types/chai": "^4.1.7" - }, - "dependencies": { - "@open-wc/semantic-dom-diff": { - "version": "0.13.21", - "dev": true - } - } - }, - "@open-wc/dedupe-mixin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", - "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==" - }, - "@open-wc/eslint-config": { - "version": "10.0.0", - "dev": true, - "requires": { - "@babel/eslint-parser": "^7.19.1", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-import-exports-imports-resolver": "^1.0.1", - "eslint-plugin-lit": "^1.8.0", - "eslint-plugin-lit-a11y": "^2.4.0", - "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-wc": "^1.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "eslint-plugin-lit-a11y": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.4.1.tgz", - "integrity": "sha512-UljRja/2cVrNtgnCDj5sCT3Larxda4mGqbsPhlksvECo0+KCD8EuUori/P6wFeFqk+pHlkIC3W200E5q85E3VQ==", - "dev": true, - "requires": { - "aria-query": "^5.1.3", - "axe-core": "^4.3.3", - "axobject-query": "^2.2.0", - "dom5": "^3.0.1", - "emoji-regex": "^10.2.1", - "eslint-plugin-lit": "^1.6.0", - "eslint-rule-extender": "0.0.1", - "language-tags": "^1.0.5", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "~1.2.0" - } - }, - "eslint-plugin-wc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-1.5.0.tgz", - "integrity": "sha512-KFSfiHDol/LeV7U6IX8GdgpGf/s3wG8FTG120Rml/hGNB/DkCuGYQhlf0VgdBdf7gweem8Nlsh5o64HNdj+qPA==", - "dev": true, - "requires": { - "is-valid-element-name": "^1.0.0", - "js-levenshtein-esm": "^1.2.0" - } - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - } - } - }, - "@open-wc/rollup-plugin-html": { - "version": "1.2.5", - "dev": true, - "requires": { - "@open-wc/building-utils": "^2.18.3", - "@types/html-minifier": "^3.5.3", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "html-minifier-terser": "^5.1.1", - "parse5": "^5.1.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@open-wc/rollup-plugin-polyfills-loader": { - "version": "1.1.8", - "dev": true, - "requires": { - "@open-wc/rollup-plugin-html": "^1.2.5", - "polyfills-loader": "^1.7.5" - } - }, - "@open-wc/scoped-elements": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-3.0.5.tgz", - "integrity": "sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==", - "requires": { - "@open-wc/dedupe-mixin": "^1.4.0", - "lit": "^3.0.0" - }, - "dependencies": { - "@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "lit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", - "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", - "requires": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" - } - }, - "lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" - } - }, - "lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", - "requires": { - "@types/trusted-types": "^2.0.2" - } - } - } - }, - "@open-wc/semantic-dom-diff": { - "version": "0.19.7", - "dev": true, - "requires": { - "@types/chai": "^4.3.1", - "@web/test-runner-commands": "^0.6.1" - } - }, - "@open-wc/testing": { - "version": "3.1.7", - "dev": true, - "requires": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/chai-dom-equals": "^0.12.36", - "@open-wc/semantic-dom-diff": "^0.19.7", - "@open-wc/testing-helpers": "^2.1.4", - "@types/chai": "^4.2.11", - "@types/chai-dom": "^0.0.12", - "@types/sinon-chai": "^3.2.3", - "chai-a11y-axe": "^1.3.2" - }, - "dependencies": { - "@types/chai-dom": { - "version": "0.0.12", - "dev": true, - "requires": { - "@types/chai": "*" - } - } - } - }, - "@open-wc/testing-helpers": { - "version": "2.2.0", - "dev": true, - "requires": { - "@open-wc/scoped-elements": "^2.1.3", - "lit": "^2.0.0", - "lit-html": "^2.0.0" - }, - "dependencies": { - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - } - } - }, - "@popperjs/core": { - "version": "2.11.6", - "dev": true - }, - "@rocket/blog": { - "version": "0.4.0", - "dev": true, - "requires": { - "plugins-manager": "^0.3.0" - } - }, - "@rocket/building-rollup": { - "version": "0.4.1", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "@rollup/plugin-babel": "^5.2.2", - "@rollup/plugin-node-resolve": "^11.0.1", - "@rollup/plugin-replace": "^2.4.2", - "@web/rollup-plugin-html": "^1.8.0", - "@web/rollup-plugin-import-meta-assets": "^1.0.4", - "@web/rollup-plugin-polyfills-loader": "^1.1.0", - "browserslist": "^4.16.1", - "rollup-plugin-terser": "^7.0.2", - "workbox-broadcast-update": "^6.1.5", - "workbox-cacheable-response": "^6.1.5", - "workbox-expiration": "^6.1.5", - "workbox-routing": "^6.1.5", - "workbox-strategies": "^6.1.5" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@types/resolve": { - "version": "1.17.1", - "dev": true, - "requires": { - "@types/node": "*" - } - } - } - }, - "@rocket/cli": { - "version": "0.10.2", - "dev": true, - "requires": { - "@11ty/eleventy": "^0.11.1", - "@11ty/eleventy-img": "^0.9.0", - "@rocket/building-rollup": "^0.4.0", - "@rocket/core": "^0.1.2", - "@rocket/eleventy-plugin-mdjs-unified": "^0.6.0", - "@rocket/eleventy-rocket-nav": "^0.3.1", - "@rollup/plugin-babel": "^5.2.2", - "@rollup/plugin-node-resolve": "^11.0.1", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.4", - "@web/dev-server-rollup": "^0.3.2", - "@web/rollup-plugin-copy": "^0.2.0", - "check-html-links": "^0.2.3", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "fs-extra": "^9.0.1", - "micromatch": "^4.0.2", - "plugins-manager": "^0.3.0", - "slash": "^3.0.0", - "utf8": "^3.0.0", - "workbox-window": "^6.1.5" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@types/resolve": { - "version": "1.17.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@web/dev-server": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", - "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.4.1", - "@web/dev-server-rollup": "^0.4.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@web/dev-server-rollup": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", - "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.4.1", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - } - }, - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - } - } - }, - "@web/dev-server-core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "dev": true, - "requires": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "dependencies": { - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - } - } - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "dev": true - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "dev": true - } - } - }, - "@rocket/core": { - "version": "0.1.2", - "dev": true - }, - "@rocket/drawer": { - "version": "0.1.5", - "dev": true, - "requires": { - "@lion/overlays": "^0.29.1", - "lit": "^2.0.0" - } - }, - "@rocket/eleventy-plugin-mdjs-unified": { - "version": "0.6.0", - "dev": true, - "requires": { - "@mdjs/core": "^0.9.0", - "es-module-lexer": "^0.3.26", - "unist-util-visit": "^2.0.3" - } - }, - "@rocket/eleventy-rocket-nav": { - "version": "0.3.1", - "dev": true, - "requires": { - "dependency-graph": "^0.10.0", - "sax-wasm": "^2.0.0" - }, - "dependencies": { - "dependency-graph": { - "version": "0.10.0", - "dev": true - } - } - }, - "@rocket/launch": { - "version": "0.6.0", - "dev": true, - "requires": { - "@rocket/drawer": "^0.1.3", - "@rocket/navigation": "^0.2.1" - } - }, - "@rocket/navigation": { - "version": "0.2.1", - "dev": true - }, - "@rocket/search": { - "version": "0.5.1", - "dev": true, - "requires": { - "@lion/combobox": "^0.8.6", - "@lion/core": "^0.19.0", - "@lion/listbox": "^0.10.7", - "@open-wc/scoped-elements": "^2.0.0", - "chalk": "^4.0.0", - "minisearch": "^3.0.2", - "plugins-manager": "^0.3.0", - "sax-wasm": "^2.0.0" - }, - "dependencies": { - "@lion/core": { - "version": "0.19.0", - "dev": true, - "requires": { - "@open-wc/dedupe-mixin": "^1.3.0", - "@open-wc/scoped-elements": "^2.0.1", - "lit": "^2.0.2" - } - }, - "@open-wc/scoped-elements": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", - "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0", - "@open-wc/dedupe-mixin": "^1.4.0" - } - } - } - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.1.tgz", - "integrity": "sha512-4C4UERETjXpC4WpBXDbkgNVgHyWfG3B/NKY46e7w5H134UDOFqUJKpsLm0UYmuupW+aJmRgeScrDNfvZ5WV80A==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.1.tgz", - "integrity": "sha512-TrTaFJ9pXgfXEiJKQ3yQRelpQFqgRzVR9it8DbeRzG0RX7mKUy0bqhCFsgevwXLJepQKTnLl95TnPGf9T9AMOA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.1.tgz", - "integrity": "sha512-fz7jN6ahTI3cKzDO2otQuybts5cyu0feymg0bjvYCBrZQ8tSgE8pc0sSNEuGvifrQJWiwx9F05BowihmLxeQKw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.1.tgz", - "integrity": "sha512-WTvdz7SLMlJpektdrnWRUN9C0N2qNHwNbWpNo0a3Tod3gb9leX+yrYdCeB7VV36OtoyiPAivl7/xZ3G1z5h20g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.1.tgz", - "integrity": "sha512-dBHQl+7wZzBYcIF6o4k2XkAfwP2ks1mYW2q/Gzv9n39uDcDiAGDqEyml08OdY0BIct0yLSPkDTqn4i6czpBLLw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.1.tgz", - "integrity": "sha512-bur4JOxvYxfrAmocRJIW0SADs3QdEYK6TQ7dTNz6Z4/lySeu3Z1H/+tl0a4qDYv0bCdBpUYM0sYa/X+9ZqgfSQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.1.tgz", - "integrity": "sha512-ssp77SjcDIUSoUyj7DU7/5iwM4ZEluY+N8umtCT9nBRs3u045t0KkW02LTyHouHDomnMXaXSZcCSr2bdMK63kA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.1.tgz", - "integrity": "sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.1.tgz", - "integrity": "sha512-U564BrhEfaNChdATQaEODtquCC7Ez+8Hxz1h5MAdMYj0AqD0GA9rHCpElajb/sQcaFL6NXmHc5O+7FXpWMa73Q==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.1.tgz", - "integrity": "sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.1.tgz", - "integrity": "sha512-VTk/MveyPdMFkYJJPCkYBw07KcTkGU2hLEyqYMsU4NjiOfzoaDTW9PWGRsNwiOA3qI0k/JQPjkl/4FCK1smskQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.1.tgz", - "integrity": "sha512-L+hX8Dtibb02r/OYCsp4sQQIi3ldZkFI0EUkMTDwRfFykXBPptoz/tuuGqEd3bThBSLRWPR6wsixDSgOx/U3Zw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.1.tgz", - "integrity": "sha512-+dI2jVPfM5A8zme8riEoNC7UKk0Lzc7jCj/U89cQIrOjrZTCWZl/+IXUeRT2rEZ5j25lnSA9G9H1Ob9azaF/KQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.1.tgz", - "integrity": "sha512-YY1Exxo2viZ/O2dMHuwQvimJ0SqvL+OAWQLLY6rvXavgQKjhQUzn7nc1Dd29gjB5Fqi00nrBWctJBOyfVMIVxw==", - "dev": true, - "optional": true - }, - "@sindresorhus/is": { - "version": "4.6.0", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.5", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/formatio": { - "version": "3.2.2", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" - } - }, - "@sinonjs/samsam": { - "version": "3.3.3", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.3.0", - "array-from": "^2.1.1", - "lodash": "^4.17.15" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "dev": true - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "dev": true - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", - "dev": true, - "requires": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" - } - }, - "@swc/core": { - "version": "1.3.42", - "requires": { - "@swc/core-darwin-arm64": "1.3.42", - "@swc/core-darwin-x64": "1.3.42", - "@swc/core-linux-arm-gnueabihf": "1.3.42", - "@swc/core-linux-arm64-gnu": "1.3.42", - "@swc/core-linux-arm64-musl": "1.3.42", - "@swc/core-linux-x64-gnu": "1.3.42", - "@swc/core-linux-x64-musl": "1.3.42", - "@swc/core-win32-arm64-msvc": "1.3.42", - "@swc/core-win32-ia32-msvc": "1.3.42", - "@swc/core-win32-x64-msvc": "1.3.42" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.3.42", - "optional": true - }, - "@swc/counter": { - "version": "0.1.2" - }, - "@swc/types": { - "version": "0.1.5" - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@types/accepts": { - "version": "1.3.5", - "requires": { - "@types/node": "*" - } - }, - "@types/aria-query": { - "version": "5.0.1", - "dev": true - }, - "@types/autosize": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/autosize/-/autosize-4.0.3.tgz", - "integrity": "sha512-o0ZyU3ePp3+KRbhHsY4ogjc+ZQWgVN5h6j8BHW5RII4cFKi6PEKK9QPAcphJVkD0dGpyFnD3VRR0WMvHVjCv9w==", - "dev": true - }, - "@types/babel__code-frame": { - "version": "7.0.3", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.20", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/babel-types": { - "version": "7.0.11", - "dev": true - }, - "@types/babylon": { - "version": "6.16.6", - "dev": true, - "requires": { - "@types/babel-types": "*" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/cacheable-request": { - "version": "6.0.3", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@types/chai": { - "version": "4.3.4", - "dev": true - }, - "@types/chai-as-promised": { - "version": "7.1.8", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/chai-dom": { - "version": "0.0.8", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/clean-css": { - "version": "4.2.6", - "dev": true, - "requires": { - "@types/node": "*", - "source-map": "^0.6.0" - } - }, - "@types/co-body": { - "version": "6.1.0", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "@types/command-line-args": { - "version": "5.2.0" - }, - "@types/connect": { - "version": "3.4.35", - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.5" - }, - "@types/convert-source-map": { - "version": "1.5.2", - "dev": true - }, - "@types/cookie": { - "version": "0.4.1", - "dev": true - }, - "@types/cookies": { - "version": "0.7.7", - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/cors": { - "version": "2.8.12", - "dev": true - }, - "@types/debounce": { - "version": "1.2.1", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "dev": true - }, - "@types/express": { - "version": "4.17.14", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/fs-extra": { - "version": "9.0.13", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/hast": { - "version": "2.3.4", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/html-minifier": { - "version": "3.5.3", - "dev": true, - "requires": { - "@types/clean-css": "*", - "@types/relateurl": "*", - "@types/uglify-js": "*" - } - }, - "@types/http-assert": { - "version": "1.5.3" - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "dev": true - }, - "@types/http-errors": { - "version": "2.0.1" - }, - "@types/inquirer": { - "version": "9.0.3", - "dev": true, - "requires": { - "@types/through": "*", - "rxjs": "^7.2.0" - }, - "dependencies": { - "rxjs": { - "version": "7.8.0", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - } - } - }, - "@types/is-ci": { - "version": "3.0.0", - "dev": true, - "requires": { - "ci-info": "^3.1.0" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/keygrip": { - "version": "1.0.2" - }, - "@types/keyv": { - "version": "3.1.4", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/koa": { - "version": "2.13.5", - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "requires": { - "@types/koa": "*" - } - }, - "@types/mdast": { - "version": "3.0.10", - "requires": { - "@types/unist": "*" - } - }, - "@types/mime": { - "version": "3.0.1" - }, - "@types/minimatch": { - "version": "5.1.2", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "dev": true - }, - "@types/mocha": { - "version": "10.0.1", - "dev": true - }, - "@types/node": { - "version": "12.20.55" - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "dev": true - }, - "@types/parse-author": { - "version": "2.0.1", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "dev": true - }, - "@types/parse5": { - "version": "6.0.3" - }, - "@types/prettier": { - "version": "2.7.2", - "dev": true - }, - "@types/prismjs": { - "version": "1.26.0", - "dev": true - }, - "@types/qs": { - "version": "6.9.7" - }, - "@types/range-parser": { - "version": "1.2.4" - }, - "@types/relateurl": { - "version": "0.2.29", - "dev": true - }, - "@types/resolve": { - "version": "0.0.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/responselike": { - "version": "1.0.0", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "6.2.3", - "dev": true - }, - "@types/serve-static": { - "version": "1.15.0", - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/sinon": { - "version": "10.0.13", - "dev": true, - "requires": { - "@types/sinonjs__fake-timers": "*" - } - }, - "@types/sinon-chai": { - "version": "3.2.9", - "dev": true, - "requires": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "@types/sinonjs__fake-timers": { - "version": "8.1.2", - "dev": true - }, - "@types/through": { - "version": "0.0.30", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2" - }, - "@types/ua-parser-js": { - "version": "0.7.36", - "dev": true - }, - "@types/uglify-js": { - "version": "3.17.1", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "@types/unist": { - "version": "2.0.6" - }, - "@types/which": { - "version": "1.3.2", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "requires": { - "@types/node": "*" - } - }, - "@types/yauzl": { - "version": "2.10.0", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "@wdio/config": { - "version": "7.26.0", - "dev": true, - "requires": { - "@wdio/logger": "7.26.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "deepmerge": "^4.0.0", - "glob": "^8.0.3" - }, - "dependencies": { - "@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@wdio/logger": { - "version": "7.26.0", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^6.0.0" - } - }, - "@wdio/protocols": { - "version": "7.22.0", - "dev": true - }, - "@wdio/repl": { - "version": "7.26.0", - "dev": true, - "requires": { - "@wdio/utils": "7.26.0" - } - }, - "@wdio/utils": { - "version": "7.26.0", - "dev": true, - "requires": { - "@wdio/logger": "7.26.0", - "@wdio/types": "7.26.0", - "p-iteration": "^1.1.8" - }, - "dependencies": { - "@types/node": { - "version": "18.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", - "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - } - } - } - }, - "@web/browser-logs": { - "version": "0.2.5", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/config-loader": { - "version": "0.1.3", - "requires": { - "semver": "^7.3.4" - } - }, - "@web/dev-server": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.3.tgz", - "integrity": "sha512-vf2ZVjdTj8ExrMSYagyHD+snRue9oRetynxd1p0P7ndEpZDKeNLYsvkJyo0pNU6moBxHmXnYeC5VrAT4E3+lNg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.3.0", - "@web/dev-server-core": "^0.7.1", - "@web/dev-server-rollup": "^0.6.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^2.0.1", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - } - }, - "@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, - "@web/config-loader": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", - "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", - "dev": true - }, - "@web/dev-server-core": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.1.tgz", - "integrity": "sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/dev-server-rollup": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.1.tgz", - "integrity": "sha512-vhtsQ8qu1pBHailOBOYJwZnYDc1Lmx6ZAd2j+y5PD2ck0R1LmVsZ7dZK8hDCpkvpvlu2ndURjL9tbzdcsBRJmg==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^15.0.1", - "@web/dev-server-core": "^0.7.0", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^4.4.0", - "whatwg-url": "^11.0.0" - } - }, - "@web/parse5-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", - "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - }, - "es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", - "dev": true - }, - "isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "dev": true - }, - "lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "rollup": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.1.tgz", - "integrity": "sha512-hFi+fU132IvJ2ZuihN56dwgpltpmLZHZWsx27rMCTZ2sYwrqlgL5sECGy1eeV2lAihD8EzChBVVhsXci0wD4Tg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.1", - "@rollup/rollup-android-arm64": "4.13.1", - "@rollup/rollup-darwin-arm64": "4.13.1", - "@rollup/rollup-darwin-x64": "4.13.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.1", - "@rollup/rollup-linux-arm64-gnu": "4.13.1", - "@rollup/rollup-linux-arm64-musl": "4.13.1", - "@rollup/rollup-linux-riscv64-gnu": "4.13.1", - "@rollup/rollup-linux-s390x-gnu": "4.13.1", - "@rollup/rollup-linux-x64-gnu": "4.13.1", - "@rollup/rollup-linux-x64-musl": "4.13.1", - "@rollup/rollup-win32-arm64-msvc": "4.13.1", - "@rollup/rollup-win32-ia32-msvc": "4.13.1", - "@rollup/rollup-win32-x64-msvc": "4.13.1", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "dev": true, - "requires": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - } - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "dev": true - } - } - }, - "@web/dev-server-core": { - "version": "0.3.19", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "dependencies": { - "es-module-lexer": { - "version": "1.1.0", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "@web/dev-server-legacy": { - "version": "0.1.7", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@web/dev-server-core": "^0.3.0", - "browserslist": "^4.16.0", - "browserslist-useragent": "^3.0.3", - "caniuse-api": "^3.0.0", - "parse5": "^6.0.1", - "polyfills-loader": "^1.7.6", - "valid-url": "^1.0.9" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "@web/dev-server-rollup": { - "version": "0.3.19", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.3.19", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@types/resolve": { - "version": "1.17.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "tr46": { - "version": "3.0.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } - } - }, - "@web/parse5-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", - "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1" - } - } - }, - "@web/polyfills-loader": { - "version": "1.3.5", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@web/parse5-utils": "^1.3.0", - "@webcomponents/shadycss": "^1.11.0", - "@webcomponents/webcomponentsjs": "^2.5.0", - "abortcontroller-polyfill": "^1.5.0", - "construct-style-sheets-polyfill": "^3.0.5", - "core-js-bundle": "^3.8.1", - "dynamic-import-polyfill": "^0.1.1", - "es-module-shims": "^1.4.1", - "intersection-observer": "^0.12.0", - "parse5": "^6.0.1", - "regenerator-runtime": "^0.13.7", - "resize-observer-polyfill": "^1.5.1", - "shady-css-scoped-element": "^0.0.2", - "systemjs": "^6.8.1", - "terser": "^5.14.2", - "whatwg-fetch": "^3.5.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - }, - "terser": { - "version": "5.15.1", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - } - } - }, - "@web/rollup-plugin-copy": { - "version": "0.2.0", - "dev": true, - "requires": { - "glob": "^7.0.0" - } - }, - "@web/rollup-plugin-html": { - "version": "1.11.0", - "dev": true, - "requires": { - "@web/parse5-utils": "^1.3.0", - "glob": "^7.1.6", - "html-minifier-terser": "^6.0.0", - "parse5": "^6.0.1" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "dev": true - }, - "html-minifier-terser": { - "version": "6.1.0", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "terser": { - "version": "5.15.1", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "dev": true - } - } - } - } - }, - "@web/rollup-plugin-import-meta-assets": { - "version": "1.0.7", - "dev": true, - "requires": { - "@rollup/pluginutils": "^4.1.0", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "4.2.1", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, - "estree-walker": { - "version": "2.0.2", - "dev": true - } - } - }, - "@web/rollup-plugin-polyfills-loader": { - "version": "1.3.1", - "dev": true, - "requires": { - "@web/polyfills-loader": "^1.3.4" - } - }, - "@web/test-runner": { - "version": "0.15.2", - "dev": true, - "requires": { - "@web/browser-logs": "^0.2.2", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.37", - "@web/test-runner-chrome": "^0.12.0", - "@web/test-runner-commands": "^0.6.3", - "@web/test-runner-core": "^0.10.27", - "@web/test-runner-mocha": "^0.7.5", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "convert-source-map": "^1.7.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.32", - "source-map": "^0.7.3" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@web/dev-server": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", - "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.4.1", - "@web/dev-server-rollup": "^0.4.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "dependencies": { - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - } - } - }, - "@web/dev-server-core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/dev-server-rollup": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", - "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.4.1", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "source-map": { - "version": "0.7.4", - "dev": true - }, - "table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "dev": true, - "requires": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "dependencies": { - "command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - } - } - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "dev": true - } - } - }, - "@web/test-runner-browserstack": { - "version": "0.5.1", - "dev": true, - "requires": { - "@web/test-runner-webdriver": "^0.5.1", - "browserstack-local": "^1.4.8", - "ip": "^1.1.5", - "nanoid": "^3.1.25" - } - }, - "@web/test-runner-chrome": { - "version": "0.12.0", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.5.0", - "chrome-launcher": "^0.15.0", - "puppeteer-core": "^18.2.1" - }, - "dependencies": { - "devtools-protocol": { - "version": "0.0.1045489", - "dev": true - }, - "puppeteer-core": { - "version": "18.2.1", - "dev": true, - "requires": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1045489", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.9.0" - } - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ws": { - "version": "8.9.0", - "dev": true, - "requires": {} - } - } - }, - "@web/test-runner-commands": { - "version": "0.6.5", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.27", - "mkdirp": "^1.0.4" - } - }, - "@web/test-runner-core": { - "version": "0.10.27", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.18", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "dependencies": { - "dependency-graph": { - "version": "0.11.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "source-map": { - "version": "0.7.4", - "dev": true - } - } - }, - "@web/test-runner-coverage-v8": { - "version": "0.5.0", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "istanbul-lib-coverage": "^3.0.0", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - } - }, - "@web/test-runner-mocha": { - "version": "0.7.5", - "dev": true, - "requires": { - "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.20" - }, - "dependencies": { - "@types/mocha": { - "version": "8.2.3", - "dev": true - } - } - }, - "@web/test-runner-playwright": { - "version": "0.9.0", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.5.0", - "playwright": "^1.22.2" - } - }, - "@web/test-runner-webdriver": { - "version": "0.5.1", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "webdriverio": "^7.16.0" - } - }, - "@webcomponents/scoped-custom-element-registry": { - "version": "0.0.8", - "dev": true - }, - "@webcomponents/shadycss": { - "version": "1.11.1", - "dev": true - }, - "@webcomponents/webcomponentsjs": { - "version": "2.7.0", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true - }, - "a-sync-waterfall": { - "version": "1.0.1", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "dev": true - }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "dev": true, - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "align-text": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "ansi-colors": { - "version": "4.1.3", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archiver": { - "version": "5.3.1", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "dependencies": { - "async": { - "version": "3.2.4", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "5.1.3", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "array-back": { - "version": "6.2.2" - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-differ": { - "version": "3.0.0", - "dev": true - }, - "array-from": { - "version": "2.1.1", - "dev": true - }, - "array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "dev": true - }, - "array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.reduce": { - "version": "1.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - } - }, - "arrify": { - "version": "2.0.1", - "dev": true - }, - "asap": { - "version": "2.0.6" - }, - "assertion-error": { - "version": "1.1.0", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "dev": true - }, - "async": { - "version": "2.6.4", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each-series": { - "version": "0.1.1", - "dev": true - }, - "at-least-node": { - "version": "1.0.0" - }, - "author-regex": { - "version": "1.0.0", - "dev": true - }, - "autosize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/autosize/-/autosize-6.0.1.tgz", - "integrity": "sha512-f86EjiUKE6Xvczc4ioP1JBlWG7FKrE13qe/DxBCpe8GCipCq2nFw73aO8QEBKHfSbYGDN5eB9jXWKen7tspDqQ==" - }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "awesome-phonenumber": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-6.4.0.tgz", - "integrity": "sha512-GRtyAHsD/usULDEZ8a5QQVZnvLm+WqP8q5sDPf3DkzEDGSr2DcvygGhuhWc6cTP4r28cSo0weM5eStwxJgxDoA==" - }, - "axe-core": { - "version": "4.5.2", - "dev": true - }, - "axios": { - "version": "0.19.2", - "dev": true, - "requires": { - "follow-redirects": "1.5.10" - } - }, - "axobject-query": { - "version": "2.2.0", - "dev": true - }, - "babel-extract-comments": { - "version": "1.0.0", - "dev": true, - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-plugin-bundled-import-meta": { - "version": "0.3.2", - "dev": true, - "requires": { - "@babel/plugin-syntax-import-meta": "^7.2.0", - "@babel/template": "^7.7.0" - } - }, - "babel-plugin-extend-docs": { - "version": "file:packages-node/babel-plugin-extend-docs" - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "dev": true - }, - "babel-plugin-template-html-minifier": { - "version": "4.1.0", - "dev": true, - "requires": { - "clean-css": "^4.2.1", - "html-minifier-terser": "^5.0.0", - "is-builtin-module": "^3.0.0" - }, - "dependencies": { - "clean-css": { - "version": "4.2.4", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - } - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "dev": true - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "dev": true - }, - "bail": { - "version": "1.0.5" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base64-js": { - "version": "1.5.1" - }, - "base64id": { - "version": "2.0.0", - "dev": true - }, - "batch": { - "version": "0.6.1", - "dev": true - }, - "better-path-resolve": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-windows": "^1.0.0" - } - }, - "binary-extensions": { - "version": "2.2.0" - }, - "bl": { - "version": "4.1.0", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "boolbase": { - "version": "1.0.0" - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "requires": { - "fill-range": "^7.0.1" - } - }, - "breakword": { - "version": "1.0.5", - "dev": true, - "requires": { - "wcwidth": "^1.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "dev": true - }, - "browser-sync": { - "version": "2.28.1", - "dev": true, - "requires": { - "browser-sync-client": "^2.28.1", - "browser-sync-ui": "^2.28.1", - "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", - "chokidar": "^3.5.1", - "connect": "3.6.6", - "connect-history-api-fallback": "^1", - "dev-ip": "^1.0.1", - "easy-extender": "^2.3.4", - "eazy-logger": "4.0.0", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "^1.18.1", - "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", - "opn": "5.3.0", - "portscanner": "2.2.0", - "qs": "^6.11.0", - "raw-body": "^2.3.2", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", - "server-destroy": "1.0.1", - "socket.io": "^4.4.1", - "ua-parser-js": "^1.0.33", - "yargs": "^17.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "3.0.1", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "3.0.1", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "browser-sync-client": { - "version": "2.28.1", - "dev": true, - "requires": { - "etag": "1.8.1", - "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" - } - }, - "browser-sync-ui": { - "version": "2.28.1", - "dev": true, - "requires": { - "async-each-series": "0.1.1", - "chalk": "4.1.2", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" - } - }, - "browserslist": { - "version": "4.21.4", - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "browserslist-useragent": { - "version": "3.1.4", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "electron-to-chromium": "^1.4.67", - "semver": "^7.3.5", - "useragent": "^2.3.0", - "yamlparser": "^0.0.2" - } - }, - "browserstack-local": { - "version": "1.5.1", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "https-proxy-agent": "^5.0.1", - "is-running": "^2.1.0", - "ps-tree": "=1.2.0", - "temp-fs": "^0.9.9" - } - }, - "bs-recipes": { - "version": "1.3.4", - "dev": true - }, - "bs-snippet-injector": { - "version": "2.0.1", - "dev": true - }, - "buffer": { - "version": "5.7.1", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "dev": true - }, - "buffer-from": { - "version": "1.1.2" - }, - "builtin-modules": { - "version": "3.3.0" - }, - "bundlesize": { - "version": "1.0.0-beta.2", - "dev": true, - "requires": { - "axios": "^0.19.0", - "bytes": "^3.1.0", - "ci-env": "^1.4.0", - "commander": "^2.20.0", - "cosmiconfig": "^5.2.1", - "figures": "^3.0.0", - "github-build": "^1.2.0", - "glob": "^7.1.4", - "gzip-size": "^4.0.0", - "plur": "^3.1.1", - "prettycli": "^1.4.3", - "right-pad": "^1.0.1" - } - }, - "bytes": { - "version": "3.1.2", - "dev": true - }, - "cache-content-type": { - "version": "1.0.1", - "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "caller-callsite": { - "version": "2.0.0", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0" - }, - "camelcase-keys": { - "version": "6.2.2", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "dev": true - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001434" - }, - "ccount": { - "version": "1.1.0" - }, - "cem-plugin-vs-code-custom-data-generator": { - "version": "1.4.2", - "dev": true, - "requires": { - "prettier": "^2.7.1" - } - }, - "center-align": { - "version": "0.1.3", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chai": { - "version": "4.3.7", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-a11y-axe": { - "version": "1.4.0", - "dev": true, - "requires": { - "axe-core": "^4.3.3" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chalk-template": { - "version": "0.4.0", - "requires": { - "chalk": "^4.1.2" - } - }, - "changeset": { - "version": "0.2.6", - "dev": true, - "requires": { - "udc": "^1.0.0", - "underscore": "^1.8.3" - } - }, - "character-entities": { - "version": "1.2.4" - }, - "character-entities-html4": { - "version": "1.1.4", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4" - }, - "character-parser": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-regex": "^1.0.3" - } - }, - "character-reference-invalid": { - "version": "1.1.4" - }, - "chardet": { - "version": "0.7.0" - }, - "check-error": { - "version": "1.0.2", - "dev": true - }, - "check-html-links": { - "version": "0.2.4", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "command-line-args": "^5.1.1", - "glob": "^7.0.0", - "minimatch": "^3.0.4", - "node-fetch": "^3.0.0", - "sax-wasm": "^2.0.0", - "slash": "^4.0.0" - }, - "dependencies": { - "node-fetch": { - "version": "3.3.0", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "slash": { - "version": "4.0.0", - "dev": true - } - } - }, - "chokidar": { - "version": "3.5.2", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "1.1.4", - "dev": true - }, - "chrome-launcher": { - "version": "0.15.1", - "dev": true, - "requires": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - } - }, - "ci-env": { - "version": "1.17.0", - "dev": true - }, - "ci-info": { - "version": "3.6.2", - "dev": true - }, - "clean-css": { - "version": "5.3.1", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.7.0" - }, - "cli-truncate": { - "version": "2.1.0", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "8.0.1", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "2.1.2" - }, - "clone-deep": { - "version": "4.0.1", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clone-response": { - "version": "1.0.3", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - }, - "dependencies": { - "mimic-response": { - "version": "1.0.1", - "dev": true - } - } - }, - "co": { - "version": "4.6.0" - }, - "co-body": { - "version": "6.1.0", - "dev": true, - "requires": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "color": { - "version": "4.2.3", - "dev": true, - "requires": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-diff": { - "version": "1.2.0", - "dev": true - }, - "color-name": { - "version": "1.1.4" - }, - "color-string": { - "version": "1.9.1", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "2.0.19", - "dev": true - }, - "comma-separated-tokens": { - "version": "1.0.8", - "dev": true - }, - "command-line-args": { - "version": "5.1.2", - "requires": { - "array-back": "^6.1.2", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "6.1.3", - "dev": true, - "requires": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "array-back": { - "version": "4.0.2", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "typical": { - "version": "5.2.0", - "dev": true - } - } - }, - "commander": { - "version": "2.20.3" - }, - "comment-parser": { - "version": "1.2.4", - "dev": true - }, - "common-tags": { - "version": "1.8.2", - "dev": true - }, - "commondir": { - "version": "1.0.1" - }, - "compress-commons": { - "version": "4.1.1", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "concat-map": { - "version": "0.0.1" - }, - "concat-stream": { - "version": "1.6.2", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "condense-newlines": { - "version": "0.2.1", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-whitespace": "^0.3.0", - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "config-chain": { - "version": "1.1.13", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "confusing-browser-globals": { - "version": "1.0.11", - "dev": true - }, - "connect": { - "version": "3.6.6", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "dev": true - }, - "constantinople": { - "version": "3.1.2", - "dev": true, - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "construct-style-sheets-polyfill": { - "version": "3.1.0", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4" - }, - "convert-source-map": { - "version": "1.9.0" - }, - "cookie": { - "version": "0.4.2", - "dev": true - }, - "cookies": { - "version": "0.8.0", - "requires": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - } - }, - "core-js": { - "version": "2.6.12", - "dev": true - }, - "core-js-bundle": { - "version": "3.26.1", - "dev": true - }, - "core-js-compat": { - "version": "3.26.1", - "dev": true, - "requires": { - "browserslist": "^4.21.4" - } - }, - "core-util-is": { - "version": "1.0.3", - "dev": true - }, - "cors": { - "version": "2.8.5", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "5.2.1", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "crc-32": { - "version": "1.2.2", - "dev": true - }, - "crc32-stream": { - "version": "4.0.2", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "cross-env": { - "version": "7.0.3", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "dev": true, - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "dev": true - }, - "css-selector-parser": { - "version": "1.4.1" - }, - "css-shorthand-properties": { - "version": "1.1.1", - "dev": true - }, - "css-value": { - "version": "0.0.1", - "dev": true - }, - "csv": { - "version": "5.5.3", - "dev": true, - "requires": { - "csv-generate": "^3.4.3", - "csv-parse": "^4.16.3", - "csv-stringify": "^5.6.5", - "stream-transform": "^2.1.3" - } - }, - "csv-generate": { - "version": "3.4.3", - "dev": true - }, - "csv-parse": { - "version": "4.16.3", - "dev": true - }, - "csv-stringify": { - "version": "5.6.5", - "dev": true - }, - "custom-elements-manifest": { - "version": "1.0.0", - "dev": true - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "dev": true - }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - } - }, - "date-time": { - "version": "0.1.1", - "dev": true - }, - "debounce": { - "version": "1.2.1" - }, - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "debuglog": { - "version": "1.0.1" - }, - "decamelize": { - "version": "1.2.0", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "dev": true - } - } - }, - "decompress-response": { - "version": "6.0.0", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-eql": { - "version": "4.1.2", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "2.1.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" - } - }, - "deep-extend": { - "version": "0.6.0", - "dev": true - }, - "deep-freeze": { - "version": "0.0.1", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2" - }, - "defaults": { - "version": "1.0.4", - "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4" - } - } - }, - "defer-to-connect": { - "version": "2.0.1", - "dev": true - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-lazy-prop": { - "version": "2.0.0" - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delegates": { - "version": "1.0.0" - }, - "depd": { - "version": "2.0.0" - }, - "dependency-graph": { - "version": "0.9.0", - "dev": true - }, - "destroy": { - "version": "1.2.0" - }, - "detect-indent": { - "version": "6.1.0", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "dev": true - }, - "dev-ip": { - "version": "1.0.1", - "dev": true - }, - "devtools": { - "version": "7.26.0", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "@types/ua-parser-js": "^0.7.33", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "chrome-launcher": "^0.15.0", - "edge-paths": "^2.1.0", - "puppeteer-core": "^13.1.3", - "query-selector-shadow-dom": "^1.0.0", - "ua-parser-js": "^1.0.1", - "uuid": "^9.0.0" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "dev": true - }, - "@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - } - } - } - }, - "devtools-protocol": { - "version": "0.0.981744", - "dev": true - }, - "dezalgo": { - "version": "1.0.4", - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "diff": { - "version": "5.1.0", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "doctypes": { - "version": "1.1.0", - "dev": true - }, - "dom-serializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "dom5": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/parse5": "^2.2.34", - "clone": "^2.1.0", - "parse5": "^4.0.0" - }, - "dependencies": { - "@types/parse5": { - "version": "2.2.34", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "parse5": { - "version": "4.0.0", - "dev": true - } - } - }, - "domelementtype": { - "version": "2.3.0", - "dev": true - }, - "domhandler": { - "version": "5.0.3", - "dev": true, - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "dev": true, - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "dot-case": { - "version": "3.0.4", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "duplexer": { - "version": "0.1.2", - "dev": true - }, - "dynamic-import-polyfill": { - "version": "0.1.1", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0" - }, - "easy-extender": { - "version": "2.3.4", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "eazy-logger": { - "version": "4.0.0", - "dev": true - }, - "edge-paths": { - "version": "2.2.1", - "dev": true, - "requires": { - "@types/which": "^1.3.2", - "which": "^2.0.2" - } - }, - "editorconfig": { - "version": "0.15.3", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "dev": true - } - } - }, - "ee-first": { - "version": "1.1.1" - }, - "ejs": { - "version": "2.7.4", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.284" - }, - "emoji-regex": { - "version": "9.2.2" - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.2.1", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" - }, - "dependencies": { - "ws": { - "version": "8.2.3", - "dev": true, - "requires": {} - } - } - }, - "engine.io-client": { - "version": "6.4.0", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "dev": true, - "requires": {} - } - } - }, - "engine.io-parser": { - "version": "5.0.4", - "dev": true - }, - "enquirer": { - "version": "2.3.6", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "4.4.0" - }, - "errno": { - "version": "0.1.8", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "errorstacks": { - "version": "2.4.0", - "dev": true - }, - "es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0" - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "es-get-iterator": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, - "es-module-lexer": { - "version": "0.3.26" - }, - "es-module-shims": { - "version": "1.6.2", - "dev": true - }, - "es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "requires": { - "es-errors": "^1.3.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - } - }, - "es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promisify": { - "version": "6.1.1", - "dev": true - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3" - }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "dev": true - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-html": { - "version": "7.1.0", - "dev": true, - "requires": { - "htmlparser2": "^8.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-import-exports-imports-resolver": { - "version": "1.0.1", - "dev": true, - "requires": { - "resolve.exports": "^1.1.0", - "resolve.imports": "^1.2.6" - } - }, - "eslint-plugin-lit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.11.0.tgz", - "integrity": "sha512-jVqy2juQTAtOzj1ILf+ZW5GpDobXlSw0kvpP2zu2r8ZbW7KISt7ikj1Gw9DhNeirEU1UlSJR0VIWpdr4lzjayw==", - "dev": true, - "requires": { - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "^1.2.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "eslint-plugin-lit-a11y": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.2.tgz", - "integrity": "sha512-otrF1Q0uv6RUz/AflVgnf1rVzbfQJfgUmnB+xBl71IR8EwtJGEOrqGs3Ky/4APMda+maF6bsZLctppcz16m7Hw==", - "dev": true, - "requires": { - "aria-query": "^5.1.3", - "axe-core": "^4.3.3", - "axobject-query": "^2.2.0", - "dom5": "^3.0.1", - "emoji-regex": "^10.2.1", - "eslint-plugin-lit": "^1.10.1", - "eslint-rule-extender": "0.0.1", - "language-tags": "^1.0.5", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "requireindex": "~1.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "10.2.1", - "dev": true - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - } - } - }, - "eslint-plugin-no-only-tests": { - "version": "3.1.0", - "dev": true - }, - "eslint-plugin-wc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.1.0.tgz", - "integrity": "sha512-s/BGOtmpgQ2yifR6EC1OM9t0DwYLgg4ZAL07Kw4eXvBb5TYaPafI+65tswvnZvhH8FqcjERLbBZPPvYsvinkfg==", - "dev": true, - "requires": { - "is-valid-element-name": "^1.0.0", - "js-levenshtein-esm": "^1.2.0" - } - }, - "eslint-rule-extender": { - "version": "0.0.1", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "etag": { - "version": "1.8.1" - }, - "event-stream": { - "version": "3.3.4", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "eventemitter3": { - "version": "4.0.7", - "dev": true - }, - "execa": { - "version": "4.1.0", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "expand-template": { - "version": "2.0.3", - "dev": true - }, - "extend": { - "version": "3.0.2" - }, - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "extendable-error": { - "version": "0.1.7", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extract-zip": { - "version": "2.0.1", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-blob": { - "version": "3.2.0", - "dev": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "figures": { - "version": "3.2.0", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.0", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1" - }, - "semver": { - "version": "5.7.1" - } - } - }, - "find-replace": { - "version": "3.0.0", - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0" - } - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "dev": true, - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "flat": { - "version": "5.0.2", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.2.7", - "dev": true - }, - "follow-redirects": { - "version": "1.5.10", - "dev": true, - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "for-each": { - "version": "0.3.3", - "requires": { - "is-callable": "^1.1.3" - } - }, - "formdata-polyfill": { - "version": "4.0.10", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fresh": { - "version": "0.5.2" - }, - "from": { - "version": "0.1.7", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "fsevents": { - "version": "2.3.2", - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3" - }, - "gensync": { - "version": "1.0.0-beta.2" - }, - "get-caller-file": { - "version": "1.0.3", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true - }, - "get-stdin": { - "version": "5.0.1", - "dev": true - }, - "get-stream": { - "version": "6.0.1" - }, - "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - } - }, - "github-build": { - "version": "1.2.3", - "dev": true, - "requires": { - "axios": "0.21.3" - }, - "dependencies": { - "axios": { - "version": "0.21.3", - "dev": true, - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "dev": true - } - } - }, - "github-from-package": { - "version": "0.0.0", - "dev": true - }, - "github-markdown-css": { - "version": "4.0.0", - "dev": true - }, - "github-slugger": { - "version": "1.5.0", - "dev": true - }, - "glob": { - "version": "7.2.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0" - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "13.1.3", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "dev": true - } - } - }, - "gopd": { - "version": "1.0.1", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "11.8.5", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10" - }, - "graceful-readlink": { - "version": "1.0.1", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "gray-matter": { - "version": "4.0.3", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "gzip-size": { - "version": "4.1.0", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^3.0.0" - } - }, - "hamljs": { - "version": "0.6.2", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "dev": true - }, - "has-bigints": { - "version": "1.0.2" - }, - "has-color": { - "version": "0.1.7", - "dev": true - }, - "has-flag": { - "version": "4.0.0" - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hash-string": { - "version": "1.0.0", - "dev": true - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hast-to-hyperscript": { - "version": "9.0.1", - "dev": true, - "requires": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-from-parse5": { - "version": "6.0.1", - "dev": true, - "requires": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "dependencies": { - "@types/parse5": { - "version": "5.0.3", - "dev": true - } - } - }, - "hast-util-has-property": { - "version": "1.0.4", - "dev": true - }, - "hast-util-heading-rank": { - "version": "1.0.1", - "dev": true - }, - "hast-util-is-element": { - "version": "1.1.0", - "dev": true - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "dev": true - }, - "hast-util-raw": { - "version": "6.1.0", - "dev": true, - "requires": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "hast-util-sanitize": { - "version": "3.0.2", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "hast-util-to-html": { - "version": "7.1.3", - "dev": true, - "requires": { - "ccount": "^1.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "html-void-elements": "^1.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0", - "stringify-entities": "^3.0.1", - "unist-util-is": "^4.0.0", - "xtend": "^4.0.0" - } - }, - "hast-util-to-parse5": { - "version": "6.0.0", - "dev": true, - "requires": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hast-util-to-string": { - "version": "1.0.4", - "dev": true - }, - "hast-util-whitespace": { - "version": "1.0.4", - "dev": true - }, - "hastscript": { - "version": "6.0.0", - "dev": true, - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9" - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "html-minifier-terser": { - "version": "5.1.1", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "clean-css": { - "version": "4.2.4", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "4.1.1", - "dev": true - } - } - }, - "html-void-elements": { - "version": "1.0.5", - "dev": true - }, - "htmlparser2": { - "version": "8.0.2", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "http-assert": { - "version": "1.5.0", - "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "dependencies": { - "deep-equal": { - "version": "1.0.1" - } - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2" - }, - "statuses": { - "version": "1.5.0" - } - } - }, - "http-proxy": { - "version": "1.18.1", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "dependencies": { - "quick-lru": { - "version": "5.1.1", - "dev": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-id": { - "version": "1.0.2", - "dev": true - }, - "human-signals": { - "version": "1.1.1", - "dev": true - }, - "husky": { - "version": "6.0.0", - "dev": true - }, - "ibantools": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/ibantools/-/ibantools-4.3.9.tgz", - "integrity": "sha512-PxQuxv1vq1CgOtfBZIMThZBZEi/hFMmPiAzq4QPx2rmbrUVF/p4dFqvk9e9Z+hVXZxUmdW1cgJh21lpt1UYZzg==" - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idb": { - "version": "7.1.1", - "dev": true - }, - "ieee754": { - "version": "1.2.1" - }, - "ignore": { - "version": "5.2.4" - }, - "image-size": { - "version": "0.9.7", - "dev": true, - "requires": { - "queue": "6.0.2" - } - }, - "immutable": { - "version": "3.8.2", - "dev": true - }, - "import-fresh": { - "version": "2.0.0", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "dev": true - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "inflation": { - "version": "2.0.0", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "ini": { - "version": "1.3.8", - "dev": true - }, - "inline-style-parser": { - "version": "0.1.1", - "dev": true - }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "intersection-observer": { - "version": "0.12.2", - "dev": true - }, - "ip": { - "version": "1.1.8" - }, - "irregular-plurals": { - "version": "2.0.0", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-alphabetical": { - "version": "1.0.4" - }, - "is-alphanumerical": { - "version": "1.0.4", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5" - }, - "is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "is-callable": { - "version": "1.2.7" - }, - "is-ci": { - "version": "3.0.1", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "requires": { - "hasown": "^2.0.0" - } - }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "requires": { - "is-typed-array": "^1.1.13" - } - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4" - }, - "is-directory": { - "version": "0.3.1", - "dev": true - }, - "is-docker": { - "version": "2.2.1" - }, - "is-expression": { - "version": "3.0.0", - "dev": true, - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "is-extglob": { - "version": "2.1.1" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4" - }, - "is-interactive": { - "version": "2.0.0" - }, - "is-map": { - "version": "2.0.2", - "dev": true - }, - "is-module": { - "version": "1.0.0" - }, - "is-negated-glob": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==" - }, - "is-number": { - "version": "7.0.0" - }, - "is-number-like": { - "version": "1.0.8", - "dev": true, - "requires": { - "lodash.isfinite": "^3.3.2" - } - }, - "is-number-object": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-promise": { - "version": "2.2.2", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "dev": true - }, - "is-relative": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-running": { - "version": "2.1.0", - "dev": true - }, - "is-set": { - "version": "2.0.2", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-stream": { - "version": "2.0.1" - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-subdir": { - "version": "1.2.0", - "dev": true, - "requires": { - "better-path-resolve": "1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-unc-path": { - "version": "1.0.0", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "dev": true - }, - "is-valid-element-name": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-potential-custom-element-name": "^1.0.0" - } - }, - "is-weakmap": { - "version": "2.0.1", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "is-whitespace": { - "version": "0.3.0", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "2.0.5" - }, - "isbinaryfile": { - "version": "4.0.10", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isobject": { - "version": "3.0.1" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "javascript-stringify": { - "version": "2.1.0", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "js-beautify": { - "version": "1.14.7", - "dev": true, - "requires": { - "config-chain": "^1.1.13", - "editorconfig": "^0.15.3", - "glob": "^8.0.3", - "nopt": "^6.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "js-graph-algorithms": { - "version": "1.0.18", - "dev": true - }, - "js-levenshtein-esm": { - "version": "1.2.0", - "dev": true - }, - "js-stringify": { - "version": "1.0.2", - "dev": true - }, - "js-tokens": { - "version": "4.0.0" - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2" - }, - "json-buffer": { - "version": "3.0.1", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3" - }, - "jsonc-parser": { - "version": "3.2.0", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jstransformer": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "junk": { - "version": "1.0.3", - "dev": true - }, - "just-extend": { - "version": "4.2.1", - "dev": true - }, - "keygrip": { - "version": "1.1.0", - "requires": { - "tsscmp": "1.0.6" - } - }, - "keyv": { - "version": "4.5.2", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3" - }, - "kleur": { - "version": "4.1.5", - "dev": true - }, - "koa": { - "version": "2.13.4", - "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "dependencies": { - "statuses": { - "version": "1.5.0" - } - } - }, - "koa-compose": { - "version": "4.1.0" - }, - "koa-convert": { - "version": "2.0.0", - "requires": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - } - }, - "koa-etag": { - "version": "4.0.0", - "requires": { - "etag": "^1.8.1" - } - }, - "koa-send": { - "version": "5.0.1", - "requires": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - } - }, - "koa-static": { - "version": "5.0.0", - "requires": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "ky": { - "version": "0.30.0", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.22", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "lazy-cache": { - "version": "1.0.4", - "dev": true - }, - "lazystream": { - "version": "1.0.1", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lighthouse-logger": { - "version": "1.3.0", - "dev": true, - "requires": { - "debug": "^2.6.9", - "marky": "^1.2.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "limiter": { - "version": "1.1.5", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "dev": true - }, - "linkify-it": { - "version": "2.2.0", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lint-staged": { - "version": "10.5.4", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "dev": true - }, - "cosmiconfig": { - "version": "7.1.0", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - } - } - }, - "liquidjs": { - "version": "6.4.3", - "dev": true - }, - "listr2": { - "version": "3.14.0", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "rxjs": { - "version": "7.5.7", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - } - } - }, - "lit": { - "version": "2.4.1", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.4.0", - "lit-element": "^3.2.0", - "lit-html": "^2.4.0" - } - }, - "lit-element": { - "version": "3.2.2", - "dev": true, - "requires": { - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" - } - }, - "lit-html": { - "version": "2.4.0", - "dev": true, - "requires": { - "@types/trusted-types": "^2.0.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "load-yaml-file": { - "version": "0.2.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "dev": true - } - } - }, - "localtunnel": { - "version": "2.0.2", - "dev": true, - "requires": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "dev": true, - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "debug": { - "version": "4.3.2", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "follow-redirects": { - "version": "1.15.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "yargs": { - "version": "17.1.1", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "dev": true - } - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "dev": true - }, - "lodash.assignwith": { - "version": "4.2.0" - }, - "lodash.camelcase": { - "version": "4.3.0" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "dev": true - }, - "lodash.differencewith": { - "version": "4.5.0", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "dev": true - }, - "lodash.isfinite": { - "version": "3.3.2", - "dev": true - }, - "lodash.isobject": { - "version": "3.0.2", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "dev": true - }, - "lodash.startcase": { - "version": "4.4.0", - "dev": true - }, - "lodash.template": { - "version": "4.5.0", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.union": { - "version": "4.6.0", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "dev": true - }, - "lodash.zip": { - "version": "4.2.0", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "log-update": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "loglevel": { - "version": "1.8.1", - "dev": true - }, - "loglevel-plugin-prefix": { - "version": "0.8.4", - "dev": true - }, - "lolex": { - "version": "4.2.0", - "dev": true - }, - "longest": { - "version": "1.0.1", - "dev": true - }, - "longest-streak": { - "version": "2.0.4" - }, - "looks-same": { - "version": "7.3.0", - "dev": true, - "requires": { - "color-diff": "^1.1.0", - "concat-stream": "^1.6.2", - "fs-extra": "^8.1.0", - "js-graph-algorithms": "1.0.18", - "lodash": "^4.17.3", - "nested-error-stacks": "^2.1.0", - "parse-color": "^1.0.0", - "pngjs": "^6.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "loupe": { - "version": "2.3.6", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "requires": { - "yallist": "^4.0.0" - } - }, - "luxon": { - "version": "1.28.1", - "dev": true - }, - "magic-string": { - "version": "0.25.9", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "dev": true - }, - "map-obj": { - "version": "4.3.0", - "dev": true - }, - "map-stream": { - "version": "0.1.0", - "dev": true - }, - "markdown-it": { - "version": "10.0.0", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "entities": { - "version": "2.0.3", - "dev": true - } - } - }, - "markdown-table": { - "version": "2.0.0", - "requires": { - "repeat-string": "^1.0.0" - } - }, - "markdownlint-cli": { - "version": "0.17.0", - "dev": true, - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "js-yaml": "^3.13.1", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.15.0", - "minimatch": "~3.0.4", - "rc": "~1.2.7" - }, - "dependencies": { - "commander": { - "version": "2.9.0", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "dev": true - }, - "entities": { - "version": "1.1.2", - "dev": true - }, - "glob": { - "version": "7.1.7", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.15.0", - "dev": true, - "requires": { - "markdown-it": "8.4.2" - } - }, - "minimatch": { - "version": "3.0.8", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "marky": { - "version": "1.2.5", - "dev": true - }, - "maximatch": { - "version": "0.1.0", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - }, - "dependencies": { - "array-differ": { - "version": "1.0.0", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "arrify": { - "version": "1.0.1", - "dev": true - } - } - }, - "mdast-util-definitions": { - "version": "4.0.0", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-find-and-replace": { - "version": "1.1.1", - "requires": { - "escape-string-regexp": "^4.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "mdast-util-gfm": { - "version": "0.1.2", - "requires": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "0.1.3", - "requires": { - "ccount": "^1.0.0", - "mdast-util-find-and-replace": "^1.1.0", - "micromark": "^2.11.3" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, - "mdast-util-gfm-table": { - "version": "0.1.6", - "requires": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "requires": { - "mdast-util-to-markdown": "~0.6.0" - } - }, - "mdast-util-to-hast": { - "version": "10.2.0", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "0.6.5", - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0" - }, - "mdurl": { - "version": "1.0.1", - "dev": true - }, - "media-typer": { - "version": "0.3.0" - }, - "memorystream": { - "version": "0.3.1", - "dev": true - }, - "meow": { - "version": "6.1.1", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - }, - "dependencies": { - "type-fest": { - "version": "0.13.1", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1" - }, - "micromark": { - "version": "2.11.4", - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "micromark-extension-gfm": { - "version": "0.3.3", - "requires": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.5", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" - } - }, - "micromark-extension-gfm-autolink-literal": { - "version": "0.5.7", - "requires": { - "micromark": "~2.11.3" - } - }, - "micromark-extension-gfm-strikethrough": { - "version": "0.6.5", - "requires": { - "micromark": "~2.11.0" - } - }, - "micromark-extension-gfm-table": { - "version": "0.4.3", - "requires": { - "micromark": "~2.11.0" - } - }, - "micromark-extension-gfm-tagfilter": { - "version": "0.3.0" - }, - "micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "requires": { - "micromark": "~2.11.0" - } - }, - "micromatch": { - "version": "4.0.5", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.4.1", - "dev": true - }, - "mime-db": { - "version": "1.52.0" - }, - "mime-types": { - "version": "2.1.35", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0" - }, - "mimic-response": { - "version": "3.1.0", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7" - }, - "minimist-options": { - "version": "4.1.0", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "dev": true - } - } - }, - "minisearch": { - "version": "3.3.0", - "dev": true - }, - "mitt": { - "version": "1.2.0", - "dev": true - }, - "mixme": { - "version": "0.5.4", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "dev": true - }, - "mkdirp-promise": { - "version": "5.0.1", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "10.1.0", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "diff": { - "version": "5.0.0", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "minimatch": { - "version": "5.0.1", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "dev": true - } - } - }, - "mock-fs": { - "version": "5.2.0", - "dev": true - }, - "mock-require": { - "version": "3.0.3", - "dev": true, - "requires": { - "get-caller-file": "^1.0.2", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "moo": { - "version": "0.5.2", - "dev": true - }, - "ms": { - "version": "2.1.2" - }, - "multimatch": { - "version": "4.0.0", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "@types/minimatch": { - "version": "3.0.5", - "dev": true - } - } - }, - "mustache": { - "version": "2.3.2", - "dev": true - }, - "nanocolors": { - "version": "0.2.13" - }, - "nanoid": { - "version": "3.3.4", - "dev": true - }, - "napi-build-utils": { - "version": "1.0.2", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "negotiator": { - "version": "0.6.3" - }, - "neo-async": { - "version": "2.6.2", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.1", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "dev": true - }, - "nise": { - "version": "1.5.3", - "dev": true, - "requires": { - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^5.0.1", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "lolex": { - "version": "5.1.2", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - } - } - }, - "no-case": { - "version": "3.0.4", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-abi": { - "version": "3.33.0", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "4.3.0", - "dev": true - }, - "node-domexception": { - "version": "1.0.0", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-releases": { - "version": "2.0.6" - }, - "nopt": { - "version": "6.0.0", - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "normalize-path": { - "version": "3.0.0" - }, - "normalize-url": { - "version": "6.1.0", - "dev": true - }, - "not": { - "version": "0.1.0" - }, - "npm-normalize-package-bin": { - "version": "1.0.1" - }, - "npm-run-all": { - "version": "4.1.5", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "dev": true - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.1.1", - "requires": { - "boolbase": "^1.0.0" - } - }, - "nunjucks": { - "version": "3.2.3", - "dev": true, - "requires": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - }, - "dependencies": { - "commander": { - "version": "5.1.0", - "dev": true - } - } - }, - "object-assign": { - "version": "4.1.1", - "dev": true - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "object-is": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.5", - "requires": { - "array.prototype.reduce": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - } - }, - "object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "on-finished": { - "version": "2.3.0", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "only": { - "version": "0.0.2" - }, - "open": { - "version": "8.4.0", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "openurl": { - "version": "1.1.1", - "dev": true - }, - "opn": { - "version": "5.3.0", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "dev": true - } - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "ora": { - "version": "6.3.0", - "requires": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1" - }, - "chalk": { - "version": "5.2.0" - }, - "cli-cursor": { - "version": "4.0.0", - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "is-unicode-supported": { - "version": "1.3.0" - }, - "log-symbols": { - "version": "5.1.0", - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - }, - "restore-cursor": { - "version": "4.0.0", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "7.0.1", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2" - }, - "outdent": { - "version": "0.5.0", - "dev": true - }, - "p-cancelable": { - "version": "2.1.1", - "dev": true - }, - "p-filter": { - "version": "2.1.0", - "dev": true, - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "dev": true - } - } - }, - "p-finally": { - "version": "1.0.0", - "dev": true - }, - "p-iteration": { - "version": "1.1.8", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-queue": { - "version": "6.6.2", - "dev": true, - "requires": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - } - }, - "p-timeout": { - "version": "3.2.0", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0" - }, - "param-case": { - "version": "3.0.4", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "dev": true - } - } - }, - "parse-author": { - "version": "2.0.0", - "dev": true, - "requires": { - "author-regex": "^1.0.0" - } - }, - "parse-color": { - "version": "1.0.0", - "dev": true, - "requires": { - "color-convert": "~0.5.0" - }, - "dependencies": { - "color-convert": { - "version": "0.5.3", - "dev": true - } - } - }, - "parse-entities": { - "version": "2.0.0", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-ms": { - "version": "0.1.2", - "dev": true - }, - "parse5": { - "version": "5.1.1", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "dev": true, - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "parseurl": { - "version": "1.3.3" - }, - "pascal-case": { - "version": "3.1.2", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-is-inside": { - "version": "1.0.2", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7" - }, - "path-root": { - "version": "0.1.1", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "dev": true - }, - "path-to-regexp": { - "version": "1.8.0", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "dev": true - } - } - }, - "path-type": { - "version": "4.0.0" - }, - "pathval": { - "version": "1.1.1", - "dev": true - }, - "pattern-key-compare": { - "version": "1.0.0", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "pend": { - "version": "1.2.0", - "dev": true - }, - "picocolors": { - "version": "1.0.0" - }, - "picomatch": { - "version": "2.3.1" - }, - "pidtree": { - "version": "0.3.1", - "dev": true - }, - "pify": { - "version": "3.0.0", - "dev": true - }, - "pirates": { - "version": "4.0.5" - }, - "pkg-dir": { - "version": "3.0.0", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0" - } - } - }, - "playwright": { - "version": "1.32.1", - "dev": true, - "requires": { - "playwright-core": "1.32.1" - } - }, - "playwright-core": { - "version": "1.32.1", - "dev": true - }, - "please-upgrade-node": { - "version": "3.2.0", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "plugins-manager": { - "version": "0.3.1" - }, - "plur": { - "version": "3.1.1", - "dev": true, - "requires": { - "irregular-plurals": "^2.0.0" - } - }, - "pngjs": { - "version": "6.0.0", - "dev": true - }, - "polyfills-loader": { - "version": "1.7.6", - "dev": true, - "requires": { - "@babel/core": "^7.11.1", - "@open-wc/building-utils": "^2.18.3", - "@webcomponents/webcomponentsjs": "^2.4.0", - "abortcontroller-polyfill": "^1.4.0", - "core-js-bundle": "^3.6.0", - "deepmerge": "^4.2.2", - "dynamic-import-polyfill": "^0.1.1", - "es-module-shims": "^0.4.6", - "intersection-observer": "^0.7.0", - "parse5": "^5.1.1", - "regenerator-runtime": "^0.13.3", - "resize-observer-polyfill": "^1.5.1", - "systemjs": "^6.3.1", - "terser": "^4.6.7", - "whatwg-fetch": "^3.0.0" - }, - "dependencies": { - "es-module-shims": { - "version": "0.4.7", - "dev": true - }, - "intersection-observer": { - "version": "0.7.0", - "dev": true - } - } - }, - "portfinder": { - "version": "1.0.32", - "requires": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.6", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "portscanner": { - "version": "2.2.0", - "dev": true, - "requires": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - } - }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, - "postinstall-postinstall": { - "version": "2.1.0", - "dev": true - }, - "prebuild-install": { - "version": "7.1.1", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "detect-libc": { - "version": "2.0.1", - "dev": true - } - } - }, - "preferred-pm": { - "version": "3.0.3", - "dev": true, - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.0", - "dev": true - }, - "prettier-package-json": { - "version": "2.7.0", - "dev": true, - "requires": { - "@types/parse-author": "^2.0.0", - "commander": "^4.0.1", - "cosmiconfig": "^7.0.0", - "fs-extra": "^10.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4", - "parse-author": "^2.0.0", - "sort-object-keys": "^1.1.3", - "sort-order": "^1.0.1" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "dev": true - }, - "cosmiconfig": { - "version": "7.1.0", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "fs-extra": { - "version": "10.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "dev": true - } - } - }, - "pretty": { - "version": "2.0.0", - "dev": true, - "requires": { - "condense-newlines": "^0.2.1", - "extend-shallow": "^2.0.1", - "js-beautify": "^1.6.12" - } - }, - "pretty-bytes": { - "version": "5.6.0", - "dev": true - }, - "pretty-ms": { - "version": "0.2.2", - "dev": true, - "requires": { - "parse-ms": "^0.1.0" - } - }, - "prettycli": { - "version": "1.4.3", - "dev": true, - "requires": { - "chalk": "2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.1.0", - "dev": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "prismjs": { - "version": "1.29.0", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "dev": true - }, - "progress": { - "version": "2.0.3", - "dev": true - }, - "promise": { - "version": "7.3.1", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "proper-lockfile": { - "version": "4.1.2", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "property-information": { - "version": "5.6.0", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "proto-list": { - "version": "1.2.4", - "dev": true - }, - "providence-analytics": { - "version": "file:packages-node/providence-analytics", - "requires": { - "@babel/core": "^7.21.4", - "@babel/parser": "^7.21.4", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-syntax-export-default-from": "^7.18.6", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/register": "^7.21.0", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "@rollup/plugin-node-resolve": "^15.0.2", - "@swc/core": "^1.3.46", - "@types/chai": "^4.3.4", - "@types/inquirer": "^9.0.3", - "@types/mocha": "^10.0.1", - "@web/dev-server": "^0.4.2", - "@web/dev-server-core": "^0.4.0", - "anymatch": "^3.1.3", - "commander": "^2.20.3", - "glob": "^8.1.0", - "inquirer": "^9.1.5", - "is-negated-glob": "^1.0.0", - "lit-element": "~3.3.1", - "mock-fs": "^5.2.0", - "mock-require": "^3.0.3", - "parse5": "^7.1.2", - "read-package-tree": "5.3.1", - "semver": "^7.3.8", - "swc-to-babel": "^1.26.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.13", - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5" - } - } - }, - "@babel/compat-data": { - "version": "7.23.2" - }, - "@babel/core": { - "version": "7.23.2", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1" - } - } - }, - "@babel/generator": { - "version": "7.23.0", - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.22.15", - "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.1" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20" - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.15", - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.0", - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5" - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20" - }, - "@babel/helper-validator-option": { - "version": "7.22.15" - }, - "@babel/helpers": { - "version": "7.23.2", - "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - } - }, - "@babel/highlight": { - "version": "7.22.20", - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5" - } - } - }, - "@babel/parser": { - "version": "7.23.0" - }, - "@babel/register": { - "version": "7.21.0", - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - } - }, - "@babel/template": { - "version": "7.22.15", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.2", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.0", - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@rollup/plugin-node-resolve": { - "version": "15.2.3", - "requires": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - } - }, - "@rollup/pluginutils": { - "version": "5.0.2", - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@swc/core": { - "version": "1.3.96", - "requires": { - "@swc/core-darwin-arm64": "1.3.96", - "@swc/core-darwin-x64": "1.3.96", - "@swc/core-linux-arm-gnueabihf": "1.3.96", - "@swc/core-linux-arm64-gnu": "1.3.96", - "@swc/core-linux-arm64-musl": "1.3.96", - "@swc/core-linux-x64-gnu": "1.3.96", - "@swc/core-linux-x64-musl": "1.3.96", - "@swc/core-win32-arm64-msvc": "1.3.96", - "@swc/core-win32-ia32-msvc": "1.3.96", - "@swc/core-win32-x64-msvc": "1.3.96", - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.3.96", - "optional": true - }, - "@types/estree": { - "version": "1.0.0" - }, - "@types/resolve": { - "version": "1.20.2" - }, - "@web/dev-server": { - "version": "0.1.38", - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.4.1", - "@web/dev-server-rollup": "^0.4.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - } - }, - "@web/dev-server-core": { - "version": "0.4.1", - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "dependencies": { - "parse5": { - "version": "6.0.1" - } - } - }, - "@web/dev-server-rollup": { - "version": "0.4.1", - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.4.1", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@types/estree": { - "version": "0.0.39" - }, - "@types/resolve": { - "version": "1.17.1", - "requires": { - "@types/node": "*" - } - }, - "estree-walker": { - "version": "1.0.1" - }, - "parse5": { - "version": "6.0.1" - } - } - }, - "ansi-escapes": { - "version": "6.1.0", - "requires": { - "type-fest": "^3.0.0" - } - }, - "ansi-regex": { - "version": "6.0.1" - }, - "ansi-styles": { - "version": "6.2.1" - }, - "brace-expansion": { - "version": "2.0.1", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "browserslist": { - "version": "4.22.1", - "requires": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001561" - }, - "chalk": { - "version": "5.2.0" - }, - "cli-cursor": { - "version": "4.0.0", - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "cli-width": { - "version": "4.0.0" - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "command-line-args": { - "version": "5.2.1", - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0" - }, - "typical": { - "version": "4.0.0" - } - } - }, - "command-line-usage": { - "version": "7.0.1", - "requires": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - } - }, - "convert-source-map": { - "version": "2.0.0" - }, - "electron-to-chromium": { - "version": "1.4.578" - }, - "es-module-lexer": { - "version": "1.2.1" - }, - "escape-string-regexp": { - "version": "5.0.0" - }, - "estree-walker": { - "version": "2.0.2" - }, - "figures": { - "version": "5.0.0", - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "glob": { - "version": "8.1.0", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "has-flag": { - "version": "3.0.0" - }, - "inquirer": { - "version": "9.1.5", - "requires": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.2.0", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.8.0", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.1.0" - } - }, - "is-unicode-supported": { - "version": "1.3.0" - }, - "isbinaryfile": { - "version": "5.0.0" - }, - "lit-element": { - "version": "3.3.3", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "lit-html": { - "version": "2.8.0", - "requires": { - "@types/trusted-types": "^2.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "minimatch": { - "version": "5.1.6", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "mute-stream": { - "version": "1.0.0" - }, - "node-releases": { - "version": "2.0.13" - }, - "parse5": { - "version": "7.1.2", - "requires": { - "entities": "^4.4.0" - } - }, - "pify": { - "version": "4.0.1" - }, - "restore-cursor": { - "version": "4.0.0", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rxjs": { - "version": "7.8.0", - "requires": { - "tslib": "^2.1.0" - } - }, - "string-width": { - "version": "5.1.2", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table-layout": { - "version": "3.0.2", - "requires": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - } - }, - "tr46": { - "version": "3.0.0", - "requires": { - "punycode": "^2.1.1" - } - }, - "type-fest": { - "version": "3.7.1" - }, - "typical": { - "version": "7.1.1" - }, - "update-browserslist-db": { - "version": "1.0.13", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "7.0.0" - }, - "whatwg-url": { - "version": "11.0.0", - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "wordwrapjs": { - "version": "5.1.0" - }, - "wrap-ansi": { - "version": "8.1.0", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "dev": true - }, - "prr": { - "version": "1.0.1", - "dev": true - }, - "ps-tree": { - "version": "1.2.0", - "dev": true, - "requires": { - "event-stream": "=3.3.4" - } - }, - "pseudomap": { - "version": "1.0.2", - "dev": true - }, - "publish-docs": { - "version": "file:packages-node/publish-docs", - "requires": { - "command-line-args": "^5.1.1", - "fs-extra": "^9.0.0", - "glob": "^7.1.6" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0" - } - } - }, - "pug": { - "version": "2.0.4", - "dev": true, - "requires": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" - } - }, - "pug-attrs": { - "version": "2.0.4", - "dev": true, - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" - } - }, - "pug-code-gen": { - "version": "2.0.3", - "dev": true, - "requires": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.3", - "dev": true - }, - "pug-filters": { - "version": "3.1.1", - "dev": true, - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "dev": true - }, - "clean-css": { - "version": "4.2.4", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "2.1.0", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "uglify-js": { - "version": "2.8.29", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "wordwrap": { - "version": "0.0.2", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "pug-lexer": { - "version": "4.1.0", - "dev": true, - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } - }, - "pug-linker": { - "version": "3.0.6", - "dev": true, - "requires": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } - }, - "pug-load": { - "version": "2.0.12", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" - } - }, - "pug-parser": { - "version": "5.0.1", - "dev": true, - "requires": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" - } - }, - "pug-runtime": { - "version": "2.0.5", - "dev": true - }, - "pug-strip-comments": { - "version": "1.0.4", - "dev": true, - "requires": { - "pug-error": "^1.3.3" - } - }, - "pug-walk": { - "version": "1.1.8", - "dev": true - }, - "pump": { - "version": "3.0.0", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1" - }, - "puppeteer-core": { - "version": "13.7.0", - "dev": true, - "requires": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ws": { - "version": "8.5.0", - "dev": true, - "requires": {} - } - } - }, - "qs": { - "version": "6.11.0", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-selector-shadow-dom": { - "version": "1.0.1", - "dev": true - }, - "queue": { - "version": "6.0.2", - "dev": true, - "requires": { - "inherits": "~2.0.3" - } - }, - "queue-microtask": { - "version": "1.2.3" - }, - "quick-lru": { - "version": "4.0.1", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "2.0.0", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "statuses": { - "version": "2.0.1", - "dev": true - } - } - }, - "rc": { - "version": "1.2.8", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "dev": true - } - } - }, - "read-package-json": { - "version": "2.1.2", - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.3.1", - "requires": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "dev": true - } - } - }, - "type-fest": { - "version": "0.8.1", - "dev": true - } - } - }, - "read-yaml-file": { - "version": "1.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - } - } - }, - "readdir-glob": { - "version": "1.1.2", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "readdirp": { - "version": "3.6.0", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-copy": { - "version": "2.0.14", - "dev": true, - "requires": { - "errno": "^0.1.2", - "graceful-fs": "^4.1.4", - "junk": "^1.0.1", - "maximatch": "^0.1.0", - "mkdirp": "^0.5.1", - "pify": "^2.3.0", - "promise": "^7.0.1", - "rimraf": "^2.7.1", - "slash": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "pify": { - "version": "2.3.0", - "dev": true - }, - "slash": { - "version": "1.0.0", - "dev": true - } - } - }, - "redent": { - "version": "3.0.0", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "reduce-flatten": { - "version": "2.0.0", - "dev": true - }, - "regenerate": { - "version": "1.4.2", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "regexpu-core": { - "version": "5.2.2", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsgen": { - "version": "0.7.1", - "dev": true - }, - "regjsparser": { - "version": "0.9.1", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "dev": true - } - } - }, - "rehype-autolink-headings": { - "version": "5.1.0", - "dev": true, - "requires": { - "extend": "^3.0.0", - "hast-util-has-property": "^1.0.0", - "hast-util-heading-rank": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "rehype-parse": { - "version": "7.0.1", - "dev": true, - "requires": { - "hast-util-from-parse5": "^6.0.0", - "parse5": "^6.0.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "rehype-prism": { - "version": "1.0.2", - "dev": true, - "requires": { - "@types/node": "^14.14.31", - "@types/prismjs": "^1.16.6", - "prismjs": "^1.24.1", - "rehype-parse": "^7.0.1", - "unist-util-is": "^4.1.0", - "unist-util-select": "^4.0.0", - "unist-util-visit": "^3.1.0" - }, - "dependencies": { - "@types/node": { - "version": "14.18.33", - "dev": true - }, - "unist-util-visit": { - "version": "3.1.0", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "5.1.1", - "dev": true - } - } - }, - "unist-util-visit-parents": { - "version": "4.1.1", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "5.1.1", - "dev": true - } - } - } - } - }, - "rehype-raw": { - "version": "5.1.0", - "dev": true, - "requires": { - "hast-util-raw": "^6.1.0" - } - }, - "rehype-slug": { - "version": "4.0.1", - "dev": true, - "requires": { - "github-slugger": "^1.1.1", - "hast-util-has-property": "^1.0.0", - "hast-util-heading-rank": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "rehype-stringify": { - "version": "8.0.0", - "dev": true, - "requires": { - "hast-util-to-html": "^7.1.1" - } - }, - "relateurl": { - "version": "0.2.7", - "dev": true - }, - "remark": { - "version": "13.0.0", - "dev": true, - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - } - }, - "remark-extend": { - "version": "file:packages-node/remark-extend", - "requires": { - "not": "^0.1.0", - "remark-gfm": "^1.0.0", - "remark-parse": "^9.0.0", - "unified": "^9.2.0", - "unist-util-is": "^4.0.2", - "unist-util-select": "^3.0.1", - "unist-util-visit": "^2.0.2" - }, - "dependencies": { - "unist-util-select": { - "version": "3.0.4", - "requires": { - "css-selector-parser": "^1.0.0", - "not": "^0.1.0", - "nth-check": "^2.0.0", - "unist-util-is": "^4.0.0", - "zwitch": "^1.0.0" - } - } - } - }, - "remark-gfm": { - "version": "1.0.0", - "requires": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - } - }, - "remark-html": { - "version": "13.0.2", - "dev": true, - "requires": { - "hast-util-sanitize": "^3.0.0", - "hast-util-to-html": "^7.0.0", - "mdast-util-to-hast": "^10.0.0" - } - }, - "remark-parse": { - "version": "9.0.0", - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - }, - "remark-rehype": { - "version": "8.1.0", - "dev": true, - "requires": { - "mdast-util-to-hast": "^10.2.0" - } - }, - "remark-stringify": { - "version": "9.0.1", - "dev": true, - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "dev": true - }, - "repeat-string": { - "version": "1.6.1" - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "dev": true - }, - "requireindex": { - "version": "1.2.0", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - }, - "resolve-path": { - "version": "1.4.0", - "requires": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2" - }, - "http-errors": { - "version": "1.6.3", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3" - }, - "setprototypeof": { - "version": "1.1.0" - }, - "statuses": { - "version": "1.5.0" - } - } - }, - "resolve.exports": { - "version": "1.1.1", - "dev": true - }, - "resolve.imports": { - "version": "1.2.7", - "dev": true, - "requires": { - "pattern-key-compare": "^1.0.0" - } - }, - "resp-modifier": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "^2.2.0", - "minimatch": "^3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "responselike": { - "version": "2.0.1", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "resq": { - "version": "1.10.2", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1" - }, - "dependencies": { - "fast-deep-equal": { - "version": "2.0.1", - "dev": true - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "dev": true - }, - "reusify": { - "version": "1.0.4" - }, - "rfdc": { - "version": "1.3.0", - "dev": true - }, - "rgb2hex": { - "version": "0.2.5", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "right-pad": { - "version": "1.0.1", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rocket-preset-extend-lion-docs": { - "version": "file:packages-node/rocket-preset-extend-lion-docs", - "requires": { - "@babel/core": "^7.10.1", - "@babel/plugin-syntax-import-assertions": "^7.14.5", - "babel-plugin-extend-docs": "^0.5.3", - "es-module-lexer": "^0.3.6", - "glob": "^7.1.6", - "plugins-manager": "^0.3.0", - "remark-extend": "^0.5.1", - "unist-util-visit": "^2.0.2" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.0", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "rollup": { - "version": "2.79.1", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-babel": { - "version": "4.4.0", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "dependencies": { - "terser": { - "version": "5.15.1", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - } - } - }, - "rollup-plugin-workbox": { - "version": "5.2.1", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^8.4.0", - "@rollup/plugin-replace": "^2.3.3", - "pretty-bytes": "^5.3.0", - "rollup-plugin-terser": "^6.1.0", - "workbox-build": "^5.0.0" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "8.4.0", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deep-freeze": "^0.0.1", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.17.0" - } - }, - "@types/resolve": { - "version": "1.17.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "rollup-plugin-terser": { - "version": "6.1.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "jest-worker": "^26.0.0", - "serialize-javascript": "^3.0.0", - "terser": "^4.7.0" - } - }, - "serialize-javascript": { - "version": "3.1.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "dev": true - } - } - }, - "run-async": { - "version": "2.4.1" - }, - "run-parallel": { - "version": "1.2.0", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rx": { - "version": "4.1.0", - "dev": true - }, - "rxjs": { - "version": "5.5.12", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2" - }, - "sax-wasm": { - "version": "2.2.1", - "dev": true - }, - "section-matter": { - "version": "1.0.0", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - } - }, - "semver": { - "version": "7.5.4", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-compare": { - "version": "1.0.0", - "dev": true - }, - "send": { - "version": "0.16.2", - "dev": true, - "requires": { - "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.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "dev": true - }, - "statuses": { - "version": "1.4.0", - "dev": true - } - } - }, - "serialize-error": { - "version": "8.1.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "dev": true - } - } - }, - "serve-static": { - "version": "1.13.2", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "server-destroy": { - "version": "1.0.1", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "dev": true - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "setprototypeof": { - "version": "1.2.0" - }, - "shady-css-scoped-element": { - "version": "0.0.2", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "requires": { - "kind-of": "^6.0.2" - } - }, - "sharp": { - "version": "0.29.3", - "dev": true, - "requires": { - "color": "^4.0.1", - "detect-libc": "^1.0.3", - "node-addon-api": "^4.2.0", - "prebuild-install": "^7.0.0", - "semver": "^7.3.5", - "simple-get": "^4.0.0", - "tar-fs": "^2.1.1", - "tunnel-agent": "^0.6.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "shell-quote": { - "version": "1.8.0", - "dev": true - }, - "short-hash": { - "version": "1.0.0", - "dev": true, - "requires": { - "hash-string": "^1.0.0" - } - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "sigmund": { - "version": "1.0.1", - "dev": true - }, - "signal-exit": { - "version": "3.0.7" - }, - "simple-concat": { - "version": "1.0.1", - "dev": true - }, - "simple-get": { - "version": "4.0.1", - "dev": true, - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "dev": true - } - } - }, - "singleton-manager": { - "version": "file:packages/singleton-manager" - }, - "sinon": { - "version": "7.5.0", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.3", - "diff": "^3.5.0", - "lolex": "^4.2.0", - "nise": "^1.5.2", - "supports-color": "^5.5.0" - }, - "dependencies": { - "diff": { - "version": "3.5.0", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "slugify": { - "version": "1.6.5", - "dev": true - }, - "smartwrap": { - "version": "2.0.2", - "dev": true, - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - } - } - }, - "socket.io": { - "version": "4.5.4", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.2.1", - "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.2.1" - } - }, - "socket.io-adapter": { - "version": "2.4.0", - "dev": true - }, - "socket.io-client": { - "version": "4.6.1", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.4.0", - "socket.io-parser": "~4.2.1" - } - }, - "socket.io-parser": { - "version": "4.2.1", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "sort-object-keys": { - "version": "1.1.3", - "dev": true - }, - "sort-order": { - "version": "1.0.1", - "dev": true - }, - "source-map": { - "version": "0.6.1" - }, - "source-map-support": { - "version": "0.5.21", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "dev": true - }, - "space-separated-tokens": { - "version": "1.1.5", - "dev": true - }, - "spawndamnit": { - "version": "2.0.0", - "dev": true, - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "dev": true - }, - "which": { - "version": "1.3.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "2.1.2", - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.1.1", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.12" - }, - "split": { - "version": "0.3.3", - "dev": true, - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true - }, - "ssl-root-cas": { - "version": "1.3.1", - "dev": true, - "requires": { - "@coolaj86/urequest": "^1.3.6" - } - }, - "statuses": { - "version": "1.3.1", - "dev": true - }, - "stdin-discarder": { - "version": "0.1.0", - "requires": { - "bl": "^5.0.0" - }, - "dependencies": { - "bl": { - "version": "5.1.0", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "readable-stream": { - "version": "3.6.2", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-combiner": { - "version": "0.0.4", - "dev": true, - "requires": { - "duplexer": "~0.1.1" - } - }, - "stream-read-all": { - "version": "3.0.1" - }, - "stream-throttle": { - "version": "0.1.3", - "dev": true, - "requires": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - } - }, - "stream-transform": { - "version": "2.1.3", - "dev": true, - "requires": { - "mixme": "^0.5.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "string-argv": { - "version": "0.3.1", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "dev": true - } - } - }, - "string.prototype.padend": { - "version": "3.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - } - }, - "stringify-entities": { - "version": "3.1.0", - "dev": true, - "requires": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true - }, - "strip-bom-string": { - "version": "1.0.0", - "dev": true - }, - "strip-comments": { - "version": "1.0.2", - "dev": true, - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "style-to-object": { - "version": "0.3.0", - "dev": true, - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0" - }, - "swc-to-babel": { - "version": "1.26.0", - "requires": { - "@babel/parser": "^7.18.13", - "@babel/traverse": "^7.1.6", - "@babel/types": "^7.2.0", - "@swc/core": "^1.2.242" - } - }, - "symbol-observable": { - "version": "1.0.1", - "dev": true - }, - "systemjs": { - "version": "6.13.0", - "dev": true - }, - "table-layout": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "dev": true - }, - "typical": { - "version": "5.2.0", - "dev": true - } - } - }, - "tar-fs": { - "version": "2.1.1", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "temp-dir": { - "version": "1.0.0", - "dev": true - }, - "temp-fs": { - "version": "0.9.9", - "dev": true, - "requires": { - "rimraf": "~2.5.2" - }, - "dependencies": { - "rimraf": { - "version": "2.5.4", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - } - } - }, - "tempy": { - "version": "0.3.0", - "dev": true, - "requires": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.3.1", - "dev": true - } - } - }, - "term-size": { - "version": "2.2.1", - "dev": true - }, - "terser": { - "version": "4.8.1", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "through": { - "version": "2.3.8" - }, - "time-require": { - "version": "0.1.2", - "dev": true, - "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "dev": true - }, - "chalk": { - "version": "0.4.0", - "dev": true, - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } - }, - "strip-ansi": { - "version": "0.1.1", - "dev": true - } - } - }, - "tmp": { - "version": "0.0.33", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0" - }, - "to-regex-range": { - "version": "5.0.1", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1" - }, - "token-stream": { - "version": "0.0.1", - "dev": true - }, - "tr46": { - "version": "1.0.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "trim-newlines": { - "version": "3.0.1", - "dev": true - }, - "trough": { - "version": "1.0.5" - }, - "tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "2.4.1" - }, - "tsscmp": { - "version": "1.0.6" - }, - "tty-table": { - "version": "4.1.6", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "csv": "^5.5.0", - "kleur": "^4.1.4", - "smartwrap": "^2.0.2", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^17.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - } - }, - "typedarray": { - "version": "0.0.6", - "dev": true - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "typical": { - "version": "4.0.0" - }, - "ua-parser-js": { - "version": "1.0.33", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "dev": true - }, - "udc": { - "version": "1.0.1", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "dev": true, - "optional": true - }, - "uglify-to-browserify": { - "version": "1.0.2", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unbzip2-stream": { - "version": "1.4.3", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "dev": true - }, - "underscore": { - "version": "1.13.6", - "dev": true - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "dev": true - }, - "unified": { - "version": "9.2.2", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0" - } - } - }, - "unique-string": { - "version": "1.0.0", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unist-builder": { - "version": "2.0.3", - "dev": true - }, - "unist-util-generated": { - "version": "1.1.6", - "dev": true - }, - "unist-util-is": { - "version": "4.1.0" - }, - "unist-util-position": { - "version": "3.1.0", - "dev": true - }, - "unist-util-remove": { - "version": "2.1.0", - "dev": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-select": { - "version": "4.0.1", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "css-selector-parser": "^1.0.0", - "nth-check": "^2.0.0", - "unist-util-is": "^5.0.0", - "zwitch": "^2.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "5.1.1", - "dev": true - }, - "zwitch": { - "version": "2.0.4", - "dev": true - } - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "dev": true - }, - "upath": { - "version": "1.2.0", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "useragent": { - "version": "2.3.0", - "dev": true, - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "dev": true - } - } - }, - "utf8": { - "version": "3.0.0", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2" - }, - "util-promisify": { - "version": "2.1.0", - "requires": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utils-merge": { - "version": "1.0.1", - "dev": true - }, - "uuid": { - "version": "9.0.0", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.1.0", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "valid-url": { - "version": "1.0.9", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2" - }, - "vfile": { - "version": "4.2.1", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-location": { - "version": "3.2.0", - "dev": true - }, - "vfile-message": { - "version": "2.0.4", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "void-elements": { - "version": "2.0.1", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "requires": { - "defaults": "^1.0.3" - } - }, - "web-namespaces": { - "version": "1.1.4", - "dev": true - }, - "web-streams-polyfill": { - "version": "3.2.1", - "dev": true - }, - "webdriver": { - "version": "7.26.0", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "got": "^11.0.2", - "ky": "0.30.0", - "lodash.merge": "^4.6.1" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "dev": true - }, - "@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - } - } - } - }, - "webdriverio": { - "version": "7.26.0", - "dev": true, - "requires": { - "@types/aria-query": "^5.0.0", - "@types/node": "^18.0.0", - "@wdio/config": "7.26.0", - "@wdio/logger": "7.26.0", - "@wdio/protocols": "7.22.0", - "@wdio/repl": "7.26.0", - "@wdio/types": "7.26.0", - "@wdio/utils": "7.26.0", - "archiver": "^5.0.0", - "aria-query": "^5.0.0", - "css-shorthand-properties": "^1.1.1", - "css-value": "^0.0.1", - "devtools": "7.26.0", - "devtools-protocol": "^0.0.1069585", - "fs-extra": "^10.0.0", - "grapheme-splitter": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "lodash.isobject": "^3.0.2", - "lodash.isplainobject": "^4.0.6", - "lodash.zip": "^4.2.0", - "minimatch": "^5.0.0", - "puppeteer-core": "^13.1.3", - "query-selector-shadow-dom": "^1.0.0", - "resq": "^1.9.1", - "rgb2hex": "0.2.5", - "serialize-error": "^8.0.0", - "webdriver": "7.26.0" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "dev": true - }, - "@wdio/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.26.0.tgz", - "integrity": "sha512-mOTfWAGQ+iT58iaZhJMwlUkdEn3XEWE4jthysMLXFnSuZ2eaODVAiK31SmlS/eUqgSIaupeGqYUrtCuSNbLefg==", - "dev": true, - "requires": { - "@types/node": "^18.0.0", - "got": "^11.8.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "devtools-protocol": { - "version": "0.0.1069585", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "universalify": { - "version": "2.0.0", - "dev": true - } - } - }, - "webidl-conversions": { - "version": "4.0.2", - "dev": true - }, - "whatwg-fetch": { - "version": "3.6.2", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "dev": true - }, - "which-pm": { - "version": "2.0.0", - "dev": true, - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, - "which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } - }, - "window-size": { - "version": "0.1.0", - "dev": true - }, - "wireit": { - "version": "0.7.3", - "dev": true, - "requires": { - "braces": "^3.0.2", - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "jsonc-parser": "^3.0.0", - "proper-lockfile": "^4.1.2" - }, - "dependencies": { - "chokidar": { - "version": "3.5.3", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - } - } - }, - "with": { - "version": "5.1.1", - "dev": true, - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "dev": true - } - } - }, - "wordwrap": { - "version": "1.0.0", - "dev": true - }, - "wordwrapjs": { - "version": "4.0.1", - "dev": true, - "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "dependencies": { - "typical": { - "version": "5.2.0", - "dev": true - } - } - }, - "workbox-background-sync": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - } - } - }, - "workbox-broadcast-update": { - "version": "6.5.4", - "dev": true, - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-build": { - "version": "5.1.4", - "dev": true, - "requires": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "lodash.template": "^4.5.0", - "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", - "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "jest-worker": { - "version": "24.9.0", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - } - }, - "rollup": { - "version": "1.32.1", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - } - }, - "rollup-plugin-terser": { - "version": "5.3.1", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - } - }, - "source-map": { - "version": "0.7.4", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "workbox-broadcast-update": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-cacheable-response": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-core": { - "version": "5.1.4", - "dev": true - }, - "workbox-expiration": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-routing": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-strategies": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "workbox-window": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.5.4", - "dev": true, - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-core": { - "version": "6.5.4", - "dev": true - }, - "workbox-expiration": { - "version": "6.5.4", - "dev": true, - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-google-analytics": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - }, - "workbox-routing": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-strategies": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - } - } - }, - "workbox-navigation-preload": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - } - } - }, - "workbox-precaching": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - } - } - }, - "workbox-range-requests": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - } - } - }, - "workbox-routing": { - "version": "6.5.4", - "dev": true, - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-strategies": { - "version": "6.5.4", - "dev": true, - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-streams": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - }, - "dependencies": { - "workbox-core": { - "version": "5.1.4", - "dev": true - }, - "workbox-routing": { - "version": "5.1.4", - "dev": true, - "requires": { - "workbox-core": "^5.1.4" - } - } - } - }, - "workbox-sw": { - "version": "5.1.4", - "dev": true - }, - "workbox-window": { - "version": "6.5.4", - "dev": true, - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.4" - } - }, - "workerpool": { - "version": "6.2.1", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "7.5.9", - "requires": {} - }, - "xmlhttprequest-ssl": { - "version": "2.0.0", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "dev": true - }, - "yallist": { - "version": "4.0.0" - }, - "yaml": { - "version": "1.10.2", - "dev": true - }, - "yamlparser": { - "version": "0.0.2", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "yargs-parser": { - "version": "21.1.1", - "dev": true - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "dev": true - } - } - }, - "yargs-unparser": { - "version": "2.0.0", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "ylru": { - "version": "1.3.2" - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "zwitch": { - "version": "1.0.5" } } } diff --git a/package.json b/package.json index 78ad611a9c..1104c857ec 100644 --- a/package.json +++ b/package.json @@ -22,15 +22,14 @@ "lint:versions": "node ./scripts/lint-versions.js", "prepare": "husky install", "release": "changeset publish", - "rm-all-node_modules": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules", - "rocket:build": "rocket build", - "rocket:build:start": "web-dev-server --root-dir _site --open", + "repo:clean-slate": "git clean -dfX", + "repo:diff-package-lock": "npx diff-package-lock", "start": "rocket start", "test": "run-p test:browser test:node", "test:browser": "web-test-runner --coverage", "test:browserstack": "web-test-runner --config ./web-test-runner-browserstack.config.js", "test:node": "npm run test:node --workspaces --if-present", - "test:screenshots": "rimraf screenshots/.diff/ && rimraf screenshots/.current/ && mocha --require scripts/screenshots/bootstrap.js --exit --timeout 10000 \"packages/**/test/*.screenshots-test.js\"", + "test:screenshots": "npx rimraf screenshots/.diff/ && npx rimraf screenshots/.current/ && mocha --require scripts/screenshots/bootstrap.js --exit --timeout 10000 \"packages/**/test/*.screenshots-test.js\"", "test:screenshots:update": "cross-env UPDATE_SCREENSHOTS=true npm run test:screenshots", "types": "npm run types --workspaces --if-present", "types-check-only": "npm run types-check-only --workspaces --if-present" @@ -40,71 +39,57 @@ "packages-node/*" ], "devDependencies": { - "@babel/core": "^7.21.3", + "@babel/core": "^7.24.5", "@bundled-es-modules/fetch-mock": "^6.5.2", - "@changesets/cli": "^2.26.1", - "@custom-elements-manifest/analyzer": "^0.8.0", - "@open-wc/building-rollup": "^1.10.0", - "@open-wc/eslint-config": "^10.0.0", + "@changesets/cli": "^2.27.1", + "@custom-elements-manifest/analyzer": "^0.10.2", + "@open-wc/building-rollup": "^2.2.3", + "@open-wc/eslint-config": "^12.0.3", "@open-wc/scoped-elements": "^3.0.5", - "@open-wc/testing": "^3.1.7", - "@open-wc/testing-helpers": "^2.2.0", - "@rocket/blog": "^0.4.0", + "@open-wc/testing": "^4.0.0", + "@open-wc/testing-helpers": "^3.0.1", + "@rocket/blog": "0.4.0", "@rocket/cli": "^0.10.2", "@rocket/launch": "^0.6.0", "@rocket/search": "^0.5.1", "@types/autosize": "^4.0.3", - "@types/chai-as-promised": "^7.1.5", - "@types/chai-dom": "^0.0.8", - "@types/convert-source-map": "^1.5.2", - "@types/fs-extra": "^9.0.13", - "@types/glob": "^7.1.3", - "@types/istanbul-reports": "^3.0.1", - "@types/mocha": "^10.0.1", - "@types/prettier": "^2.7.2", - "@web/dev-server": "^0.4.2", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-dom": "^1.11.3", + "@types/fs-extra": "^11.0.4", + "@types/glob": "^8.1.0", + "@types/mocha": "^10.0.6", + "@types/prettier": "^2.7.3", "@web/dev-server-legacy": "^0.1.7", - "@web/test-runner": "^0.15.2", - "@web/test-runner-browserstack": "^0.5.1", - "@web/test-runner-commands": "^0.6.5", - "@web/test-runner-playwright": "^0.9.0", - "@webcomponents/scoped-custom-element-registry": "^0.0.8", - "@yarnpkg/lockfile": "^1.1.0", - "babel-polyfill": "^6.26.0", + "@web/test-runner": "^0.18.1", + "@web/test-runner-browserstack": "^0.7.1", + "@web/test-runner-commands": "^0.9.0", + "@web/test-runner-playwright": "^0.11.0", + "@webcomponents/scoped-custom-element-registry": "^0.0.9", "bundlesize": "^1.0.0-beta.2", - "cem-plugin-vs-code-custom-data-generator": "^1.4.1", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "changeset": "^0.2.6", - "cross-env": "^7.0.2", - "es6-promisify": "^6.1.1", + "cem-plugin-vs-code-custom-data-generator": "^1.4.2", + "chai": "^4.4.1", + "chai-as-promised": "^7.1.2", + "cross-env": "^7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-lit": "^1.11.0", - "eslint-plugin-lit-a11y": "^4.1.2", "eslint-plugin-wc": "^2.1.0", - "globby": "^13.1.3", - "husky": "^6.0.0", - "lint-staged": "^10.5.4", + "globby": "^14.0.1", + "husky": "^9.0.11", + "lint-staged": "^15.2.2", "looks-same": "^7.3.0", - "markdownlint-cli": "^0.17.0", - "minimist": "^1.2.6", - "mkdirp-promise": "^5.0.1", - "mocha": "^10.1.0", + "markdownlint-cli": "^0.40.0", + "mocha": "^10.4.0", "npm-run-all": "^4.1.5", - "playwright": "^1.32.1", "postinstall-postinstall": "^2.1.0", - "prettier": "^2.0.5", - "prettier-package-json": "^2.1.3", - "remark-html": "^13.0.1", - "rimraf": "^2.6.3", + "prettier": "^2.8.8", + "prettier-package-json": "^2.8.0", + "remark-html": "^13.0.2", "rollup": "^2.79.1", - "semver": "^7.5.2", - "sinon": "^7.5.0", - "ssl-root-cas": "^1.3.1", + "semver": "^7.6.2", + "sinon": "^17.0.2", "typescript": "^4.9.5", - "wireit": "^0.7.2" + "wireit": "^0.14.4" }, "bundlesize": [ { @@ -114,11 +99,57 @@ ], "comments": { "overrides": { + "//": [ + "For best compatibility, we sometimes need to override a package version depended upon by multiple packages." + ], "sharp": [ "Version of 'sharp' package we get via '@rocket/cli' is too old to be built on a Mac.", "But updating package '@rocket-cli' causes our portal to break. Reason unknown.", "So, we override the sharp version in here until '@rocket-cli' can be updated." ] + }, + "olderVersions": { + "//": [ + "Our aim is to keep all depencies up-to-date(for maintainability, performance and security).", + "We use [npm-outdated](https://marketplace.visualstudio.com/items?itemName=mskelton.npm-outdated) as a helper for this.", + "Sometimes we can't bc/o incompatibility issues." + ], + "eslint": [ + "Can't be updated yet to 9.x, because of eslint-plugin-import" + ], + "chai": [ + "Can't be updated to 5.x, because of (unmaintained) chai-as-promised (TODO: phase out chai-as-promised)" + ], + "typescript": [ + "Since changes in types can be reflected in the code, we want to keep this stable for a longer period of time.", + "As semver is not followed, we keep our major versions aligned with a minot of TS (hence '~' instead of '^' is used)" + ], + "remark-html": [ + "Can't be updated to 14.x, because remark-html is still in commonjs." + ], + "@rocket/*": [ + "Pinned, as newer versions require a complete overhaul of docs. Later we will move to astro." + ], + "looks-same": [ + "Part of ./scripts/screenshots, which is not incorporated atm in automated test suite. TODO: re-evaluate solution and whether visual regression testing needs to be part of this repo" + ], + "@open-wc/building-rollup": [ + "Can't be updated to 3.x, as v2 seems to be better compatible with rocket setup" + ] + }, + "toBeRemoved": { + "//": [ + "For maintainability, performance and security, we want to keep the number of dependencies as low as possible (in case functionality can be achieved via existing dependencies or platform functionality)." + ], + "@bundled-es-modules/fetch-mock": [ + "Can be achieved via sinon as well" + ], + "publish-docs/fs-extra | @types/fs-extra": [ + "Copy can be achieved via node's fs module" + ], + "@web/dev-server-legacy": [ + "Only needed for browserstack config. Can be achieved via @web/dev-server" + ] } }, "overrides": { diff --git a/packages-node/nodejs-helpers/package.json b/packages-node/nodejs-helpers/package.json index c2864d3e83..9243f2d1ac 100644 --- a/packages-node/nodejs-helpers/package.json +++ b/packages-node/nodejs-helpers/package.json @@ -29,12 +29,12 @@ "types": "wireit" }, "dependencies": { - "@babel/generator": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.22.5", - "es-module-lexer": "^0.3.6", - "globby": "^13.2.0", + "@babel/generator": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "es-module-lexer": "^0.3.26", + "globby": "^14.0.1", "prettier": "^2.8.8" }, "keywords": [ diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/ChangeLog b/packages-node/providence-analytics/inlined-swc-to-babel/ChangeLog new file mode 100644 index 0000000000..aa4eff1046 --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/ChangeLog @@ -0,0 +1,266 @@ +2023.10.18, v3.0.1 + +fix: +- d37e664 types + +2023.10.17, v3.0.0 + +feature: +- 7aefd72 types +- aa0ef7b babel v8 +- be3c7a6 ImportAttributes +- f927c37 package: putout v32.2.2 +- 4a8b9e3 package: eslint-plugin-putout v20.0.0 + +2023.07.18, v2.2.0 + +fix: +- ce8a51a incorrect line number calculation and fix bug with JSX elements not having loc keys (#20) + +2023.07.12, v2.1.0 + +feature: +- 68dfe2d package: eslint-plugin-putout v18.1.0 +- a303550 package: c8 v8.0.0 +- 8e70e4c package: putout v30.4.0 +- 8f5df0a package: eslint-plugin-n v16.0.1 +- 19700e5 package: nodemon v3.0.1 + +2023.04.26, v2.0.0 + +fix: +- 606fd45 handle null element in holey arrays (#18) + +feature: +- 6a1e3a3 swc-to-babel: drop support of node < 16 +- ab3263e swc-to-babel: use @putout/printer +- d21f30e package: eslint-plugin-putout v17.5.1 +- e14d18c package: check-dts v0.7.1 +- a3cabd8 package: typescript v5.0.4 +- 48a0b6c package: putout v29.3.0 + +2022.10.12, v1.26.0 + +fix: +- swc-to-babel: parenthesized const assertion error (#15) + +feature: +- package: supertape v8.1.0 + +2022.08.24, v1.25.1 + +fix: +- getters/setters: make getters work properly and fix tests (#12) + +2022.08.23, v1.25.0 + +feature: +- make source an optional parameter (#10) + +2022.08.23, v1.24.0 + +feature: +- add type definitions (#8) + +2022.08.23, v1.23.0 + +feature: +- add support for GetterProperty and SetterProperty (#7) + +2022.08.21, v1.22.0 + +feature: +- add support of KeyValueProperty nodes + +2022.08.21, v1.21.0 + +feature: +- package: eslint-plugin-putout v16.0.1 +- package: putout v27.1.0 +- add support of TSKeywordType (close #1) + +2022.06.12, v1.20.1 + +fix: +- swc-to-babel: add directives + + +2022.06.12, v1.20.0 + +feature: +- swc-to-babel: add support of ExportDefaultDeclaration + + +2022.06.11, v1.19.0 + +feature: +- swc-to-babel: ObjectProperty instead of AssignmentPatternProperty + + +2022.06.11, v1.18.0 + +feature: +- swc-to-babel: add support of ClassExpression and ExportSpecifier + + +2022.06.11, v1.17.1 + +fix: +- swc-to-babl: ImportSpecifier + + +2022.06.11, v1.17.0 + +feature: +- swc-to-babel: add support of ObjectProperty + + +2022.06.11, v1.16.1 + +fix: +- swc-to-babel: ArrowFunctionExpression + + +2022.06.11, v1.16.0 + +feature: +- swc-to-babel: NewExpression: arguments field should always present + + +2022.06.11, v1.15.0 + +feature: +- swc-to-babel: add support of ArrayExpression + + +2022.06.11, v1.14.0 + +feature: +- swc-to-babel: add support of FunctionDeclaration + + +2022.06.10, v1.13.0 + +feature: +- swc-to-babel: TSAliasDeclaration + + +2022.06.10, v1.12.0 + +feature: +- swc-to-babel: handle typeParameters + + +2022.06.10, v1.11.2 + +feature: +- swc-to-babel: improve SpreadElement support + + +2022.06.10, v1.11.1 + +feature: +- swc-to-babel: improve support of SpreadElement + + +2022.06.10, v1.11.0 + +feature: +- swc-to-babel: add support of NewExpression + + +2022.06.10, v1.10.0 + +feature: +- swc-to-babel: improve support of MemberExpression + + +2022.06.10, v1.9.0 + +feature: +- swc-to-babel: add support of ClassDeclaration + + +2022.06.10, v1.8.0 + +feature: +- swc-to-babel: add support of ParenthesisExpression + + +2022.06.10, v1.7.1 + +feature: +- swc-to-babel: improve support of typeAnnotation in Identifiers +- swc-to-babel: add support of ExportNamedDeclaration and ExportDefaultDeclaration + + +2022.06.10, v1.7.0 + +feature: +- swc-to-babel: add support of ExportNamedDeclaration and ExportDefaultDeclaration + + +2022.06.09, v1.6.0 + +feature: +- swc-to-babel: CallExpression has no typeArguments +- swc-to-babel: TemplateElement + + +2022.06.09, v1.5.0 + +feature: +- swc-to-babel: TemplateElement +- package: eslint-plugin-putout v15.6.0 + + +2022.06.09, v1.4.0 + +feature: +- swc-to-babel: add support of typescript + + +2022.06.09, v1.3.1 + +fix: +- swc-to-babel: position + + +2022.06.09, v1.3.0 + +feature: +- swc-to-babel: add support of BlockStatement + + +2022.06.09, v1.2.0 + +feature: +- swc-to-babel: CallExpression + + +2022.06.09, v1.1.1 + +fix: +- swc-to-babel: no type + + +2022.06.09, v1.1.0 + +feature: +- (package) supertape v7.3.0 +- (package) putout v26.13.0 +- (package) madrun v9.0.4 +- swc-to-babel: add support of Identifier + + +2022.02.06, v1.0.2 + +feature: +- swc-to-babel: rm unused + + +2022.02.05, v1.0.1 + +fix: +- lint + diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/LICENSE b/packages-node/providence-analytics/inlined-swc-to-babel/LICENSE new file mode 100644 index 0000000000..eaec9a10f8 --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) coderaiser + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/README.md b/packages-node/providence-analytics/inlined-swc-to-babel/README.md new file mode 100644 index 0000000000..69bcc7b4df --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/README.md @@ -0,0 +1,2 @@ +Temp inline version of swc-to-babel, as we need to change a few things for 100% compatibility with our analyzers. +"version": "3.0.1", [swc-to-babel](http://github.com/coderaiser/swc-to-babel) diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/lib/get-ast.cjs b/packages-node/providence-analytics/inlined-swc-to-babel/lib/get-ast.cjs new file mode 100644 index 0000000000..c3f4e02d7d --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/lib/get-ast.cjs @@ -0,0 +1,17 @@ +'use strict'; + +module.exports = ({tokens, ...program}) => { + const ast = { + type: 'File', + + program: { + ...program, + directives: [], + }, + + comments: [], + tokens, + }; + + return ast; +}; diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc-to-babel.cjs b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc-to-babel.cjs new file mode 100644 index 0000000000..628a55e26c --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc-to-babel.cjs @@ -0,0 +1,134 @@ +'use strict'; + +const { types, traverse } = require('@putout/babel'); + +const { + convertModuleToProgram, + convertSpanToPosition, + convertVariableDeclarator, + convertStringLiteral, + convertIdentifier, + convertCallExpression, + convertObjectProperty, + BlockStatement, + TemplateElement, + convertTSTypeParameter, + convertExportDeclaration, + convertExportDefaultExpression, + convertParenthesisExpression, + convertGetterSetter, + ClassMethod, + ClassDeclaration, + ArrayExpression, + MemberExpression, + NewExpression, + Function, + ImportDeclaration, + ImportSpecifier, + ExportNamedDeclaration, + ExportDefaultDeclaration, + ExportSpecifier, + TSTypeAliasDeclaration, + TSMappedType, + TSTypeReference, + TSTypeOperator, + TSTypeParameter, + TSIndexedAccessType, + TSAsExpression, + JSXElement, + JSXFragment, +} = require('./swc/index.cjs'); + +const getAST = require('./get-ast.cjs'); +const { isIdentifier } = types; + +/** + * Convert an SWC ast to a babel ast + * @param ast {Module} SWC ast + * @param {string} [src=""] Source code + * @returns {ParseResult} Babel ast + */ +function toBabel(node, source = '') { + const ast = getAST(node); + + traverse(ast, { + noScope: true, + + BlockStatement, + TemplateElement, + ClassMethod, + ClassDeclaration, + ClassExpression: ClassDeclaration, + ArrayExpression, + MemberExpression, + NewExpression, + Function, + ImportDeclaration, + ImportSpecifier, + ExportNamedDeclaration, + ExportSpecifier, + ExportDefaultDeclaration, + + TSTypeAliasDeclaration, + TSMappedType, + TSTypeReference, + TSTypeOperator, + TSTypeParameter, + TSIndexedAccessType, + TSAsExpression, + + JSXElement, + JSXFragment, + + enter(path) { + const { node } = path; + const { type } = node; + + if ('span' in path.node) convertSpanToPosition(path, source); + + delete node.start; + delete node.end; + + if (type?.startsWith('Ts')) node.type = type.replace('Ts', 'TS'); + + if (type?.endsWith('Literal')) setEsprimaRaw(node); + + if (isIdentifier(path)) return convertIdentifier(path); + + if (path.isStringLiteral()) return convertStringLiteral(path); + + if (type === 'Module') return convertModuleToProgram(path); + + if (path.isVariableDeclarator()) return convertVariableDeclarator(path); + + if (path.isCallExpression()) return convertCallExpression(path); + + if (path.isTSTypeParameter()) return convertTSTypeParameter(path); + + if (path.type === 'ExportDeclaration') return convertExportDeclaration(path); + + if (path.type === 'ExportDefaultExpression') return convertExportDefaultExpression(path); + + if (path.type === 'ParenthesisExpression') return convertParenthesisExpression(path); + + if (/^(KeyValue|KeyValuePattern|AssignmentPattern)Property$/.test(path.type)) + return convertObjectProperty(path); + + if (path.type === 'GetterProperty' || path.type === 'SetterProperty') + return convertGetterSetter(path); + }, + }); + + return ast; +} + +module.exports = toBabel; + +function setEsprimaRaw(node) { + const { raw } = node; + + node.raw = raw || node.extra?.raw; + node.extra = node.extra || { + raw, + }; +} diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/get-position-by-offset.cjs b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/get-position-by-offset.cjs new file mode 100644 index 0000000000..cbe2a0978b --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/get-position-by-offset.cjs @@ -0,0 +1,24 @@ +'use strict'; + +module.exports.getPositionByOffset = (offset, source) => { + let line = 1; + let column = 0; + + if (offset > source.length) + throw Error('end cannot be more then length ' + offset + ', ' + source.length); + + for (let i = 0; i < offset; i++) { + if (source[i] === '\n' && i !== offset - 1) { + line++; + column = 0; + } else { + column++; + } + } + + return { + line, + column, + index: offset - 1, + }; +}; diff --git a/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/index.cjs b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/index.cjs new file mode 100644 index 0000000000..86381b26df --- /dev/null +++ b/packages-node/providence-analytics/inlined-swc-to-babel/lib/swc/index.cjs @@ -0,0 +1,390 @@ +'use strict'; + +const { getPositionByOffset } = require('./get-position-by-offset.cjs'); + +const isNull = a => !a && typeof a === 'object'; +const { assign } = Object; + +module.exports.convertModuleToProgram = path => { + path.node.type = 'Program'; + path.node.sourceType = 'module'; +}; + +module.exports.convertSpanToPosition = (path, source) => { + const { start, end } = path.node.span; + + delete path.node.span; + + if (end > source.length) + return assign(path.node, { + start, + end, + }); + + const startPosition = getPositionByOffset(start, source); + const endPosition = getPositionByOffset(end, source); + + assign(path.node, { + start: startPosition.index, + end: endPosition.index, + loc: { + start: startPosition, + end: endPosition, + }, + }); +}; + +module.exports.convertVariableDeclarator = path => { + delete path.parentPath.node.declare; + delete path.node.optional; + delete path.node.definite; +}; + +module.exports.convertStringLiteral = path => { + delete path.node.hasEscape; + delete path.node.kind; +}; + +module.exports.convertIdentifier = ({ node }) => { + convertIdentifier(node); +}; + +function convertIdentifier(node) { + const { typeAnnotation } = node; + + node.name = node.value; + + if (isNull(typeAnnotation)) { + delete node.typeAnnotation; + } + + delete node.value; + delete node.optional; + delete node.span; +} + +module.exports.convertCallExpression = path => { + const newArgs = []; + + for (const arg of path.node.arguments) { + newArgs.push(arg.expression); + } + + delete path.node.typeArguments; + path.node.arguments = newArgs; +}; + +module.exports.BlockStatement = path => { + path.node.body = path.node.stmts; + delete path.node.stmts; + path.node.directives = []; +}; + +module.exports.TSMappedType = path => { + path.node.typeParameter = path.node.typeParam; + + if (!path.node.nameType) path.node.nameType = null; + + if (!path.node.readonly) delete path.node.readonly; + + if (!path.node.optional) delete path.node.optional; + + delete path.node.typeParam; +}; + +module.exports.convertTSTypeParameter = path => { + convertIdentifier(path.node.name); +}; + +module.exports.TemplateElement = path => { + const { cooked, raw } = path.node; + + path.node.value = { + cooked, + raw, + }; + + delete path.node.cooked; + delete path.node.raw; + delete path.node.tail; +}; + +module.exports.convertExportDeclaration = path => { + path.node.type = 'ExportNamedDeclaration'; +}; + +module.exports.convertExportDefaultExpression = path => { + path.node.type = 'ExportDefaultDeclaration'; + path.node.declaration = path.node.expression; + + delete path.node.expression; + delete path.node.declare; +}; + +module.exports.convertParenthesisExpression = path => { + const expressionPath = path.get('expression'); + + if (expressionPath.type === 'TsAsExpression') convertTSAsExpression(expressionPath); + else if (expressionPath.type === 'TsConstAssertion') convertTSConstAssertion(expressionPath); + + path.replaceWith(expressionPath.node); +}; + +module.exports.ClassMethod = path => { + const { node } = path; + const { key } = path.node; + + Object.assign(node, { + ...path.node.function, + key, + }); + + if (node.kind === 'getter') { + node.kind = 'get'; + } + if (node.kind === 'setter') { + node.kind = 'set'; + } + + node.static = node.isStatic; + + delete path.node.isStatic; + delete path.node.accessibility; + delete path.node.isAbstract; + delete path.node.isOptional; + delete path.node.isOverride; + delete path.node.optional; + delete path.node.function; + delete path.node.decorators; + delete path.node.typeParameters; + delete path.node.returnType; + delete path.node.span; +}; + +module.exports.ClassDeclaration = path => { + path.node.id = path.node.identifier; + path.node.body = { + type: 'ClassBody', + body: path.node.body, + }; + + delete path.node.identifier; + delete path.node.declare; + delete path.node.decorators; + delete path.node.isAbstract; + delete path.node.typeParams; + delete path.node.superTypeParams; + delete path.node.implements; +}; + +module.exports.MemberExpression = ({ node }) => { + node.computed = node.property.type === 'Computed'; + + if (node.computed) node.property = node.property.expression; +}; + +function convertSpreadElement(node) { + const { expression } = node; + + assign(node, { + type: 'SpreadElement', + argument: expression, + }); + + delete node.spread; + delete node.expression; +} + +function maybeConvertSpread(arg) { + if (arg === null) return; + + const { spread } = arg; + + if (spread) { + convertSpreadElement(arg); + return; + } + + assign(arg, arg.expression); + + delete arg.spread; + delete arg.expression; +} + +module.exports.NewExpression = path => { + path.node.arguments = path.node.arguments || []; + path.node.arguments.forEach(maybeConvertSpread); + + delete path.node.typeArguments; +}; + +module.exports.ArrayExpression = path => { + path.node.elements.forEach(maybeConvertSpread); +}; + +module.exports.Function = path => { + const { node } = path; + + if (path.parentPath.isExportDefaultDeclaration()) path.node.type = 'FunctionDeclaration'; + + const { params, typeParameters } = node; + + node.id = node.identifier || null; + + delete node.identifier; + delete node.decorators; + + if (!node.returnType) delete node.returnType; + + for (const [index, param] of params.entries()) { + if (param.type === 'Parameter') params[index] = param.pat; + } + + if (isNull(typeParameters)) delete node.typeParameters; + + delete node.declare; +}; + +module.exports.TSTypeAliasDeclaration = path => { + delete path.node.declare; + delete path.node.typeParams; +}; + +module.exports.TSAsExpression = convertTSAsExpression; +function convertTSAsExpression({ node }) { + node.type = 'TSAsExpression'; + + if (node.typeAnnotation.kind === 'any') + assign(node.typeAnnotation, { + type: 'TSAnyKeyword', + }); +} + +module.exports.TSConstAssertion = convertTSConstAssertion; +function convertTSConstAssertion({ node }) { + assign(node, { + type: 'TSAsExpression', + extra: { + parenthesized: true, + parenStart: 0, + }, + typeAnnotation: { + type: 'TSTypeReference', + typeName: { + type: 'Identifier', + name: 'const', + }, + }, + }); +} + +module.exports.TSTypeReference = path => { + delete path.node.typeParams; +}; + +module.exports.TSTypeOperator = path => { + path.node.operator = path.node.op; + + delete path.node.op; +}; + +module.exports.TSTypeParameter = path => { + path.node.name = path.node.name.name; + + delete path.node.in; + delete path.node.out; + delete path.node.default; +}; + +module.exports.TSIndexedAccessType = path => { + delete path.node.readonly; +}; + +module.exports.ImportDeclaration = ({ node }) => { + const { typeOnly } = node; + + node.assertions = node.asserts?.properties || []; + node.importKind = typeOnly ? 'type' : 'value'; + + delete node.asserts; + delete node.typeOnly; +}; + +module.exports.ImportSpecifier = ({ node }) => { + if (!node.imported) + node.imported = { + ...node.local, + }; + + delete node.isTypeOnly; +}; + +module.exports.convertObjectProperty = path => { + const { node } = path; + + node.type = 'ObjectProperty'; + node.shorthand = !node.value; + + if (!node.value) + node.value = { + ...node.key, + }; + + delete path.parentPath.node.optional; +}; + +module.exports.convertGetterSetter = ({ node }) => { + node.kind = node.type === 'GetterProperty' ? 'get' : 'set'; + node.type = 'ObjectMethod'; + node.params = node.param ? [node.param] : []; + + delete node.param; +}; + +module.exports.ExportDefaultDeclaration = ({ node }) => { + // node.declaration may have been already provided by convertExportDefaultExpression + node.declaration = node.declaration || node.decl; + node.exportKind = 'value'; + node.assertions = node.asserts?.properties || []; + + delete node.decl; +}; + +module.exports.ExportNamedDeclaration = ({ node }) => { + const { typeOnly } = node; + + node.assertions = node.asserts?.properties || []; + // node.source = null; + node.specifiers = node.specifiers || []; + + node.exportKind = typeOnly ? 'type' : 'value'; + + delete node.asserts; + delete node.typeOnly; +}; + +module.exports.ExportSpecifier = ({ node }) => { + const { orig, exported } = node; + + node.local = orig; + node.exported = exported || { + ...orig, + }; + + delete node.isTypeOnly; + delete node.orig; +}; + +module.exports.JSXElement = path => { + path.node.openingElement = path.node.opening; + delete path.node.opening; + path.node.closingElement = path.node.closing; + delete path.node.closing; +}; + +module.exports.JSXFragment = path => { + path.node.openingFragment = path.node.opening; + delete path.node.opening; + path.node.closingFragment = path.node.closing; + delete path.node.closing; +}; diff --git a/packages-node/providence-analytics/package.json b/packages-node/providence-analytics/package.json index ea33c8fb4c..443de7f0eb 100644 --- a/packages-node/providence-analytics/package.json +++ b/packages-node/providence-analytics/package.json @@ -30,40 +30,32 @@ "postinstall": "npx patch-package", "match-lion-imports": "npm run providence -- analyze match-imports --search-target-collection @lion-targets --reference-collection @lion-references --measure-perf --skip-check-match-compatibility", "providence": "node --max-old-space-size=8192 ./src/cli/index.js", - "publish-docs": "node ../../packages-node/publish-docs/src/cli.js --github-url https://github.com/ing-bank/lion/ --git-root-dir ../../", "prepublishOnly": "npm run publish-docs", + "publish-docs": "node ../../packages-node/publish-docs/src/cli.js --github-url https://github.com/ing-bank/lion/ --git-root-dir ../../", "test:node": "npm run test:node:unit && npm run test:node:e2e", "test:node:e2e": "mocha './test-node/**/*.e2e.js' --timeout 60000", - "test:node:unit": "mocha './test-node/**/*.test.js'" + "test:node:unit": "mocha './{test-node,src}/**/*.test.js'" }, "dependencies": { - "@babel/core": "^7.21.4", - "@babel/parser": "^7.21.4", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-syntax-export-default-from": "^7.18.6", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/register": "^7.21.0", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "@rollup/plugin-node-resolve": "^15.0.2", - "@swc/core": "^1.3.46", - "@web/dev-server": "^0.4.2", - "anymatch": "^3.1.3", + "@babel/parser": "^7.24.5", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "@putout/babel": "^2.4.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@swc/core": "^1.5.6", "commander": "^2.20.3", - "glob": "^8.1.0", - "inquirer": "^9.1.5", - "is-negated-glob": "^1.0.0", - "lit-element": "~3.3.1", "parse5": "^7.1.2", - "read-package-tree": "5.3.1", - "semver": "^7.3.8", - "swc-to-babel": "^1.26.0" + "semver": "^7.6.2" }, "devDependencies": { - "@types/chai": "^4.3.4", - "@types/inquirer": "^9.0.3", - "@types/mocha": "^10.0.1", - "@web/dev-server-core": "^0.4.0", + "@types/chai": "^4.3.16", + "@types/inquirer": "^9.0.7", + "@types/mocha": "^10.0.6", + "@web/dev-server": "^0.4.5", + "@web/dev-server-core": "^0.7.2", + "globby": "^14.0.1", + "lit-element": "^4.0.5", "mock-fs": "^5.2.0", "mock-require": "^3.0.3" }, @@ -78,6 +70,9 @@ "semver", "software" ], + "engines": { + "node": ">=18.0.0" + }, "publishConfig": { "access": "public" } diff --git a/packages-node/providence-analytics/patches/@web+dev-server-core+0.3.17.patch b/packages-node/providence-analytics/patches/@web+dev-server-core+0.3.17.patch deleted file mode 100644 index 964b168868..0000000000 --- a/packages-node/providence-analytics/patches/@web+dev-server-core+0.3.17.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/node_modules/@web/dev-server-core/test-helpers.mjs b/node_modules/@web/dev-server-core/test-helpers.mjs -index 1a4d604..9c0d714 100644 ---- a/node_modules/@web/dev-server-core/test-helpers.mjs -+++ b/node_modules/@web/dev-server-core/test-helpers.mjs -@@ -1,5 +1,5 @@ - // this file is autogenerated with the generate-mjs-dts-entrypoints script --import cjsEntrypoint from './dist/index.js'; -+import cjsEntrypoint from './dist/test-helpers.js'; - - const { - virtualFilesPlugin, diff --git a/packages-node/providence-analytics/src/cli/cli-helpers.js b/packages-node/providence-analytics/src/cli/cli-helpers.js index 01c09052ca..bd2836a745 100644 --- a/packages-node/providence-analytics/src/cli/cli-helpers.js +++ b/packages-node/providence-analytics/src/cli/cli-helpers.js @@ -1,10 +1,11 @@ /* eslint-disable no-shadow */ -import pathLib from 'path'; import child_process from 'child_process'; // eslint-disable-line camelcase -import glob from 'glob'; -import readPackageTree from '../program/utils/read-package-tree-with-bower-support.js'; -import { LogService } from '../program/core/LogService.js'; +import path from 'path'; + +import { optimisedGlob } from '../program/utils/optimised-glob.js'; import { toPosixPath } from '../program/utils/to-posix-path.js'; +import { LogService } from '../program/core/LogService.js'; +import { fsAdapter } from '../program/utils/fs-adapter.js'; /** * @param {any[]} arr @@ -31,7 +32,6 @@ export function extensionsFromCs(v) { } /** - * * @param {*} m * @returns */ @@ -45,29 +45,29 @@ export function setQueryMethod(m) { } /** - * @param {string} t - * @returns {string[]|undefined} + * @param {string} targets + * @returns {Promise} */ -export function pathsArrayFromCs(t, cwd = process.cwd()) { - if (!t) { - return undefined; - } +export async function pathsArrayFromCs(targets, cwd = process.cwd()) { + if (!targets) return undefined; + + const resultPaths = []; - return flatten( - t.split(',').map(t => { - if (t.startsWith('/')) { - return t; - } - if (t.includes('*')) { - if (!t.endsWith('/')) { - // eslint-disable-next-line no-param-reassign - t = `${t}/`; - } - return glob.sync(t, { cwd, absolute: true }).map(toPosixPath); - } - return toPosixPath(pathLib.resolve(cwd, t.trim())); - }), - ); + for (const t of targets.split(',')) { + if (t.startsWith('/')) { + resultPaths.push(t); + continue; // eslint-disable-line no-continue + } + if (t.includes('*')) { + const x = (await optimisedGlob(t, { cwd, absolute: true, onlyFiles: false })).map( + toPosixPath, + ); + resultPaths.push(...x); + continue; // eslint-disable-line no-continue + } + resultPaths.push(toPosixPath(path.resolve(cwd, t.trim()))); + } + return resultPaths; } /** @@ -75,9 +75,9 @@ export function pathsArrayFromCs(t, cwd = process.cwd()) { * @param {'search-target'|'reference'} collectionType collection type * @param {{searchTargetCollections: {[repo:string]:string[]}; referenceCollections:{[repo:string]:string[]}}} [eCfg] external configuration. Usually providence.conf.js * @param {string} [cwd] - * @returns {string[]|undefined} + * @returns {Promise} */ -export function pathsArrayFromCollectionName( +export async function pathsArrayFromCollectionName( name, collectionType = 'search-target', eCfg = undefined, @@ -132,6 +132,49 @@ export function targetDefault(cwd) { return [toPosixPath(cwd)]; } +/** + * @param {string} targetPath + * @param {((s:string) => boolean)|null} matcher + * @param {'npm'|'bower'} [mode] + */ +async function readPackageTree(targetPath, matcher, mode) { + const folderName = mode === 'npm' ? 'node_modules' : 'bower_components'; + const potentialPaths = await optimisedGlob(`${folderName}/**/*`, { + onlyDirectories: true, + fs: fsAdapter.fs, + cwd: targetPath, + absolute: true, + }); + const matchingPaths = potentialPaths.filter(potentialPath => { + // Only dirs that are direct children of node_modules. So '**/node_modules/a' will match, but '**/node_modules/a/b' won't + const [, projectName] = + toPosixPath(potentialPath).match(new RegExp(`^.*/${folderName}/([^/]*)$`)) || []; + return matcher ? matcher(projectName) : true; + }); + return matchingPaths; +} + +/** + * @param {string|undefined} matchPattern + */ +function getMatcher(matchPattern) { + if (!matchPattern) return null; + + const isValidMatchPattern = matchPattern.startsWith('/') && matchPattern.endsWith('/'); + if (!isValidMatchPattern) { + LogService.error( + `[appendProjectDependencyPaths] Please provide a matchPattern enclosed by '/'. Found: ${matchPattern}`, + ); + return null; + } + + return (/** @type {string} */ d) => { + const reString = matchPattern.slice(1, -1); + const result = new RegExp(reString).test(d); + LogService.debug(`[appendProjectDependencyPaths]: /${reString}/.test(${d} => ${result})`); + return result; + }; +} /** * Returns all sub projects matching condition supplied in matchFn * @param {string[]} rootPaths all search-target project paths @@ -143,82 +186,27 @@ export async function appendProjectDependencyPaths( matchPattern, modes = ['npm', 'bower'], ) { - let matchFn; - if (matchPattern) { - if (matchPattern.startsWith('/') && matchPattern.endsWith('/')) { - matchFn = (/** @type {any} */ _, /** @type {string} */ d) => { - const reString = matchPattern.slice(1, -1); - const result = new RegExp(reString).test(d); - LogService.debug(`[appendProjectDependencyPaths]: /${reString}/.test(${d} => ${result})`); - return result; - }; - } else { - LogService.error( - `[appendProjectDependencyPaths] Please provide a matchPattern enclosed by '/'. Found: ${matchPattern}`, - ); - } - } + const matcher = getMatcher(matchPattern); + /** @type {string[]} */ const depProjectPaths = []; for (const targetPath of rootPaths) { for (const mode of modes) { - await readPackageTree( - targetPath, - matchFn, - (/** @type {string | undefined} */ err, /** @type {{ children: any[]; }} */ tree) => { - if (err) { - throw new Error(err); - } - const paths = tree.children.map(child => child.realpath); - depProjectPaths.push(...paths); - }, - mode, - ); + depProjectPaths.push(...(await readPackageTree(targetPath, matcher, mode))); } } - // Write all data to {outputPath}/projectDeps.json - // const projectDeps = {}; - // rootPaths.forEach(rootP => { - // depProjectPaths.filter(depP => depP.startsWith(rootP)).; - // }); return depProjectPaths.concat(rootPaths).map(toPosixPath); } -/** - * Will install all npm and bower deps, so an analysis can be performed on them as well. - * Relevant when '--target-dependencies' is supplied. - * @param {string[]} searchTargetPaths - */ -export async function installDeps(searchTargetPaths) { - for (const targetPath of searchTargetPaths) { - LogService.info(`Installing npm dependencies for ${pathLib.basename(targetPath)}`); - try { - await spawnProcess('npm i --no-progress', { cwd: targetPath }); - } catch (e) { - // @ts-expect-error - LogService.error(e); - } - - LogService.info(`Installing bower dependencies for ${pathLib.basename(targetPath)}`); - try { - await spawnProcess(`bower i --production --force-latest`, { cwd: targetPath }); - } catch (e) { - // @ts-expect-error - LogService.error(e); - } - } -} - export const _cliHelpersModule = { - csToArray, + appendProjectDependencyPaths, + pathsArrayFromCollectionName, extensionsFromCs, - setQueryMethod, pathsArrayFromCs, + setQueryMethod, targetDefault, - appendProjectDependencyPaths, spawnProcess, - installDeps, - pathsArrayFromCollectionName, + csToArray, flatten, }; diff --git a/packages-node/providence-analytics/src/cli/cli.js b/packages-node/providence-analytics/src/cli/cli.js index 641d98262a..230bde3785 100755 --- a/packages-node/providence-analytics/src/cli/cli.js +++ b/packages-node/providence-analytics/src/cli/cli.js @@ -1,27 +1,26 @@ -import child_process from 'child_process'; // eslint-disable-line camelcase import path from 'path'; -import fs from 'fs'; + import commander from 'commander'; -import { LogService } from '../program/core/LogService.js'; -import { QueryService } from '../program/core/QueryService.js'; + import { InputDataService } from '../program/core/InputDataService.js'; -import { toPosixPath } from '../program/utils/to-posix-path.js'; import { getCurrentDir } from '../program/utils/get-current-dir.js'; -import { dashboardServer } from '../dashboard/server.js'; +import { QueryService } from '../program/core/QueryService.js'; import { _providenceModule } from '../program/providence.js'; +import { fsAdapter } from '../program/utils/fs-adapter.js'; import { _cliHelpersModule } from './cli-helpers.js'; -import { _extendDocsModule } from './launch-providence-with-extend-docs.js'; -import { _promptAnalyzerMenuModule } from './prompt-analyzer-menu.js'; /** - * @typedef {import('../../types/index.js').AnalyzerName} AnalyzerName * @typedef {import('../../types/index.js').ProvidenceCliConf} ProvidenceCliConf + * @typedef {import('../../types/index.js').AnalyzerName} AnalyzerName */ const { version } = JSON.parse( - fs.readFileSync(path.resolve(getCurrentDir(import.meta.url), '../../package.json'), 'utf8'), + fsAdapter.fs.readFileSync( + path.resolve(getCurrentDir(import.meta.url), '../../package.json'), + 'utf8', + ), ); -const { extensionsFromCs, setQueryMethod, targetDefault, installDeps } = _cliHelpersModule; +const { extensionsFromCs, targetDefault } = _cliHelpersModule; /** * @param {{cwd?:string; argv?: string[]; providenceConf?: Partial}} cfg @@ -37,77 +36,34 @@ export async function cli({ cwd = process.cwd(), providenceConf, argv = process. rejectCli = reject; }); - /** @type {'analyzer'|'queryString'} */ - let searchMode; /** @type {object} */ let analyzerOptions; - /** @type {object} */ - let featureOptions; - /** @type {object} */ - let regexSearchOptions; // TODO: change back to "InputDataService.getExternalConfig();" once full package ESM const externalConfig = providenceConf; /** - * @param {'search-query'|'feature-query'|'analyzer-query'} searchMode - * @param {{regexString: string}} regexSearchOptions - * @param {{queryString: string}} featureOptions - * @param {{name:AnalyzerName; config:object;promptOptionalConfig:object}} analyzerOptions - * @returns + * @param {{analyzerOptions:{name:AnalyzerName; config:object;promptOptionalConfig:object}}} opts */ - async function getQueryConfigAndMeta( - /* eslint-disable no-shadow */ - searchMode, - regexSearchOptions, - featureOptions, - analyzerOptions, - /* eslint-enable no-shadow */ - ) { + async function getQueryConfigAndMeta(opts) { let queryConfig = null; let queryMethod = null; - if (searchMode === 'search-query') { - queryConfig = QueryService.getQueryConfigFromRegexSearchString( - regexSearchOptions.regexString, - ); - queryMethod = 'grep'; - } else if (searchMode === 'feature-query') { - queryConfig = QueryService.getQueryConfigFromFeatureString(featureOptions.queryString); - queryMethod = 'grep'; - } else if (searchMode === 'analyzer-query') { - let { name, config } = analyzerOptions; - if (!name) { - const answers = await _promptAnalyzerMenuModule.promptAnalyzerMenu(); - - name = answers.analyzerName; - } - if (!config) { - const answers = await _promptAnalyzerMenuModule.promptAnalyzerConfigMenu( - name, - analyzerOptions.promptOptionalConfig, - ); - config = answers.analyzerConfig; - } - // Will get metaConfig from ./providence.conf.js - const metaConfig = externalConfig ? externalConfig.metaConfig : {}; - config = { ...config, metaConfig }; - queryConfig = await QueryService.getQueryConfigFromAnalyzer(name, config); - queryMethod = 'ast'; - } else { - LogService.error('Please define a feature, analyzer or search'); - process.exit(1); + // eslint-disable-next-line prefer-const + let { name, config } = opts.analyzerOptions; + if (!name) { + throw new Error('Please provide an analyzer name'); } + // Will get metaConfig from ./providence.conf.js + const metaConfig = externalConfig ? externalConfig.metaConfig : {}; + config = { ...config, metaConfig }; + queryConfig = await QueryService.getQueryConfigFromAnalyzer(name, config); + queryMethod = 'ast'; return { queryConfig, queryMethod }; } async function launchProvidence() { - const { queryConfig, queryMethod } = await getQueryConfigAndMeta( - searchMode, - regexSearchOptions, - featureOptions, - analyzerOptions, - ); + const { queryConfig, queryMethod } = await getQueryConfigAndMeta({ analyzerOptions }); const searchTargetPaths = commander.searchTargetCollection || commander.searchTargetPaths; let referencePaths; @@ -158,29 +114,6 @@ export async function cli({ cwd = process.cwd(), providenceConf, argv = process. }); } - /** - * @param {{update:boolean; deps:boolean;createVersionHistory:boolean}} options - */ - async function manageSearchTargets(options) { - const basePath = path.join(__dirname, '../..'); - if (options.update) { - LogService.info('git submodule update --init --recursive'); - - // eslint-disable-next-line camelcase - const updateResult = child_process.execSync('git submodule update --init --recursive', { - cwd: basePath, - }); - - LogService.info(String(updateResult)); - } - if (options.deps) { - await installDeps(commander.searchTargetPaths); - } - if (options.createVersionHistory) { - await installDeps(commander.searchTargetPaths); - } - } - commander .version(version, '-v, --version') .option('-e, --extensions [extensions]', 'extensions like "js,html"', extensionsFromCs, [ @@ -259,29 +192,6 @@ export async function cli({ cwd = process.cwd(), providenceConf, argv = process. 'Uses babel instead of swc. This will be slower, but guaranteed to be 100% compatible with @babel/generate and @babel/traverse', ); - commander - .command('search ') - .alias('s') - .description('perfoms regex search string like "my-.*-comp"') - .action((regexString, options) => { - searchMode = 'search-query'; - regexSearchOptions = options; - regexSearchOptions.regexString = regexString; - launchProvidence().then(resolveCli).catch(rejectCli); - }); - - commander - .command('feature ') - .alias('f') - .description('query like "tg-icon[size=xs]"') - .option('-m, --method [method]', 'query method: "grep" or "ast"', setQueryMethod, 'grep') - .action((queryString, options) => { - searchMode = 'feature-query'; - featureOptions = options; - featureOptions.queryString = queryString; - launchProvidence().then(resolveCli).catch(rejectCli); - }); - commander .command('analyze [analyzer-name]') .alias('a') @@ -296,84 +206,11 @@ export async function cli({ cwd = process.cwd(), providenceConf, argv = process. ) .option('-c, --config [config]', 'configuration object for analyzer', c => JSON.parse(c)) .action((analyzerName, options) => { - searchMode = 'analyzer-query'; analyzerOptions = options; analyzerOptions.name = analyzerName; launchProvidence().then(resolveCli).catch(rejectCli); }); - commander - .command('extend-docs') - .alias('e') - .description( - `Generates data for "babel-extend-docs" plugin. These data are generated by the "match-paths" - plugin, which automatically resolves import paths from reference projects - (say [@lion/input, @lion/textarea, ...etc]) to a target project (say "wolf-ui").`, - ) - .option( - '--prefix-from [prefix-from]', - `Prefix for components of reference layer. By default "lion"`, - a => a, - 'lion', - ) - .option( - '--prefix-to [prefix-to]', - `Prefix for components of reference layer. For instance "wolf"`, - ) - .option( - '--output-folder [output-folder]', - `This is the file path where the result file "providence-extend-docs-data.json" will be written to`, - p => toPosixPath(path.resolve(process.cwd(), p.trim())), - process.cwd(), - ) - .action(options => { - if (!options.prefixTo) { - LogService.error(`Please provide a "prefix to" like '--prefix-to "myprefix"'`); - process.exit(1); - } - if (!commander.referencePaths) { - LogService.error(`Please provide referencePaths path like '-r "node_modules/@lion/*"'`); - process.exit(1); - } - const prefixCfg = { from: options.prefixFrom, to: options.prefixTo }; - _extendDocsModule - .launchProvidenceWithExtendDocs({ - referenceProjectPaths: commander.referencePaths, - prefixCfg, - outputFolder: options.outputFolder, - extensions: commander.extensions, - allowlist: commander.allowlist, - allowlistReference: commander.allowlistReference, - skipCheckMatchCompatibility: commander.skipCheckMatchCompatibility, - cwd, - }) - .then(resolveCli) - .catch(rejectCli); - }); - - commander - .command('manage-projects') - .description( - `Before running a query, be sure to have search-targets up to date (think of - npm/bower dependencies, latest version etc.)`, - ) - .option('-u, --update', 'gets latest of all search-targets and references') - .option('-d, --deps', 'installs npm/bower dependencies of search-targets') - .option('-h, --create-version-history', 'gets latest of all search-targets and references') - .action(options => { - manageSearchTargets(options); - }); - - commander - .command('dashboard') - .description( - `Runs an interactive dashboard that shows all aggregated data from proivdence-output, configured - via providence.conf`, - ) - .action(() => { - dashboardServer.start(); - }); - commander.parse(argv); await cliPromise; diff --git a/packages-node/providence-analytics/src/cli/launch-providence-with-extend-docs.js b/packages-node/providence-analytics/src/cli/launch-providence-with-extend-docs.js index a8e9027470..1b7a0cf2ee 100644 --- a/packages-node/providence-analytics/src/cli/launch-providence-with-extend-docs.js +++ b/packages-node/providence-analytics/src/cli/launch-providence-with-extend-docs.js @@ -1,13 +1,15 @@ /* eslint-disable import/no-extraneous-dependencies */ -import fs from 'fs'; -import pathLib from 'path'; import { performance } from 'perf_hooks'; -import { _providenceModule } from '../program/providence.js'; -import { QueryService } from '../program/core/QueryService.js'; +import path from 'path'; + import { InputDataService } from '../program/core/InputDataService.js'; +import MatchPathsAnalyzer from '../program/analyzers/match-paths.js'; +import { toPosixPath } from '../program/utils/to-posix-path.js'; +import { QueryService } from '../program/core/QueryService.js'; +import { _providenceModule } from '../program/providence.js'; import { LogService } from '../program/core/LogService.js'; +import { fsAdapter } from '../program/utils/fs-adapter.js'; import { flatten } from './cli-helpers.js'; -import MatchPathsAnalyzer from '../program/analyzers/match-paths.js'; /** * @typedef {import('../../types/index.js').PathFromSystemRoot} PathFromSystemRoot @@ -27,13 +29,13 @@ import MatchPathsAnalyzer from '../program/analyzers/match-paths.js'; */ export async function getExtendDocsResults({ referenceProjectPaths, - prefixCfg, + allowlistReference, extensions, + prefixCfg, allowlist, - allowlistReference, cwd, }) { - const monoPkgs = InputDataService.getMonoRepoPackages(cwd); + const monoPkgs = await InputDataService.getMonoRepoPackages(cwd); const results = await _providenceModule.providence( await QueryService.getQueryConfigFromAnalyzer(MatchPathsAnalyzer, { prefix: prefixCfg }), @@ -71,7 +73,7 @@ export async function getExtendDocsResults({ const normalizedP = `./${p}`; if (pathStr.startsWith(normalizedP)) { const localPath = pathStr.replace(normalizedP, ''); // 'lea-tabs.js' - result = `${name}/${localPath}`; // 'lea-tabs/lea-tabs.js' + result = toPosixPath(path.join(name, localPath)); // 'lea-tabs/lea-tabs.js' return true; } return false; @@ -124,12 +126,12 @@ export async function launchProvidenceWithExtendDocs({ }); // Write results - const outputFilePath = pathLib.join(outputFolder, 'providence-extend-docs-data.json'); + const outputFilePath = path.join(outputFolder, 'providence-extend-docs-data.json'); - if (fs.existsSync(outputFilePath)) { - fs.unlinkSync(outputFilePath); + if (fsAdapter.fs.existsSync(outputFilePath)) { + fsAdapter.fs.unlinkSync(outputFilePath); } - fs.writeFile(outputFilePath, JSON.stringify(queryOutputs, null, 2), err => { + fsAdapter.fs.writeFile(outputFilePath, JSON.stringify(queryOutputs, null, 2), err => { if (err) { throw err; } diff --git a/packages-node/providence-analytics/src/cli/prompt-analyzer-menu.js b/packages-node/providence-analytics/src/cli/prompt-analyzer-menu.js deleted file mode 100644 index 078989b731..0000000000 --- a/packages-node/providence-analytics/src/cli/prompt-analyzer-menu.js +++ /dev/null @@ -1,163 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import inquirer from 'inquirer'; -import traverse from '@babel/traverse'; -import { InputDataService } from '../program/core/InputDataService.js'; -import { AstService } from '../program/core/AstService.js'; -import { LogService } from '../program/core/LogService.js'; -import JsdocCommentParser from '../program/utils/jsdoc-comment-parser.js'; -import { getCurrentDir } from '../program/utils/get-current-dir.js'; - -/** - * @typedef {import('../../types/index.js').TargetDepsObj} TargetDepsObj - * @typedef {import('../../types/index.js').TargetOrRefCollectionsObj} TargetOrRefCollectionsObj - * @typedef {import('../../types/index.js').PathFromSystemRoot} PathFromSystemRoot - * @typedef {import('../../types/index.js').AnalyzerName} AnalyzerName - */ - -/** - * Extracts name, defaultValue, optional, type, desc from JsdocCommentParser.parse method - * result - * @param {{tagName:string;tagValue:string}[]} jsdoc - * @returns {{ name:string, defaultValue:string, optional:boolean, type:string, desc:string }[]} - */ -function getPropsFromParsedJsDoc(jsdoc) { - const jsdocProps = jsdoc.filter(p => p.tagName === '@property'); - const options = jsdocProps.map(({ tagValue }) => { - // eslint-disable-next-line no-unused-vars - const [_, type, nameOptionalDefault, desc] = tagValue.match(/\{(.*)\}\s*([^\s]*)\s*(.*)/) || []; - let nameDefault = nameOptionalDefault; - let optional = false; - if (nameOptionalDefault.startsWith('[') && nameOptionalDefault.endsWith(']')) { - optional = true; - nameDefault = nameOptionalDefault.slice(1).slice(0, -1); - } - const [name, defaultValue] = nameDefault.split('='); - return { name, defaultValue, optional, type, desc }; - }); - return options; -} - -/** - * @param {PathFromSystemRoot} file - */ -function getAnalyzerOptions(file) { - const code = fs.readFileSync(file, 'utf8'); - const babelAst = AstService.getAst(code, 'swc-to-babel', { filePath: file }); - - let commentNode; - traverse.default(babelAst, { - // eslint-disable-next-line no-shadow - VariableDeclaration(astPath) { - const { node } = astPath; - if (!node.leadingComments) { - return; - } - node.declarations.forEach(decl => { - // @ts-expect-error - if (decl?.id?.name === 'cfg') { - // eslint-disable-next-line prefer-destructuring - commentNode = node.leadingComments?.[0]; - } - }); - }, - }); - - if (commentNode) { - const jsdoc = JsdocCommentParser.parse(commentNode); - return getPropsFromParsedJsDoc(jsdoc); - } - return undefined; -} - -/** - * @param {PathFromSystemRoot} dir - * @param {boolean} [shouldGetOptions] - */ -function gatherAnalyzers(dir, shouldGetOptions) { - return InputDataService.gatherFilesFromDir(dir, { depth: 0 }).map(file => { - const analyzerObj = { file, name: path.basename(file, '.js') }; - if (shouldGetOptions) { - analyzerObj.options = getAnalyzerOptions(file); - } - return analyzerObj; - }); -} - -/** - * - * @param {AnalyzerName} analyzerName - * @param {*} promptOptionalConfig - * @param {PathFromSystemRoot} [dir] - * @returns - */ -export async function promptAnalyzerConfigMenu( - analyzerName, - promptOptionalConfig, - dir = /** @type {PathFromSystemRoot} */ ( - path.resolve(getCurrentDir(import.meta.url), '../program/analyzers') - ), -) { - const menuOptions = gatherAnalyzers(dir, true); - const analyzer = menuOptions.find(o => o.name === analyzerName); - if (!analyzer) { - LogService.error(`[promptAnalyzerConfigMenu] analyzer "${analyzerName}" not found.`); - process.exit(1); - } - let configAnswers; - if (analyzer.options) { - configAnswers = await inquirer.prompt( - analyzer.options - .filter(a => promptOptionalConfig || !a.optional) - .map(a => ({ - name: a.name, - message: a.description, - ...(a.defaultValue ? { default: a.defaultValue } : {}), - })), - ); - - Object.entries(configAnswers).forEach(([key, value]) => { - const { type } = analyzer.options.find(o => o.name === key); - if (type.toLowerCase() === 'boolean') { - configAnswers[key] = value === 'false' ? false : Boolean(value); - } else if (type.toLowerCase() === 'number') { - configAnswers[key] = Number(value); - } else if (type.toLowerCase() !== 'string') { - if (value) { - configAnswers[key] = JSON.parse(value); - } else { - // Make sure to not override predefined values with undefined ones - delete configAnswers[key]; - } - } - }); - } - - return { - analyzerConfig: configAnswers, - }; -} - -export async function promptAnalyzerMenu( - dir = /** @type {PathFromSystemRoot} */ ( - path.resolve(getCurrentDir(import.meta.url), '../program/analyzers') - ), -) { - const menuOptions = gatherAnalyzers(dir); - const answers = await inquirer.prompt([ - { - type: 'list', - name: 'analyzerName', - message: 'Which analyzer do you want to run?', - choices: menuOptions.map(o => o.name), - }, - ]); - return { - analyzerName: answers.analyzerName, - }; -} - -export const _promptAnalyzerMenuModule = { - promptAnalyzerMenu, - promptAnalyzerConfigMenu, -}; diff --git a/packages-node/providence-analytics/src/dashboard/app/components/p-table/PTable.js b/packages-node/providence-analytics/src/dashboard/app/components/p-table/PTable.js index 24e0dc94bf..e418013f20 100644 --- a/packages-node/providence-analytics/src/dashboard/app/components/p-table/PTable.js +++ b/packages-node/providence-analytics/src/dashboard/app/components/p-table/PTable.js @@ -1,4 +1,4 @@ -// eslint-disable-next-line max-classes-per-file +// eslint-disable-next-line max-classes-per-file, import/no-extraneous-dependencies import { LitElement, html, css } from 'lit-element'; import { DecorateMixin } from '../../utils/DecorateMixin.js'; diff --git a/packages-node/providence-analytics/src/dashboard/app/p-board.js b/packages-node/providence-analytics/src/dashboard/app/p-board.js index cdb55faea7..7ed2f9c932 100644 --- a/packages-node/providence-analytics/src/dashboard/app/p-board.js +++ b/packages-node/providence-analytics/src/dashboard/app/p-board.js @@ -1,5 +1,7 @@ /* eslint-disable lit-a11y/no-invalid-change-handler */ /* eslint-disable max-classes-per-file */ + +// eslint-disable-next-line import/no-extraneous-dependencies import { LitElement, html, css } from 'lit-element'; import { tooltip as tooltipStyles } from './styles/tooltip.css.js'; import { global as globalStyles } from './styles/global.css.js'; diff --git a/packages-node/providence-analytics/src/dashboard/server.js b/packages-node/providence-analytics/src/dashboard/server.js index 1c69d216c8..63869e24d7 100644 --- a/packages-node/providence-analytics/src/dashboard/server.js +++ b/packages-node/providence-analytics/src/dashboard/server.js @@ -1,9 +1,10 @@ -import fs from 'fs'; -import pathLib from 'path'; +import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies import { startDevServer } from '@web/dev-server'; import { ReportService } from '../program/core/ReportService.js'; import { providenceConfUtil } from '../program/utils/providence-conf-util.js'; import { getCurrentDir } from '../program/utils/get-current-dir.js'; +import { fsAdapter } from '../program/utils/fs-adapter.js'; /** * @typedef {import('../../types/index.js').PathFromSystemRoot} PathFromSystemRoot @@ -25,7 +26,7 @@ async function getCachedProvidenceResults({ */ let outputFilePaths; try { - outputFilePaths = fs.readdirSync(resultsPath); + outputFilePaths = fsAdapter.fs.readdirSync(resultsPath); } catch (_) { throw new Error(`Please make sure providence results can be found in ${resultsPath}`); } @@ -33,7 +34,9 @@ async function getCachedProvidenceResults({ const resultFiles = {}; let searchTargetDeps; outputFilePaths.forEach(fileName => { - const content = JSON.parse(fs.readFileSync(pathLib.join(resultsPath, fileName), 'utf-8')); + const content = JSON.parse( + fsAdapter.fs.readFileSync(path.join(resultsPath, fileName), 'utf-8'), + ); if (fileName === 'search-target-deps-file.json') { searchTargetDeps = content; } else { @@ -62,8 +65,8 @@ function createMiddleWares({ providenceConf, providenceConfRaw, searchTargetDeps */ function getPackageJson(projectPath) { try { - const file = pathLib.resolve(projectPath, 'package.json'); - return JSON.parse(fs.readFileSync(file, 'utf8')); + const file = path.resolve(projectPath, 'package.json'); + return JSON.parse(fsAdapter.fs.readFileSync(file, 'utf8')); } catch (_) { return null; } @@ -85,7 +88,7 @@ function createMiddleWares({ providenceConf, providenceConfRaw, searchTargetDeps return res; } - const pathFromServerRootToHere = `/${pathLib.relative( + const pathFromServerRootToHere = `/${path.relative( process.cwd(), getCurrentDir(import.meta.url), )}`; @@ -148,13 +151,13 @@ export async function createDashboardServerConfig() { // Needed for dev purposes (we call it from ./packages-node/providence-analytics/ instead of ./) // Allows es-dev-server to find the right moduleDirs const fromPackageRoot = process.argv.includes('--serve-from-package-root'); - const moduleRoot = fromPackageRoot ? pathLib.resolve(process.cwd(), '../../') : process.cwd(); + const moduleRoot = fromPackageRoot ? path.resolve(process.cwd(), '../../') : process.cwd(); return { - appIndex: pathLib.resolve(getCurrentDir(import.meta.url), 'index.html'), + appIndex: path.resolve(getCurrentDir(import.meta.url), 'index.html'), rootDir: moduleRoot, nodeResolve: true, - moduleDirs: pathLib.resolve(moduleRoot, 'node_modules'), + moduleDirs: path.resolve(moduleRoot, 'node_modules'), watch: false, open: true, middleware: createMiddleWares({ diff --git a/packages-node/providence-analytics/src/program/analyzers/find-classes.js b/packages-node/providence-analytics/src/program/analyzers/find-classes.js index 3ab8ee7c9b..bcf5726beb 100644 --- a/packages-node/providence-analytics/src/program/analyzers/find-classes.js +++ b/packages-node/providence-analytics/src/program/analyzers/find-classes.js @@ -1,10 +1,10 @@ /* eslint-disable no-shadow, no-param-reassign */ import path from 'path'; + import t from '@babel/types'; -// @ts-ignore import babelTraverse from '@babel/traverse'; import { Analyzer } from '../core/Analyzer.js'; -import { trackDownIdentifierFromScope } from './helpers/track-down-identifier--legacy.js'; +import { trackDownIdentifierFromScope } from '../utils/track-down-identifier--legacy.js'; /** * @typedef {import('@babel/types').File} File @@ -241,7 +241,7 @@ export default class FindClassesAnalyzer extends Analyzer { /** * Prepare */ - const analyzerResult = this._prepare(cfg); + const analyzerResult = await this._prepare(cfg); if (analyzerResult) { return analyzerResult; } diff --git a/packages-node/providence-analytics/src/program/analyzers/find-customelements.js b/packages-node/providence-analytics/src/program/analyzers/find-customelements.js index 5d6d3a3482..3a19654b55 100644 --- a/packages-node/providence-analytics/src/program/analyzers/find-customelements.js +++ b/packages-node/providence-analytics/src/program/analyzers/find-customelements.js @@ -1,13 +1,15 @@ import path from 'path'; -import t from '@babel/types'; + import babelTraverse from '@babel/traverse'; +import t from '@babel/types'; + +import { trackDownIdentifierFromScope } from '../utils/track-down-identifier--legacy.js'; import { Analyzer } from '../core/Analyzer.js'; -import { trackDownIdentifierFromScope } from './helpers/track-down-identifier--legacy.js'; /** - * @typedef {import('@babel/types').File} File - * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName * @typedef {import('../../../types/index.js').FindCustomelementsConfig} FindCustomelementsConfig + * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('@babel/types').File} File */ function cleanup(transformedEntry) { @@ -109,7 +111,7 @@ export default class FindCustomelementsAnalyzer extends Analyzer { /** * Prepare */ - const cachedAnalyzerResult = this._prepare(cfg); + const cachedAnalyzerResult = await this._prepare(cfg); if (cachedAnalyzerResult) { return cachedAnalyzerResult; } diff --git a/packages-node/providence-analytics/src/program/analyzers/find-exports.js b/packages-node/providence-analytics/src/program/analyzers/find-exports.js index 671f081c29..19ab5968d5 100644 --- a/packages-node/providence-analytics/src/program/analyzers/find-exports.js +++ b/packages-node/providence-analytics/src/program/analyzers/find-exports.js @@ -1,32 +1,33 @@ /* eslint-disable no-shadow, no-param-reassign */ import path from 'path'; -import { swcTraverse } from '../utils/swc-traverse.js'; -import { getAssertionType } from '../utils/get-assertion-type.js'; -import { Analyzer } from '../core/Analyzer.js'; -import { trackDownIdentifier } from './helpers/track-down-identifier.js'; -import { normalizeSourcePaths } from './helpers/normalize-source-paths.js'; + import { getReferencedDeclaration } from '../utils/get-source-code-fragment-of-declaration.js'; +import { normalizeSourcePaths } from './helpers/normalize-source-paths.js'; +import { trackDownIdentifier } from '../utils/track-down-identifier.js'; +import { getAssertionType } from '../utils/get-assertion-type.js'; +import { swcTraverse } from '../utils/swc-traverse.js'; import { LogService } from '../core/LogService.js'; +import { Analyzer } from '../core/Analyzer.js'; /** - * @typedef {import("@swc/core").Module} SwcAstModule - * @typedef {import("@swc/core").Node} SwcNode + * @typedef {{ exportSpecifiers:string[]; localMap: object; source:string, __tmp: { path:string } }} FindExportsSpecifierObj + * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot + * @typedef {import('../../../types/index.js').FindExportsAnalyzerResult} FindExportsAnalyzerResult + * @typedef {import('../../../types/index.js').FindExportsAnalyzerEntry} FindExportsAnalyzerEntry * @typedef {import("@swc/core").VariableDeclaration} SwcVariableDeclaration + * @typedef {import('../utils/track-down-identifier.js').RootFile} RootFile * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName * @typedef {import('../../../types/index.js').AnalyzerAst} AnalyzerAst - * @typedef {import('../../../types/index.js').FindExportsAnalyzerResult} FindExportsAnalyzerResult - * @typedef {import('../../../types/index.js').FindExportsAnalyzerEntry} FindExportsAnalyzerEntry - * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot - * @typedef {import('../../../types/index.js').SwcScope} SwcScope * @typedef {import('../../../types/index.js').SwcBinding} SwcBinding - * @typedef {import('../../../types/index.js').SwcPath} SwcPath * @typedef {import('../../../types/index.js').SwcVisitor} SwcVisitor - * @typedef {import('./helpers/track-down-identifier.js').RootFile} RootFile - * @typedef {object} RootFileMapEntry + * @typedef {import('../../../types/index.js').SwcScope} SwcScope + * @typedef {import('../../../types/index.js').SwcPath} SwcPath + * @typedef {import("@swc/core").Module} SwcAstModule + * @typedef {import("@swc/core").Node} SwcNode + * @typedef {RootFileMapEntry[]} RootFileMap * @typedef {string} currentFileSpecifier this is the local name in the file we track from + * @typedef {object} RootFileMapEntry * @typedef {RootFile} rootFile contains file(filePath) and specifier - * @typedef {RootFileMapEntry[]} RootFileMap - * @typedef {{ exportSpecifiers:string[]; localMap: object; source:string, __tmp: { path:string } }} FindExportsSpecifierObj */ /** @@ -108,13 +109,11 @@ function cleanup(transformedFile) { */ function getExportSpecifiers(node) { // handles default [export const g = 4]; - if (node.declaration) { - if (node.declaration.declarations) { - return [node.declaration.declarations[0].id.value]; - } - if (node.declaration.identifier) { - return [node.declaration.identifier.value]; - } + if (node.declaration?.declarations) { + return [node.declaration.declarations[0].id.value]; + } + if (node.declaration?.identifier) { + return [node.declaration.identifier.value]; } // handles (re)named specifiers [export { x (as y)} from 'y']; diff --git a/packages-node/providence-analytics/src/program/analyzers/find-imports.js b/packages-node/providence-analytics/src/program/analyzers/find-imports.js index d3b811a002..226f8ce097 100644 --- a/packages-node/providence-analytics/src/program/analyzers/find-imports.js +++ b/packages-node/providence-analytics/src/program/analyzers/find-imports.js @@ -1,20 +1,20 @@ /* eslint-disable no-shadow, no-param-reassign */ +import { normalizeSourcePaths } from './helpers/normalize-source-paths.js'; import { isRelativeSourcePath } from '../utils/relative-source-path.js'; -import { swcTraverse } from '../utils/swc-traverse.js'; import { getAssertionType } from '../utils/get-assertion-type.js'; -import { normalizeSourcePaths } from './helpers/normalize-source-paths.js'; -import { Analyzer } from '../core/Analyzer.js'; +import { swcTraverse } from '../utils/swc-traverse.js'; import { LogService } from '../core/LogService.js'; +import { Analyzer } from '../core/Analyzer.js'; /** - * @typedef {import("@swc/core").Module} SwcAstModule - * @typedef {import("@swc/core").Node} SwcNode - * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName - * @typedef {import('../../../types/index.js').AnalyzerAst} AnalyzerAst - * @typedef {import('../../../types/index.js').AnalyzerConfig} AnalyzerConfig + * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').FindImportsAnalyzerResult} FindImportsAnalyzerResult * @typedef {import('../../../types/index.js').FindImportsAnalyzerEntry} FindImportsAnalyzerEntry - * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot + * @typedef {import('../../../types/index.js').AnalyzerConfig} AnalyzerConfig + * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('../../../types/index.js').AnalyzerAst} AnalyzerAst + * @typedef {import("@swc/core").Module} SwcAstModule + * @typedef {import("@swc/core").Node} SwcNode */ /** @@ -60,7 +60,7 @@ function findImportsPerAstFile(swcAst) { const entry = /** @type {Partial} */ ({ importSpecifiers, source }); const assertionType = getAssertionType(node); if (assertionType) { - entry.assertionType = getAssertionType(node); + entry.assertionType = assertionType; } transformedFile.push(entry); }, @@ -124,7 +124,7 @@ export default class FindImportsSwcAnalyzer extends Analyzer { /** * Prepare */ - const cachedAnalyzerResult = this._prepare(cfg); + const cachedAnalyzerResult = await this._prepare(cfg); if (cachedAnalyzerResult) { return cachedAnalyzerResult; } diff --git a/packages-node/providence-analytics/src/program/analyzers/helpers/normalize-source-paths.js b/packages-node/providence-analytics/src/program/analyzers/helpers/normalize-source-paths.js index 751fae4aef..28f711acbb 100644 --- a/packages-node/providence-analytics/src/program/analyzers/helpers/normalize-source-paths.js +++ b/packages-node/providence-analytics/src/program/analyzers/helpers/normalize-source-paths.js @@ -1,5 +1,6 @@ /* eslint-disable no-param-reassign */ import path from 'path'; + import { isRelativeSourcePath } from '../../utils/relative-source-path.js'; import { resolveImportPath } from '../../utils/resolve-import-path.js'; import { toPosixPath } from '../../utils/to-posix-path.js'; diff --git a/packages-node/providence-analytics/src/program/analyzers/match-imports.js b/packages-node/providence-analytics/src/program/analyzers/match-imports.js index 3a2bd2cba2..60c2107716 100644 --- a/packages-node/providence-analytics/src/program/analyzers/match-imports.js +++ b/packages-node/providence-analytics/src/program/analyzers/match-imports.js @@ -4,7 +4,7 @@ import pathLib from 'path'; import FindImportsAnalyzer from './find-imports.js'; import FindExportsAnalyzer from './find-exports.js'; import { Analyzer } from '../core/Analyzer.js'; -import { fromImportToExportPerspective } from './helpers/from-import-to-export-perspective.js'; +import { fromImportToExportPerspective } from '../utils/from-import-to-export-perspective.js'; import { transformIntoIterableFindExportsOutput } from './helpers/transform-into-iterable-find-exports-output.js'; import { transformIntoIterableFindImportsOutput } from './helpers/transform-into-iterable-find-imports-output.js'; @@ -192,14 +192,11 @@ export default class MatchImportsAnalyzer extends Analyzer { /** * Prepare */ - const cachedAnalyzerResult = this._prepare(cfg); + const cachedAnalyzerResult = await this._prepare(cfg); if (cachedAnalyzerResult) { return cachedAnalyzerResult; } - /** - * Traverse - */ let { referenceProjectResult } = cfg; if (!referenceProjectResult) { const findExportsAnalyzer = new FindExportsAnalyzer(); @@ -222,6 +219,9 @@ export default class MatchImportsAnalyzer extends Analyzer { }); } + /** + * Traverse + */ const queryOutput = await matchImportsPostprocess( referenceProjectResult, targetProjectResult, diff --git a/packages-node/providence-analytics/src/program/analyzers/match-paths.js b/packages-node/providence-analytics/src/program/analyzers/match-paths.js index 54119a1ad0..7ca1bdd1d1 100644 --- a/packages-node/providence-analytics/src/program/analyzers/match-paths.js +++ b/packages-node/providence-analytics/src/program/analyzers/match-paths.js @@ -109,7 +109,6 @@ function getClosestToRootTargetPath(targetPaths, targetExportsResult) { } /** - * * @param {FindExportsAnalyzerResult} targetExportsResult * @param {FindExportsAnalyzerResult} refFindExportsResult * @param {string} targetMatchedFile file where `toClass` from match-subclasses is defined @@ -198,7 +197,6 @@ function getVariablePaths( } /** - * * @param {FindCustomelementsAnalyzerResult} targetFindCustomelementsResult * @param {FindCustomelementsAnalyzerResult} refFindCustomelementsResult * @param {FindExportsAnalyzerResult} refFindExportsResult @@ -240,8 +238,10 @@ function getTagPaths( if (!matchSubclassSpecifierRootFile) { return false; } + const sameRoot = entry.rootFile.file === matchSubclassSpecifierRootFile.file; const sameIdentifier = entry.rootFile.specifier === matchSubclassEntry.exportSpecifier.name; + return sameRoot && sameIdentifier; }); if (refPathMatch) { @@ -274,11 +274,11 @@ function matchPathsPostprocess( /** @type {AnalyzerQueryResult} */ const resultsArray = []; - targetMatchSubclassesResult.queryOutput.forEach(matchSubclassEntry => { + for (const matchSubclassEntry of targetMatchSubclassesResult.queryOutput) { const fromClass = matchSubclassEntry.exportSpecifier.name; - matchSubclassEntry.matchesPerProject.forEach(projectMatch => { - projectMatch.files.forEach(({ identifier: toClass, file: targetMatchedFile }) => { + for (const projectMatch of matchSubclassEntry.matchesPerProject) { + for (const { identifier: toClass, file: targetMatchedFile } of projectMatch.files) { const resultEntry = { name: fromClass, }; @@ -293,7 +293,7 @@ function matchPathsPostprocess( refProjectName, ); - if (paths && paths.length) { + if (paths?.length) { resultEntry.variable = { from: fromClass, to: toClass, @@ -324,9 +324,9 @@ function matchPathsPostprocess( if (resultEntry.variable || resultEntry.tag) { resultsArray.push(resultEntry); } - }); - }); - }); + } + } + } return resultsArray; } @@ -394,7 +394,7 @@ export default class MatchPathsAnalyzer extends Analyzer { /** * Prepare */ - const analyzerResult = this._prepare(cfg); + const analyzerResult = await this._prepare(cfg); if (analyzerResult) { return analyzerResult; } diff --git a/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js b/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js index 6a1b407a84..519ab39c00 100644 --- a/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js +++ b/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js @@ -1,10 +1,10 @@ /* eslint-disable no-continue */ -import pathLib from 'path'; +import path from 'path'; /* eslint-disable no-shadow, no-param-reassign */ import FindClassesAnalyzer from './find-classes.js'; import FindExportsAnalyzer from './find-exports.js'; import { Analyzer } from '../core/Analyzer.js'; -import { fromImportToExportPerspective } from './helpers/from-import-to-export-perspective.js'; +import { fromImportToExportPerspective } from '../utils/from-import-to-export-perspective.js'; /** * @typedef {import('../../../types/index.js').FindClassesAnalyzerResult} FindClassesAnalyzerResult @@ -126,7 +126,7 @@ async function matchSubclassesPostprocess( const importProjectPath = cfg.targetProjectPath; for (const { result, file } of targetClassesAnalyzerResult.queryOutput) { const importerFilePath = /** @type {PathFromSystemRoot} */ ( - pathLib.resolve(importProjectPath, file) + path.resolve(importProjectPath, file) ); for (const classEntryResult of result) { /** @@ -312,7 +312,7 @@ export default class MatchSubclassesAnalyzer extends Analyzer { /** * Prepare */ - const analyzerResult = this._prepare(cfg); + const analyzerResult = await this._prepare(cfg); if (analyzerResult) { return analyzerResult; } diff --git a/packages-node/providence-analytics/src/program/core/Analyzer.js b/packages-node/providence-analytics/src/program/core/Analyzer.js index c5d9989b10..72be87ba83 100644 --- a/packages-node/providence-analytics/src/program/core/Analyzer.js +++ b/packages-node/providence-analytics/src/program/core/Analyzer.js @@ -54,9 +54,8 @@ async function analyzePerAstFile(projectData, astAnalysis, analyzerCfg) { * @param {object[]|object} data */ function posixify(data) { - if (!data) { - return; - } + if (!data) return; + if (Array.isArray(data)) { data.forEach(posixify); } else if (typeof data === 'object') { @@ -212,7 +211,7 @@ export class Analyzer { * @param {AnalyzerConfig} cfg * @returns {CachedAnalyzerResult|undefined} */ - _prepare(cfg) { + async _prepare(cfg) { LogService.debug(`Analyzer "${this.name}": started _prepare method`); /** @type {typeof Analyzer} */ (this.constructor).__unwindProvidedResults(cfg); @@ -281,14 +280,14 @@ export class Analyzer { * Get reference and search-target data */ if (!cfg.targetProjectResult) { - this.targetData = InputDataService.createDataObject( + this.targetData = await InputDataService.createDataObject( [cfg.targetProjectPath], cfg.gatherFilesConfig, ); } if (cfg.referenceProjectPath) { - this.referenceData = InputDataService.createDataObject( + this.referenceData = await InputDataService.createDataObject( [cfg.referenceProjectPath], cfg.gatherFilesConfigReference || cfg.gatherFilesConfig, ); @@ -333,7 +332,7 @@ export class Analyzer { if (!projectPath) { LogService.error(`[Analyzer._traverse]: you must provide a projectPath`); } - finalTargetData = InputDataService.createDataObject([ + finalTargetData = await InputDataService.createDataObject([ { project: { name: projectName || '[n/a]', @@ -366,7 +365,7 @@ export class Analyzer { /** * Prepare */ - const cachedAnalyzerResult = this._prepare(cfg); + const cachedAnalyzerResult = await this._prepare(cfg); if (cachedAnalyzerResult) { return cachedAnalyzerResult; } diff --git a/packages-node/providence-analytics/src/program/core/AstService.js b/packages-node/providence-analytics/src/program/core/AstService.js index c18346ba67..40337867e9 100644 --- a/packages-node/providence-analytics/src/program/core/AstService.js +++ b/packages-node/providence-analytics/src/program/core/AstService.js @@ -126,6 +126,5 @@ export class AstService { /** * This option can be used as a last resort when an swc AST combined with swc-to-babel, is backwards incompatible * (for instance when @babel/generator expects a different ast structure and fails). - * Analyzers should use guarded-swc-to-babel util. */ AstService.fallbackToBabel = false; diff --git a/packages-node/providence-analytics/src/program/core/InputDataService.js b/packages-node/providence-analytics/src/program/core/InputDataService.js index d41f2e3f91..6dece43323 100644 --- a/packages-node/providence-analytics/src/program/core/InputDataService.js +++ b/packages-node/providence-analytics/src/program/core/InputDataService.js @@ -1,42 +1,37 @@ -/* eslint-disable no-param-reassign */ -import fs from 'fs'; -import pathLib from 'path'; import child_process from 'child_process'; // eslint-disable-line camelcase -import glob from 'glob'; -import anymatch from 'anymatch'; -// @ts-expect-error -import isNegatedGlob from 'is-negated-glob'; -import { LogService } from './LogService.js'; -import { AstService } from './AstService.js'; +import path from 'path'; + import { getFilePathRelativeFromRoot } from '../utils/get-file-path-relative-from-root.js'; +import { optimisedGlob } from '../utils/optimised-glob.js'; import { toPosixPath } from '../utils/to-posix-path.js'; +import { fsAdapter } from '../utils/fs-adapter.js'; import { memoize } from '../utils/memoize.js'; - -// const memoize = fn => fn; +import { LogService } from './LogService.js'; +import { AstService } from './AstService.js'; /** + * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').FindImportsAnalyzerResult} FindImportsAnalyzerResult * @typedef {import('../../../types/index.js').FindImportsAnalyzerEntry} FindImportsAnalyzerEntry - * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot - * @typedef {import('../../../types/index.js').PathRelative} PathRelative - * @typedef {import('../../../types/index.js').QueryConfig} QueryConfig - * @typedef {import('../../../types/index.js').QueryResult} QueryResult - * @typedef {import('../../../types/index.js').FeatureQueryConfig} FeatureQueryConfig - * @typedef {import('../../../types/index.js').SearchQueryConfig} SearchQueryConfig + * @typedef {import('../../../types/index.js').ProjectInputDataWithMeta} ProjectInputDataWithMeta + * @typedef {import('../../../types/index.js').AnalyzerQueryResult} AnalyzerQueryResult * @typedef {import('../../../types/index.js').AnalyzerQueryConfig} AnalyzerQueryConfig - * @typedef {import('../../../types/index.js').Feature} Feature - * @typedef {import('../../../types/index.js').AnalyzerConfig} AnalyzerConfig - * @typedef {import('../../../types/index.js').Analyzer} Analyzer - * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('../../../types/index.js').FeatureQueryConfig} FeatureQueryConfig * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').SearchQueryConfig} SearchQueryConfig * @typedef {import('../../../types/index.js').GatherFilesConfig} GatherFilesConfig - * @typedef {import('../../../types/index.js').AnalyzerQueryResult} AnalyzerQueryResult * @typedef {import('../../../types/index.js').ProjectInputData} ProjectInputData - * @typedef {import('../../../types/index.js').ProjectInputDataWithMeta} ProjectInputDataWithMeta - * @typedef {import('../../../types/index.js').Project} Project + * @typedef {import('../../../types/index.js').AnalyzerConfig} AnalyzerConfig + * @typedef {{path:PathFromSystemRoot; name:ProjectName}} ProjectNameAndPath + * @typedef {import('../../../types/index.js').PathRelative} PathRelative + * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('../../../types/index.js').QueryConfig} QueryConfig + * @typedef {import('../../../types/index.js').QueryResult} QueryResult * @typedef {import('../../../types/index.js').ProjectName} ProjectName * @typedef {import('../../../types/index.js').PackageJson} PackageJson - * @typedef {{path:PathFromSystemRoot; name:ProjectName}} ProjectNameAndPath + * @typedef {import('../../../types/index.js').Analyzer} Analyzer + * @typedef {import('../../../types/index.js').Project} Project + * @typedef {import('../../../types/index.js').Feature} Feature */ /** @@ -45,13 +40,13 @@ import { memoize } from '../utils/memoize.js'; */ const getPackageJson = memoize((/** @type {PathFromSystemRoot} */ rootPath) => { try { - const fileContent = fs.readFileSync(`${rootPath}/package.json`, 'utf8'); + const fileContent = fsAdapter.fs.readFileSync(`${rootPath}/package.json`, 'utf8'); return JSON.parse(fileContent); } catch (_) { try { // For testing purposes, we allow to have a package.mock.json that contains 'fictional' // packages (like 'exporting-ref-project') not on npm registry - const fileContent = fs.readFileSync(`${rootPath}/package.mock.json`, 'utf8'); + const fileContent = fsAdapter.fs.readFileSync(`${rootPath}/package.mock.json`, 'utf8'); return JSON.parse(fileContent); } catch (__) { return undefined; @@ -65,7 +60,7 @@ const getPackageJson = memoize((/** @type {PathFromSystemRoot} */ rootPath) => { */ const getLernaJson = memoize((/** @type {PathFromSystemRoot} */ rootPath) => { try { - const fileContent = fs.readFileSync(`${rootPath}/lerna.json`, 'utf8'); + const fileContent = fsAdapter.fs.readFileSync(`${rootPath}/lerna.json`, 'utf8'); return JSON.parse(fileContent); } catch (_) { return undefined; @@ -73,34 +68,31 @@ const getLernaJson = memoize((/** @type {PathFromSystemRoot} */ rootPath) => { }); /** - * @typedef {(list:PathFromSystemRoot[]|string[], rootPath:PathFromSystemRoot) => ProjectNameAndPath[]} GetPathsFromGlobListFn + * @typedef {(list:PathFromSystemRoot[]|string[], rootPath:PathFromSystemRoot) => Promise} GetPathsFromGlobListFn * @type {GetPathsFromGlobListFn} */ const getPathsFromGlobList = memoize( - ( + async ( /** @type {PathFromSystemRoot[]|string[]} */ list, /** @type {PathFromSystemRoot} */ rootPath, ) => { /** @type {string[]} */ const results = []; - list.forEach(pathOrGlob => { - if (!pathOrGlob.endsWith('/')) { - // eslint-disable-next-line no-param-reassign - pathOrGlob = `${pathOrGlob}/`; - } - + for (const pathOrGlob of list) { if (pathOrGlob.includes('*')) { - const globResults = glob.sync(pathOrGlob, { cwd: rootPath, absolute: false }); - globResults.forEach(r => { - results.push(r); + const globResults = await optimisedGlob(pathOrGlob, { + cwd: rootPath, + absolute: false, + onlyFiles: false, }); + results.push(...globResults); } else { results.push(pathOrGlob); } - }); + } return results.map(pkgPath => { - const packageRoot = pathLib.resolve(rootPath, pkgPath); - const basename = pathLib.basename(pkgPath); + const packageRoot = path.resolve(rootPath, pkgPath); + const basename = path.basename(pkgPath); const pkgJson = getPackageJson(/** @type {PathFromSystemRoot} */ (packageRoot)); const name = /** @type {ProjectName} */ ((pkgJson && pkgJson.name) || basename); return { name, path: /** @type {PathFromSystemRoot} */ (pkgPath) }; @@ -114,7 +106,7 @@ const getPathsFromGlobList = memoize( */ const getGitignoreFile = memoize((/** @type {PathFromSystemRoot} */ rootPath) => { try { - return fs.readFileSync(`${rootPath}/.gitignore`, 'utf8'); + return fsAdapter.fs.readFileSync(`${rootPath}/.gitignore`, 'utf8'); } catch (_) { return undefined; } @@ -131,6 +123,7 @@ const getGitIgnorePaths = memoize((/** @type {PathFromSystemRoot} */ rootPath) = } const entries = fileContent.split('\n').filter(entry => { + // eslint-disable-next-line no-param-reassign entry = entry.trim(); if (entry.startsWith('#')) { return false; @@ -143,15 +136,19 @@ const getGitIgnorePaths = memoize((/** @type {PathFromSystemRoot} */ rootPath) = // normalize entries to be compatible with anymatch const normalizedEntries = entries.map(entry => { + // eslint-disable-next-line no-param-reassign entry = toPosixPath(entry); if (entry.startsWith('/')) { + // eslint-disable-next-line no-param-reassign entry = entry.slice(1); } const isFile = entry.indexOf('.') > 0; // index of 0 means hidden file. if (entry.endsWith('/')) { + // eslint-disable-next-line no-param-reassign entry += '**'; } else if (!isFile) { + // eslint-disable-next-line no-param-reassign entry += '/**'; } return entry; @@ -189,30 +186,6 @@ function ensureArray(v) { return Array.isArray(v) ? v : [v]; } -/** - * @param {string|string[]} patterns - * @param {Partial<{keepDirs:boolean;root:string}>} [options] - * - * @typedef {(patterns:string|string[], opts: {keepDirs?:boolean;root:string}) => string[]} MultiGlobSyncFn - * @type {MultiGlobSyncFn} - */ -const multiGlobSync = memoize( - (/** @type {string|string[]} */ patterns, { keepDirs = false, root } = {}) => { - patterns = ensureArray(patterns); - const res = new Set(); - patterns.forEach(pattern => { - const files = glob.sync(pattern, { root }); - files.forEach(filePath => { - if (fs.lstatSync(filePath).isDirectory() && !keepDirs) { - return; - } - res.add(filePath); - }); - }); - return Array.from(res); - }, -); - /** * @param {string} localPathWithDotSlash * @returns {string} @@ -233,14 +206,14 @@ function normalizeLocalPathWithDotSlash(localPathWithoutDotSlash) { } /** - * @param {{valObjOrStr:object|string;nodeResolveMode:string}} opts + * @param {{valObjOrStr:object|string|null;nodeResolveMode:string}} opts * @returns {string|null} */ function getStringOrObjectValOfExportMapEntry({ valObjOrStr, nodeResolveMode }) { if (typeof valObjOrStr !== 'object') { return valObjOrStr; } - if (!valObjOrStr[nodeResolveMode]) { + if (!valObjOrStr?.[nodeResolveMode]) { // This is allowed: it makes sense to have an entrypoint on the root for typescript, not for others return null; } @@ -259,29 +232,30 @@ export class InputDataService { * Create an array of ProjectData * @param {(PathFromSystemRoot|ProjectInputData)[]} projectPaths * @param {Partial} gatherFilesConfig - * @returns {ProjectInputDataWithMeta[]} + * @returns {Promise} */ - static createDataObject(projectPaths, gatherFilesConfig = {}) { + static async createDataObject(projectPaths, gatherFilesConfig = {}) { /** @type {ProjectInputData[]} */ - const inputData = projectPaths.map(projectPathOrObj => { + const inputData = []; + for (const projectPathOrObj of projectPaths) { if (typeof projectPathOrObj === 'object') { // ProjectInputData was provided already manually - return projectPathOrObj; + inputData.push(projectPathOrObj); + continue; // eslint-disable-line no-continue } const projectPath = projectPathOrObj; - return { + inputData.push({ project: /** @type {Project} */ ({ - name: pathLib.basename(projectPath), + name: path.basename(projectPath), path: projectPath, }), - entries: this.gatherFilesFromDir(projectPath, { + entries: await this.gatherFilesFromDir(projectPath, { ...this.defaultGatherFilesConfig, ...gatherFilesConfig, }), - }; - }); - // @ts-ignore + }); + } return this._addMetaToProjectsData(inputData); } @@ -333,7 +307,7 @@ export class InputDataService { let commitHash; let isGitRepo; try { - isGitRepo = fs.lstatSync(pathLib.resolve(projectPath, '.git')).isDirectory(); + isGitRepo = fsAdapter.fs.lstatSync(path.resolve(projectPath, '.git')).isDirectory(); // eslint-disable-next-line no-empty } catch (_) {} @@ -372,7 +346,7 @@ export class InputDataService { projectObj.entries.forEach(entry => { let code; try { - code = fs.readFileSync(entry, 'utf8'); + code = fsAdapter.fs.readFileSync(entry, 'utf8'); } catch (e) { LogService.error(`Could not find "${entry}"`); } @@ -380,7 +354,7 @@ export class InputDataService { toPosixPath(entry), toPosixPath(projectObj.project.path), ); - if (pathLib.extname(file) === '.html') { + if (path.extname(file) === '.html') { const extractedScripts = AstService.getScriptsFromHtml(/** @type {string} */ (code)); // eslint-disable-next-line no-shadow extractedScripts.forEach((code, i) => { @@ -409,19 +383,16 @@ export class InputDataService { if (this.__targetProjectPaths) { return this.__targetProjectPaths; } - const submoduleDir = pathLib.resolve( - __dirname, - '../../../providence-input-data/search-targets', - ); + const submoduleDir = path.resolve(__dirname, '../../../providence-input-data/search-targets'); let dirs; try { - dirs = fs.readdirSync(submoduleDir); + dirs = fsAdapter.fs.readdirSync(submoduleDir); } catch (_) { return []; } return dirs - .map(dir => /** @type {PathFromSystemRoot} */ (pathLib.join(submoduleDir, dir))) - .filter(dirPath => fs.lstatSync(dirPath).isDirectory()); + .map(dir => /** @type {PathFromSystemRoot} */ (path.join(submoduleDir, dir))) + .filter(dirPath => fsAdapter.fs.lstatSync(dirPath).isDirectory()); } static set targetProjectPaths(v) { @@ -438,11 +409,11 @@ export class InputDataService { let dirs; try { - const referencesDir = pathLib.resolve(__dirname, '../../../providence-input-data/references'); - dirs = fs.readdirSync(referencesDir); + const referencesDir = path.resolve(__dirname, '../../../providence-input-data/references'); + dirs = fsAdapter.fs.readdirSync(referencesDir); dirs = dirs - .map(dir => pathLib.join(referencesDir, dir)) - .filter(dirPath => fs.lstatSync(dirPath).isDirectory()); + .map(dir => path.join(referencesDir, dir)) + .filter(dirPath => fsAdapter.fs.lstatSync(dirPath).isDirectory()); // eslint-disable-next-line no-empty } catch (_) {} return /** @type {PathFromSystemRoot[]} */ (dirs); @@ -457,31 +428,31 @@ export class InputDataService { */ static get defaultGatherFilesConfig() { return { - extensions: ['.js'], allowlist: ['!node_modules/**', '!bower_components/**', '!**/*.conf.js', '!**/*.config.js'], + extensions: ['.js'], depth: Infinity, }; } /** - * @param {PathFromSystemRoot} startPath - * @param {GatherFilesConfig} cfg - * @param {boolean} withoutDepth + * @protected + * @param {number} depth + * @param {string[]} extensions + * @returns {string} */ - static getGlobPattern(startPath, cfg, withoutDepth = false) { - // if startPath ends with '/', remove - let globPattern = startPath.replace(/\/$/, ''); - if (process.platform === 'win32') { - globPattern = globPattern.replace(/^.:/, '').replace(/\\/g, '/'); + static _getDefaultGlobDepthPattern(depth = Infinity, extensions = ['.js']) { + // `.{${cfg.extensions.map(e => e.slice(1)).join(',')},}`; + const extensionsGlobPart = `.{${extensions.map(extension => extension.slice(1)).join(',')},}`; + if (depth === Infinity) { + return `**/*${extensionsGlobPart}`; } - if (!withoutDepth) { - if (typeof cfg.depth === 'number' && cfg.depth !== Infinity) { - globPattern += `/*`.repeat(cfg.depth + 1); - } else { - globPattern += `/**/*`; - } + if (depth > 1) { + return `${`/*`.repeat(depth + 1)}${extensionsGlobPart}`; + } + if (depth === 0) { + return `*${extensionsGlobPart}`; } - return { globPattern }; + return ''; } /** @@ -498,9 +469,9 @@ export class InputDataService { * Gets an array of files for given extension * @param {PathFromSystemRoot} startPath - local filesystem path * @param {Partial} customConfig - configuration object - * @returns {PathFromSystemRoot[]} result list of file paths + * @returns {Promise} result list of file paths */ - static gatherFilesFromDir(startPath, customConfig = {}) { + static async gatherFilesFromDir(startPath, customConfig = {}) { const cfg = { ...this.defaultGatherFilesConfig, ...customConfig, @@ -523,88 +494,89 @@ export class InputDataService { if (cfg.allowlistMode === 'export-map') { const pkgJson = getPackageJson(startPath); - if (!pkgJson.exports) { + if (!pkgJson?.exports) { LogService.error(`No exports found in package.json of ${startPath}`); } - const exposedAndInternalPaths = this.getPathsFromExportMap(pkgJson.exports, { - packageRootPath: startPath, - }); - return exposedAndInternalPaths - .map(p => p.internal) - .filter(p => cfg.extensions.includes(`${pathLib.extname(p)}`)); + if (pkgJson?.exports) { + const exposedAndInternalPaths = await this.getPathsFromExportMap(pkgJson?.exports, { + packageRootPath: startPath, + }); + return /** @type {PathFromSystemRoot[]} */ ( + exposedAndInternalPaths + // TODO: path.resolve(startPath, p.internal)? + .map(p => p.internal) + .filter(p => + cfg.extensions.includes(/** @type {`.${string}`} */ (`${path.extname(p)}`)), + ) + ); + } } /** @type {string[]} */ - let gitIgnorePaths = []; + const negativeGitGlobs = []; /** @type {string[]} */ - let npmPackagePaths = []; + const npmGlobs = []; const allowlistMode = cfg.allowlistMode || this._determineAllowListMode(startPath); if (allowlistMode === 'git') { - gitIgnorePaths = getGitIgnorePaths(startPath); + negativeGitGlobs.push( + ...getGitIgnorePaths(startPath).map(gitIgnorePath => `!${gitIgnorePath}`), + ); } else if (allowlistMode === 'npm') { - npmPackagePaths = getNpmPackagePaths(startPath); + npmGlobs.push(...getNpmPackagePaths(startPath)); } - const removeFilter = gitIgnorePaths; - const keepFilter = npmPackagePaths; - cfg.allowlist.forEach(allowEntry => { - const { negated, pattern } = isNegatedGlob(allowEntry); - if (negated) { - removeFilter.push(pattern); - } else { - keepFilter.push(allowEntry); - } - }); + const combinedGlobs = [...cfg.allowlist, ...npmGlobs, ...negativeGitGlobs]; + const hasProvidedPositiveGlob = cfg.allowlist.some(glob => !glob.startsWith('!')); - let { globPattern } = this.getGlobPattern(startPath, cfg); - globPattern += `.{${cfg.extensions.map(e => e.slice(1)).join(',')},}`; - const globRes = multiGlobSync(globPattern); - - let filteredGlobRes; - if (removeFilter.length || keepFilter.length) { - filteredGlobRes = globRes.filter(filePath => { - const localFilePath = toPosixPath(filePath).replace(`${toPosixPath(startPath)}/`, ''); - // @ts-expect-error - let shouldRemove = removeFilter.length && anymatch(removeFilter, localFilePath); - // @ts-expect-error - let shouldKeep = keepFilter.length && anymatch(keepFilter, localFilePath); - - if (shouldRemove && shouldKeep) { - // Contradicting configs: the one defined by end user takes highest precedence - // If the match came from allowListMode, it loses. - // @ts-expect-error - if (allowlistMode === 'git' && anymatch(gitIgnorePaths, localFilePath)) { - // shouldRemove was caused by .gitignore, shouldKeep by custom allowlist - shouldRemove = false; - // @ts-expect-error - } else if (allowlistMode === 'npm' && anymatch(npmPackagePaths, localFilePath)) { - // shouldKeep was caused by npm "files", shouldRemove by custom allowlist - shouldKeep = false; - } - } - - if (removeFilter.length && shouldRemove) { - return false; - } - if (!keepFilter.length) { - return true; - } - return shouldKeep; - }); + // We need to expand + const shouldLookForAllFilesInProject = + allowlistMode === 'all' || (!npmGlobs.length && !hasProvidedPositiveGlob); + if (shouldLookForAllFilesInProject) { + combinedGlobs.push(this._getDefaultGlobDepthPattern(cfg.depth, cfg.extensions)); } - if (!filteredGlobRes || !filteredGlobRes.length) { + const globbyCfg = { + expandDirectories: false, + onlyFiles: true, + absolute: true, + cwd: startPath, + }; + let filteredGlobRes = await optimisedGlob(combinedGlobs, globbyCfg); + + // Unfortunatly, globby does not correctly remove the negated globs, + // so we have to do it manually + const negatedGlobs = combinedGlobs.filter(p => p.startsWith('!')); + if (negatedGlobs.length) { + const subtract = await optimisedGlob( + negatedGlobs.map(p => p.slice(1)), + globbyCfg, + ); + // eslint-disable-next-line no-shadow + filteredGlobRes = filteredGlobRes.filter(file => !subtract.includes(file)); + } + + // Make sure we don't delete to much by giving customConfig.allowlist priority + if (customConfig.allowlist?.length) { + const customResults = await optimisedGlob(customConfig.allowlist, globbyCfg); + filteredGlobRes = Array.from(new Set([...filteredGlobRes, ...customResults])); + } + + // Filter by extension (in the future: use globs exclusively for this?) + if (cfg.extensions.length) { + filteredGlobRes = filteredGlobRes.filter(glob => + cfg.extensions.some(ext => glob.endsWith(ext)), + ); + } + + if (!filteredGlobRes?.length) { LogService.warn(`No files found for path '${startPath}'`); return []; } - // reappend startPath - // const res = filteredGlobRes.map(f => pathLib.resolve(startPath, f)); return /** @type {PathFromSystemRoot[]} */ (filteredGlobRes.map(toPosixPath)); } - // TODO: use modern web config helper /** * Allows the user to provide a providence.conf.js file in its repository root */ @@ -619,7 +591,7 @@ export class InputDataService { * @param {PathFromSystemRoot} rootPath * @returns {ProjectNameAndPath[]|undefined} */ - static getMonoRepoPackages(rootPath) { + static async getMonoRepoPackages(rootPath) { // [1] Look for npm/yarn workspaces const pkgJson = getPackageJson(rootPath); if (pkgJson?.workspaces) { @@ -639,9 +611,9 @@ export class InputDataService { * @param {object} opts * @param {'default'|'development'|string} [opts.nodeResolveMode='default'] * @param {string} opts.packageRootPath - * @returns {Promise<{internalExportMapPaths:string[]; exposedExportMapPaths:string[]}>} + * @returns {Promise<{internal:string; exposed:string}[]>} */ - static getPathsFromExportMap(exports, { nodeResolveMode = 'default', packageRootPath }) { + static async getPathsFromExportMap(exports, { nodeResolveMode = 'default', packageRootPath }) { const exportMapPaths = []; for (const [key, valObjOrStr] of Object.entries(exports)) { @@ -672,25 +644,24 @@ export class InputDataService { const valueToUseForGlob = stripDotSlashFromLocalPath(resolvedVal).replace('*', '**/*'); // Generate all possible entries via glob, first strip './' - const internalExportMapPathsForKeyRaw = glob.sync(valueToUseForGlob, { + const internalExportMapPathsForKeyRaw = await optimisedGlob(valueToUseForGlob, { cwd: packageRootPath, - nodir: true, + onlyFiles: true, }); const exposedExportMapPathsForKeyRaw = internalExportMapPathsForKeyRaw.map(pathInside => { // Say we have "exports": { "./*.js": "./src/*.js" } // => internalExportMapPathsForKey: ['./src/a.js', './src/b.js'] // => exposedExportMapPathsForKey: ['./a.js', './b.js'] - const [, variablePart] = pathInside.match( - new RegExp(valueToUseForGlob.replace('*', '(.*)')), - ); + const [, variablePart] = + pathInside.match(new RegExp(valueToUseForGlob.replace('*', '(.*)'))) || []; return resolvedKey.replace('*', variablePart); }); - const internalExportMapPathsForKey = internalExportMapPathsForKeyRaw.map(filePath => - normalizeLocalPathWithDotSlash(filePath), + const internalExportMapPathsForKey = internalExportMapPathsForKeyRaw.map( + normalizeLocalPathWithDotSlash, ); - const exposedExportMapPathsForKey = exposedExportMapPathsForKeyRaw.map(filePath => - normalizeLocalPathWithDotSlash(filePath), + const exposedExportMapPathsForKey = exposedExportMapPathsForKeyRaw.map( + normalizeLocalPathWithDotSlash, ); exportMapPaths.push( @@ -704,9 +675,6 @@ export class InputDataService { return exportMapPaths; } } -// TODO: Remove memoizeConfig.isCacheDisabled this once whole providence uses cacheConfig instead of -// memoizeConfig.isCacheDisabled -// InputDataService.cacheDisabled = memoizeConfig.isCacheDisabled; InputDataService.getProjectMeta = memoize(InputDataService.getProjectMeta); InputDataService.gatherFilesFromDir = memoize(InputDataService.gatherFilesFromDir); diff --git a/packages-node/providence-analytics/src/program/core/LogService.js b/packages-node/providence-analytics/src/program/core/LogService.js index 6189941201..6c924555a8 100644 --- a/packages-node/providence-analytics/src/program/core/LogService.js +++ b/packages-node/providence-analytics/src/program/core/LogService.js @@ -1,5 +1,5 @@ -import pathLib from 'path'; -import fs from 'fs'; +import path from 'path'; +import { fsAdapter } from '../utils/fs-adapter.js'; const { log } = console; @@ -111,14 +111,14 @@ export class LogService { } static writeLogFile() { - const filePath = pathLib.join(process.cwd(), 'providence.log'); + const filePath = path.join(process.cwd(), 'providence.log'); let file = `[log ${new Date()}]\n`; // @ts-ignore this._logHistory.forEach(l => { file += `${l}\n`; }); file += `[/log ${new Date()}]\n\n`; - fs.writeFileSync(filePath, file, { flag: 'a' }); + fsAdapter.fs.writeFileSync(filePath, file, { flag: 'a' }); // @ts-ignore this._logHistory = []; } diff --git a/packages-node/providence-analytics/src/program/core/QueryService.js b/packages-node/providence-analytics/src/program/core/QueryService.js index 8be55ad693..24a4e1d822 100644 --- a/packages-node/providence-analytics/src/program/core/QueryService.js +++ b/packages-node/providence-analytics/src/program/core/QueryService.js @@ -1,8 +1,7 @@ -import child_process from 'child_process'; // eslint-disable-line camelcase import path from 'path'; + import { AstService } from './AstService.js'; import { LogService } from './LogService.js'; -import { getFilePathRelativeFromRoot } from '../utils/get-file-path-relative-from-root.js'; import { getCurrentDir } from '../utils/get-current-dir.js'; // import { memoize } from '../utils/memoize.js'; @@ -31,81 +30,6 @@ const memoize = fn => fn; const astProjectsDataCache = new Map(); export class QueryService { - /** - * @param {string} regexString string for 'free' regex searches. - * @returns {SearchQueryConfig} - */ - static getQueryConfigFromRegexSearchString(regexString) { - if (typeof regexString !== 'string') { - throw new Error('[QueryService.getQueryConfigFromRegexSearchString]: provide a string'); - } - return { type: 'search', regexString }; - } - - /** - * Util function that can be used to parse cli input and feed the result object to a new - * instance of QueryResult - * @example - * const queryConfig = QueryService.getQueryConfigFromFeatureString(”tg-icon[size=xs]”) - * const myQueryResult = QueryService.grepSearch(inputData, queryConfig) - * @param {string} queryString - string like ”tg-icon[size=xs]” - * @returns {FeatureQueryConfig} - */ - static getQueryConfigFromFeatureString(queryString) { - if (typeof queryString !== 'string') { - throw new Error('[QueryService.getQueryConfigFromFeatureString]: provide a string'); - } - - /** - * Each candidate (tag, attrKey or attrValue) can end with asterisk. - * @param {string} candidate for my-*[attr*=x*] 'my-*', 'attr*' or 'x*' - * @returns {[string, boolean]} - */ - function parseContains(candidate) { - const hasAsterisk = candidate ? candidate.endsWith('*') : false; - const filtered = hasAsterisk ? candidate.slice(0, -1) : candidate; - return [filtered, hasAsterisk]; - } - - // Detect the features in the query - let tagCandidate; - let featString; - - // Creates tag ('tg-icon') and featString ('font-icon+size=xs') - const attrMatch = queryString.match(/(^.*)(\[(.+)\])+/); - if (attrMatch) { - // eslint-disable-next-line prefer-destructuring - tagCandidate = attrMatch[1]; - // eslint-disable-next-line prefer-destructuring - featString = attrMatch[3]; - } else { - tagCandidate = queryString; - } - - const [tag, usesTagPartialMatch] = parseContains(tagCandidate); - - let featureObj; - if (featString) { - const [nameCandidate, valueCandidate] = featString.split('='); - const [name, usesValueContains] = parseContains(nameCandidate); - const [value, usesValuePartialMatch] = parseContains(valueCandidate); - featureObj = /** @type {Feature} */ { - name, - value, - tag, - isAttribute: true, - usesValueContains, - usesValuePartialMatch, - usesTagPartialMatch, - }; - } else { - // Just look for tag name - featureObj = /** @type {Feature} */ ({ tag, usesTagPartialMatch }); - } - - return { type: 'feature', feature: featureObj }; - } - /** * Retrieves the default export found in ./program/analyzers/find-import.js * @param {typeof Analyzer} analyzerCtor @@ -147,68 +71,6 @@ export class QueryService { }); } - /** - * Search via unix grep - * @param {ProjectInputData} inputData - * @param {FeatureQueryConfig|SearchQueryConfig} queryConfig - * @param {{hasVerboseReporting:boolean;gatherFilesConfig:GatherFilesConfig}} [customConfig] - * @returns {Promise} - */ - static async grepSearch(inputData, queryConfig, customConfig) { - const cfg = { - hasVerboseReporting: false, - gatherFilesConfig: {}, - ...customConfig, - }; - - const results = []; - // 1. Analyze the type of query from the QueryConfig (for instance 'feature' or 'search'). - let regex; - if (queryConfig.type === 'feature') { - regex = this._getFeatureRegex(queryConfig.feature); - } else if (queryConfig.type === 'search') { - regex = queryConfig.regexString; - } - - await Promise.all( - inputData.map(async projectData => { - // 2. For all files found in project, we will do a different grep - const projectResult = {}; - const countStdOut = await this._performGrep(projectData.project.path, regex, { - count: true, - gatherFilesConfig: cfg.gatherFilesConfig, - }); - projectResult.count = Number(countStdOut); - - if (cfg.hasVerboseReporting) { - const detailStdout = await this._performGrep(projectData.project.path, regex, { - count: false, - gatherFilesConfig: cfg.gatherFilesConfig, - }); - projectResult.files = detailStdout - .split('\n') - .filter(l => l) - .map(l => { - const [absolutePath, line] = l.split(':'); - const file = getFilePathRelativeFromRoot(absolutePath, projectData.path); - const link = l.split(':').slice(0, 2).join(':'); - const match = l.split(':').slice(2); - return { file, line: Number(line), match, link }; - }); - } - results.push({ project: projectData.project, ...projectResult }); - }), - ); - - return /** @type {QueryResult} */ { - meta: { - searchType: 'grep', - query: queryConfig, - }, - queryOutput: results, - }; - } - /** * Perform ast analysis * @param {AnalyzerQueryConfig} analyzerQueryConfig @@ -282,81 +144,6 @@ export class QueryService { } astProjectsDataCache.set(pathAndRequiredAst, astData); } - - /** - * Performs a grep on given path for a certain tag name and feature - * @param {Feature} feature - */ - static _getFeatureRegex(feature) { - const { name, value, tag } = feature; - let potentialTag; - if (tag) { - potentialTag = feature.usesTagPartialMatch ? `.*${tag}.+` : tag; - } else { - potentialTag = '.*'; - } - - let regex; - if (name) { - if (value) { - // We are looking for an exact match: div[class=foo] ->
- let valueRe = value; - if (feature.usesValueContains) { - if (feature.usesValuePartialMatch) { - // We are looking for a partial match: div[class*=foo*] ->
- valueRe = `.+${value}.+`; - } else { - // We are looking for an exact match inside a space separated list within an - // attr: div[class*=foo] ->
- valueRe = `((${value})|("${value} .*)|(.* ${value}")|(.* ${value} .*))`; - } - } - regex = `<${potentialTag} .*${name}="${valueRe}".+>`; - } else { - regex = `<${potentialTag} .*${name}(>|( |=).+>)`; - } - } else if (tag) { - regex = `<${potentialTag} .+>`; - } else { - LogService.error('Please provide a proper Feature'); - } - - return regex; - } - - /** - * - * @param {PathFromSystemRoot} searchPath - * @param {string} regex - * @param {{ count:number; gatherFilesConfig:GatherFilesConfig; hasDebugEnabled:boolean }} customConfig - * @returns - */ - static _performGrep(searchPath, regex, customConfig) { - const cfg = { - count: false, - gatherFilesConfig: {}, - hasDebugEnabled: false, - ...customConfig, - }; - - const /** @type {string[]} */ ext = cfg.gatherFilesConfig.extensions; - const include = ext ? `--include="\\.(${ext.map(e => e.slice(1)).join('|')})" ` : ''; - const count = cfg.count ? ' | wc -l' : ''; - - // TODO: test on Linux (only tested on Mac) - const cmd = `pcregrep -ornM ${include} '${regex}' ${searchPath} ${count}`; - - if (cfg.hasDebugEnabled) { - LogService.debug(cmd, 'grep command'); - } - - return new Promise(resolve => { - // eslint-disable-next-line camelcase - child_process.exec(cmd, { maxBuffer: 200000000 }, (err, stdout) => { - resolve(stdout); - }); - }); - } } QueryService.cacheDisabled = false; QueryService.addAstToProjectsData = memoize(QueryService.addAstToProjectsData); diff --git a/packages-node/providence-analytics/src/program/core/ReportService.js b/packages-node/providence-analytics/src/program/core/ReportService.js index 19c0b80dc3..82944bf603 100644 --- a/packages-node/providence-analytics/src/program/core/ReportService.js +++ b/packages-node/providence-analytics/src/program/core/ReportService.js @@ -1,17 +1,18 @@ -import fs from 'fs'; -import pathLib from 'path'; -import { getHash } from '../utils/get-hash.js'; -// import { memoize } from '../utils/memoize.js'; -const memoize = fn => fn; +import path from 'path'; +import { hash } from '../utils/hash.js'; +import { fsAdapter } from '../utils/fs-adapter.js'; + +import { memoize } from '../utils/memoize.js'; +// const memoize = fn => fn; /** - * @typedef {import('../../../types/index.js').Project} Project - * @typedef {import('../../../types/index.js').ProjectName} ProjectName * @typedef {import('../../../types/index.js').AnalyzerQueryResult} AnalyzerQueryResult + * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot * @typedef {import('../../../types/index.js').AnalyzerConfig} AnalyzerConfig * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('../../../types/index.js').ProjectName} ProjectName * @typedef {import('../../../types/index.js').QueryResult} QueryResult - * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').Project} Project */ /** @@ -26,7 +27,7 @@ function createResultIdentifier(searchP, cfg, refP) { // why encodeURIComponent: filters out slashes for path names for stuff like @lion/button const format = (/** @type {Project} */ p) => `${encodeURIComponent(p.name)}_${p.version || (p.commitHash && p.commitHash.slice(0, 5))}`; - const cfgHash = getHash(cfg); + const cfgHash = hash(cfg); return `${format(searchP)}${refP ? `_+_${format(refP)}` : ''}__${cfgHash}`; } @@ -57,20 +58,20 @@ export class ReportService { outputPath = this.outputPath, ) { const output = JSON.stringify(queryResult, null, 2); - if (!fs.existsSync(outputPath)) { - fs.mkdirSync(outputPath); + if (!fsAdapter.fs.existsSync(outputPath)) { + fsAdapter.fs.mkdirSync(outputPath); } const { name } = queryResult.meta.analyzerMeta; const filePath = this._getResultFileNameAndPath(name, identifier); - fs.writeFileSync(filePath, output, { flag: 'w' }); + fsAdapter.fs.writeFileSync(filePath, output, { flag: 'w' }); } /** * @type {string} */ static get outputPath() { - return this.__outputPath || pathLib.join(process.cwd(), '/providence-output'); + return this.__outputPath || path.join(process.cwd(), '/providence-output'); } static set outputPath(p) { @@ -93,7 +94,10 @@ export class ReportService { let cachedResult; try { cachedResult = JSON.parse( - fs.readFileSync(this._getResultFileNameAndPath(analyzerName, identifier), 'utf-8'), + fsAdapter.fs.readFileSync( + this._getResultFileNameAndPath(analyzerName, identifier), + 'utf-8', + ), ); // eslint-disable-next-line no-empty } catch (_) {} @@ -107,7 +111,7 @@ export class ReportService { */ static _getResultFileNameAndPath(name, identifier) { return /** @type {PathFromSystemRoot} */ ( - pathLib.join(this.outputPath, `${name || 'query'}_-_${identifier}.json`) + path.join(this.outputPath, `${name || 'query'}_-_${identifier}.json`) ); } @@ -117,15 +121,15 @@ export class ReportService { */ static writeEntryToSearchTargetDepsFile(depProj, rootProjectMeta) { const rootProj = `${rootProjectMeta.name}#${rootProjectMeta.version}`; - const filePath = pathLib.join(this.outputPath, 'search-target-deps-file.json'); + const filePath = path.join(this.outputPath, 'search-target-deps-file.json'); let file = {}; try { - file = JSON.parse(fs.readFileSync(filePath, 'utf-8')); + file = JSON.parse(fsAdapter.fs.readFileSync(filePath, 'utf-8')); // eslint-disable-next-line no-empty } catch (_) {} const deps = [...(file[rootProj] || []), depProj]; file[rootProj] = [...new Set(deps)]; - fs.writeFileSync(filePath, JSON.stringify(file, null, 2), { flag: 'w' }); + fsAdapter.fs.writeFileSync(filePath, JSON.stringify(file, null, 2), { flag: 'w' }); } } ReportService.createIdentifier = memoize(ReportService.createIdentifier); diff --git a/packages-node/providence-analytics/src/program/providence.js b/packages-node/providence-analytics/src/program/providence.js index 272e530ccb..a0069196eb 100644 --- a/packages-node/providence-analytics/src/program/providence.js +++ b/packages-node/providence-analytics/src/program/providence.js @@ -1,8 +1,11 @@ import { performance } from 'perf_hooks'; -import { ReportService } from './core/ReportService.js'; +import nodeFs from 'fs'; + import { InputDataService } from './core/InputDataService.js'; -import { LogService } from './core/LogService.js'; +import { ReportService } from './core/ReportService.js'; import { QueryService } from './core/QueryService.js'; +import { fsAdapter } from './utils/fs-adapter.js'; +import { LogService } from './core/LogService.js'; import { AstService } from './core/AstService.js'; /** @@ -145,28 +148,6 @@ async function handleAnalyzer(queryConfig, cfg) { return queryResults; } -async function handleFeature(queryConfig, cfg, inputData) { - if (cfg.queryMethod === 'grep') { - const queryResult = await QueryService.grepSearch(inputData, queryConfig, { - gatherFilesConfig: cfg.gatherFilesConfig, - gatherFilesConfigReference: cfg.gatherFilesConfigReference, - }); - return queryResult; - } - return undefined; -} - -async function handleRegexSearch(queryConfig, cfg, inputData) { - if (cfg.queryMethod === 'grep') { - const queryResult = await QueryService.grepSearch(inputData, queryConfig, { - gatherFilesConfig: cfg.gatherFilesConfig, - gatherFilesConfigReference: cfg.gatherFilesConfigReference, - }); - return queryResult; - } - return undefined; -} - /** * Creates a report with usage metrics, based on a queryConfig. * @@ -196,9 +177,15 @@ export async function providence(queryConfig, customConfig) { /** Allows to navigate to source file in code editor */ addSystemPathsInResult: false, fallbackToBabel: false, + fs: nodeFs, ...customConfig, }); + if (cfg.fs) { + // Allow to mock fs for testing + fsAdapter.setFs(cfg.fs); + } + if (cfg.debugEnabled) { LogService.debugEnabled = true; } @@ -211,23 +198,7 @@ export async function providence(queryConfig, customConfig) { AstService.fallbackToBabel = true; } - let queryResults; - if (queryConfig.type === 'ast-analyzer') { - queryResults = await handleAnalyzer(queryConfig, cfg); - } else { - const inputData = InputDataService.createDataObject( - cfg.targetProjectPaths, - cfg.gatherFilesConfig, - ); - - if (queryConfig.type === 'feature') { - queryResults = await handleFeature(queryConfig, cfg, inputData); - report(queryResults, cfg); - } else if (queryConfig.type === 'search') { - queryResults = await handleRegexSearch(queryConfig, cfg, inputData); - report(queryResults, cfg); - } - } + const queryResults = await handleAnalyzer(queryConfig, cfg); if (cfg.writeLogFile) { LogService.writeLogFile(); diff --git a/packages-node/providence-analytics/src/program/analyzers/helpers/from-import-to-export-perspective.js b/packages-node/providence-analytics/src/program/utils/from-import-to-export-perspective.js similarity index 70% rename from packages-node/providence-analytics/src/program/analyzers/helpers/from-import-to-export-perspective.js rename to packages-node/providence-analytics/src/program/utils/from-import-to-export-perspective.js index deb0a69471..9ab8ade904 100644 --- a/packages-node/providence-analytics/src/program/analyzers/helpers/from-import-to-export-perspective.js +++ b/packages-node/providence-analytics/src/program/utils/from-import-to-export-perspective.js @@ -1,13 +1,14 @@ import path from 'path'; -import { isRelativeSourcePath } from '../../utils/relative-source-path.js'; -import { LogService } from '../../core/LogService.js'; -import { resolveImportPath } from '../../utils/resolve-import-path.js'; -import { toPosixPath } from '../../utils/to-posix-path.js'; + +import { isRelativeSourcePath } from './relative-source-path.js'; +import { resolveImportPath } from './resolve-import-path.js'; +import { LogService } from '../core/LogService.js'; +import { toPosixPath } from './to-posix-path.js'; /** - * @typedef {import('../../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot - * @typedef {import('../../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot - * @typedef {import('../../../../types/index.js').SpecifierSource} SpecifierSource + * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot + * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').SpecifierSource} SpecifierSource */ /** diff --git a/packages-node/providence-analytics/src/program/utils/fs-adapter.js b/packages-node/providence-analytics/src/program/utils/fs-adapter.js new file mode 100644 index 0000000000..d0c2a12685 --- /dev/null +++ b/packages-node/providence-analytics/src/program/utils/fs-adapter.js @@ -0,0 +1,27 @@ +import originalNodeFs from 'fs'; + +/** + * Provides access to the file system (fs) which can be the real file system or a mock. + */ +class FsAdapter { + constructor() { + this.fs = originalNodeFs; + } + + /** + * Call this for mocking or compatibility with non-node environments. + * @param {originalNodeFs} fs + */ + setFs(fs) { + this.fs = fs; + } + + /** + * When done testing, call this to restore the real file system. + */ + restoreFs() { + this.fs = originalNodeFs; + } +} + +export const fsAdapter = new FsAdapter(); diff --git a/packages-node/providence-analytics/src/program/utils/get-hash.js b/packages-node/providence-analytics/src/program/utils/get-hash.js deleted file mode 100644 index 884859996b..0000000000 --- a/packages-node/providence-analytics/src/program/utils/get-hash.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @param {string|object} inputValue - * @returns {number} - */ -export function getHash(inputValue) { - if (typeof inputValue === 'object') { - // eslint-disable-next-line no-param-reassign - inputValue = JSON.stringify(inputValue); - } - return inputValue.split('').reduce( - (prevHash, currVal) => - // eslint-disable-next-line no-bitwise - ((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, - 0, - ); -} diff --git a/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration--legacy.js b/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration--legacy.js index d11e763746..0f58e62e55 100644 --- a/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration--legacy.js +++ b/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration--legacy.js @@ -1,15 +1,17 @@ -import fs from 'fs'; import path from 'path'; + import babelTraversePkg from '@babel/traverse'; + +import { trackDownIdentifier } from './track-down-identifier.js'; import { AstService } from '../core/AstService.js'; -import { trackDownIdentifier } from '../analyzers/helpers/track-down-identifier.js'; import { toPosixPath } from './to-posix-path.js'; +import { fsAdapter } from './fs-adapter.js'; /** - * @typedef {import('@babel/types').Node} Node - * @typedef {import('@babel/traverse').NodePath} NodePath * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('@babel/traverse').NodePath} NodePath + * @typedef {import('@babel/types').Node} Node */ /** @@ -82,7 +84,7 @@ export async function getSourceCodeFragmentOfDeclaration({ exportedIdentifier, projectRootPath, }) { - const code = fs.readFileSync(filePath, 'utf8'); + const code = fsAdapter.fs.readFileSync(filePath, 'utf8'); // TODO: fix swc-to-babel lib to make this compatible with 'swc-to-babel' mode of getAst const babelAst = AstService.getAst(code, 'babel', { filePath }); diff --git a/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration.js b/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration.js index d3f3c24ca8..354f32dce0 100644 --- a/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration.js +++ b/packages-node/providence-analytics/src/program/utils/get-source-code-fragment-of-declaration.js @@ -1,21 +1,22 @@ -import fs from 'fs'; import path from 'path'; + +import { trackDownIdentifier } from './track-down-identifier.js'; import { swcTraverse, getPathFromNode } from './swc-traverse.js'; import { AstService } from '../core/AstService.js'; -import { trackDownIdentifier } from '../analyzers/helpers/track-down-identifier.js'; import { toPosixPath } from './to-posix-path.js'; +import { fsAdapter } from './fs-adapter.js'; /** - * @typedef {import('@swc/core').Node} SwcNode - * @typedef {import('../../../types/index.js').SwcPath} SwcPath - * @typedef {import('../../../types/index.js').SwcBinding} SwcBinding * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').SwcBinding} SwcBinding + * @typedef {import('../../../types/index.js').SwcPath} SwcPath + * @typedef {import('@swc/core').Node} SwcNode */ /** * @param {{rootPath:PathFromSystemRoot; localPath:PathRelativeFromProjectRoot}} opts - * @returns + * @returns {PathRelativeFromProjectRoot} */ export function getFilePathOrExternalSource({ rootPath, localPath }) { if (!localPath.startsWith('.')) { @@ -23,7 +24,9 @@ export function getFilePathOrExternalSource({ rootPath, localPath }) { // but we give a 100% score if from and to are same here.. return localPath; } - return toPosixPath(path.resolve(rootPath, localPath)); + return /** @type {PathRelativeFromProjectRoot} */ ( + toPosixPath(path.resolve(rootPath, localPath)) + ); } /** @@ -80,11 +83,11 @@ export function getReferencedDeclaration({ referencedIdentifierName, globalScope * @returns {Promise<{ sourceNodePath: SwcPath; sourceFragment: string|null; externalImportSource: string|null; }>} */ export async function getSourceCodeFragmentOfDeclaration({ - filePath, exportedIdentifier, projectRootPath, + filePath, }) { - const code = fs.readFileSync(filePath, 'utf8'); + const code = fsAdapter.fs.readFileSync(filePath, 'utf8'); // compensate for swc span bug: https://github.com/swc-project/swc/issues/1366#issuecomment-1516539812 const offset = AstService._getSwcOffset(); diff --git a/packages-node/providence-analytics/src/program/utils/guarded-swc-to-babel.js b/packages-node/providence-analytics/src/program/utils/guarded-swc-to-babel.js index 3ced330bb6..827a91074d 100644 --- a/packages-node/providence-analytics/src/program/utils/guarded-swc-to-babel.js +++ b/packages-node/providence-analytics/src/program/utils/guarded-swc-to-babel.js @@ -1,4 +1,4 @@ -import toBabel from 'swc-to-babel'; +import toBabel from '../../../inlined-swc-to-babel/lib/swc-to-babel.cjs'; /** * @typedef {import('@babel/types').File} File diff --git a/packages-node/providence-analytics/src/program/utils/hash.js b/packages-node/providence-analytics/src/program/utils/hash.js new file mode 100644 index 0000000000..572f2f5537 --- /dev/null +++ b/packages-node/providence-analytics/src/program/utils/hash.js @@ -0,0 +1,18 @@ +/** + * @param {string|object} inputValue + * @returns {string} + */ +export function hash(inputValue) { + if (typeof inputValue === 'object') { + // eslint-disable-next-line no-param-reassign + inputValue = JSON.stringify(inputValue); + } + return String( + inputValue.split('').reduce( + (prevHash, currVal) => + // eslint-disable-next-line no-bitwise + ((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, + 0, + ), + ); +} diff --git a/packages-node/providence-analytics/src/program/utils/index.js b/packages-node/providence-analytics/src/program/utils/index.js index b30af216a3..c4cf4127ed 100644 --- a/packages-node/providence-analytics/src/program/utils/index.js +++ b/packages-node/providence-analytics/src/program/utils/index.js @@ -1,8 +1,13 @@ +export { toRelativeSourcePath, isRelativeSourcePath } from './relative-source-path.js'; +export { trackDownIdentifier } from './track-down-identifier.js'; export { getSourceCodeFragmentOfDeclaration, getFilePathOrExternalSource, } from './get-source-code-fragment-of-declaration.js'; +export { optimisedGlob } from './optimised-glob.js'; +export { swcTraverse } from './swc-traverse.js'; +export { fsAdapter } from './fs-adapter.js'; export { memoize } from './memoize.js'; -export { toRelativeSourcePath, isRelativeSourcePath } from './relative-source-path.js'; +export { hash } from './hash.js'; // TODO: move trackdownIdentifier to utils as well diff --git a/packages-node/providence-analytics/src/program/utils/jsdoc-comment-parser.js b/packages-node/providence-analytics/src/program/utils/jsdoc-comment-parser.js deleted file mode 100644 index f5a4d792cd..0000000000 --- a/packages-node/providence-analytics/src/program/utils/jsdoc-comment-parser.js +++ /dev/null @@ -1,124 +0,0 @@ -// @ts-nocheck -/* eslint-disable */ - -/** - * The MIT License (MIT) - * - * Copyright (c) 2015 Ryo Maruyama - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// From: https://github.com/esdoc/esdoc/blob/master/src/Parser/CommentParser.js - -/** - * Doc Comment Parser class. - * - * @example - * for (let comment of node.leadingComments) { - * let tags = CommentParser.parse(comment); - * console.log(tags); - * } - */ -export default class JsdocCommentParser { - /** - * parse comment to tags. - * @param {ASTNode} commentNode - comment node. - * @param {string} commentNode.value - comment body. - * @param {string} commentNode.type - CommentBlock or CommentLine. - * @returns {Tag[]} parsed comment. - */ - static parse(commentNode) { - if (!this.isESDoc(commentNode)) return []; - - let comment = commentNode.value; - - // TODO: refactor - comment = comment.replace(/\r\n/gm, '\n'); // for windows - comment = comment.replace(/^[\t ]*/gm, ''); // remove line head space - comment = comment.replace(/^\*[\t ]?/, ''); // remove first '*' - comment = comment.replace(/[\t ]$/, ''); // remove last space - comment = comment.replace(/^\*[\t ]?/gm, ''); // remove line head '*' - if (comment.charAt(0) !== '@') comment = `@desc ${comment}`; // auto insert @desc - comment = comment.replace(/[\t ]*$/, ''); // remove tail space. - comment = comment.replace(/```[\s\S]*?```/g, match => match.replace(/@/g, '\\ESCAPED_AT\\')); // escape code in descriptions - comment = comment.replace(/^[\t ]*(@\w+)$/gm, '$1 \\TRUE'); // auto insert tag text to non-text tag (e.g. @interface) - comment = comment.replace(/^[\t ]*(@\w+)[\t ](.*)/gm, '\\Z$1\\Z$2'); // insert separator (\\Z@tag\\Ztext) - const lines = comment.split('\\Z'); - - let tagName = ''; - let tagValue = ''; - const tags = []; - for (let i = 0; i < lines.length; i++) { - const line = lines[i]; - if (line.charAt(0) === '@') { - tagName = line; - const nextLine = lines[i + 1]; - if (nextLine.charAt(0) === '@') { - tagValue = ''; - } else { - tagValue = nextLine; - i++; - } - tagValue = tagValue - .replace('\\TRUE', '') - .replace(/\\ESCAPED_AT\\/g, '@') - .replace(/^\n/, '') - .replace(/\n*$/, ''); - tags.push({ tagName, tagValue }); - } - } - return tags; - } - - /** - * parse node to tags. - * @param {ASTNode} node - node. - * @returns {{tags: Tag[], commentNode: CommentNode}} parsed comment. - */ - static parseFromNode(node) { - if (!node.leadingComments) node.leadingComments = [{ type: 'CommentBlock', value: '' }]; - const commentNode = node.leadingComments[node.leadingComments.length - 1]; - const tags = this.parse(commentNode); - - return { tags, commentNode }; - } - - /** - * judge doc comment or not. - * @param {ASTNode} commentNode - comment node. - * @returns {boolean} if true, this comment node is doc comment. - */ - static isESDoc(commentNode) { - if (commentNode.type !== 'CommentBlock') return false; - return commentNode.value.charAt(0) === '*'; - } - - /** - * build comment from tags - * @param {Tag[]} tags - * @returns {string} block comment value. - */ - static buildComment(tags) { - return tags.reduce((comment, tag) => { - const line = tag.tagValue.replace(/\n/g, '\n * '); - return `${comment} * ${tag.tagName} \n * ${line} \n`; - }, '*\n'); - } -} diff --git a/packages-node/providence-analytics/src/program/utils/memoize.js b/packages-node/providence-analytics/src/program/utils/memoize.js index 93400223da..d6ceda055f 100644 --- a/packages-node/providence-analytics/src/program/utils/memoize.js +++ b/packages-node/providence-analytics/src/program/utils/memoize.js @@ -1,6 +1,7 @@ -export const memoizeConfig = { - isCacheDisabled: false, -}; +/** + * For testing purposes, it is possible to disable caching. + */ +let shouldCache = true; /** * @param {object|any[]|string} arg @@ -13,37 +14,60 @@ function isObject(arg) { * @param {object|any[]|string} arg */ function createCachableArg(arg) { - if (isObject(arg)) { - try { - return JSON.stringify(arg); - } catch { - return arg; - } + if (!isObject(arg)) return arg; + try { + return JSON.stringify(arg); + } catch { + return arg; } - return arg; } /** + * @template T * @type {(functionToMemoize:T, opts?:{ storage?:object; serializeObjects?: boolean }) => T} */ export function memoize(functionToMemoize, { storage = {}, serializeObjects = false } = {}) { - // @ts-ignore + // @ts-expect-erro // eslint-disable-next-line func-names - return function () { - // eslint-disable-next-line prefer-rest-params - const args = [...arguments]; - const cachableArgs = !serializeObjects ? args : args.map(createCachableArg); - // Allow disabling of cache for testing purposes - // @ts-ignore - if (!memoizeConfig.isCacheDisabled && cachableArgs in storage) { - // @ts-ignore - return storage[cachableArgs]; + return /** @type {* & T} */ ( + function memoizedFn() { + // eslint-disable-next-line prefer-rest-params + const args = [...arguments]; + const cachableArgs = !serializeObjects ? args : args.map(createCachableArg); + // Allow disabling of cache for testing purposes + // @ts-expect-error + if (shouldCache && cachableArgs in storage) { + // @ts-expect-error + return storage[cachableArgs]; + } + // @ts-expect-error + const outcome = functionToMemoize.apply(this, args); + // @ts-expect-error + // eslint-disable-next-line no-param-reassign + storage[cachableArgs] = outcome; + return outcome; } - // @ts-ignore - const outcome = functionToMemoize.apply(this, args); - // @ts-ignore - // eslint-disable-next-line no-param-reassign - storage[cachableArgs] = outcome; - return outcome; - }; + ); } + +/** + * For testing purposes, it is possible to disable caching. + */ +memoize.disableCaching = () => { + shouldCache = false; +}; +/** + * Once testing is done, it is possible to restore caching. + * @param {boolean} [initialValue] + */ +memoize.restoreCaching = initialValue => { + shouldCache = initialValue || true; +}; + +Object.defineProperty(memoize, 'isCacheEnabled', { + // writable: false, + // enumerable: true, + get() { + return shouldCache; + }, +}); diff --git a/packages-node/providence-analytics/src/program/utils/optimised-glob.js b/packages-node/providence-analytics/src/program/utils/optimised-glob.js new file mode 100644 index 0000000000..24dcecb9e2 --- /dev/null +++ b/packages-node/providence-analytics/src/program/utils/optimised-glob.js @@ -0,0 +1,286 @@ +/* eslint-disable no-case-declarations */ +/* eslint-disable no-fallthrough */ +import nodeFs from 'fs'; +import path from 'path'; + +import { toPosixPath } from './to-posix-path.js'; + +/** + * @typedef {nodeFs} FsLike + * @typedef {{onlyDirectories:boolean;onlyFiles:boolean;deep:number;suppressErrors:boolean;fs: FsLike;cwd:string;absolute:boolean;extglob:boolean;}} FastGlobtions + */ + +const [nodeMajor] = process.versions.node.split('.').map(Number); + +/** + * @param {string} glob + * @param {object} [providedOpts] + * @param {boolean} [providedOpts.globstar=true] if true, '/foo/*' => '^\/foo\/[^/]*$' (not allowing folders inside *), else '/foo/*' => '^\/foo\/.*$' + * @param {boolean} [providedOpts.extglob=true] if true, supports so called "extended" globs (like bash) and single character matching, matching ranges of characters, group matching etc. + * @returns {RegExp} + */ +export function parseGlobToRegex(glob, providedOpts) { + if (typeof glob !== 'string') throw new TypeError('Expected a string'); + + const options = { + globstar: true, + extglob: true, + ...providedOpts, + }; + + let regexResultStr = ''; + let isInGroup = false; + let currentChar; + + for (let i = 0; i < glob.length; i += 1) { + currentChar = glob[i]; + + const charsToEscape = ['/', '$', '^', '+', '.', '(', ')', '=', '!', '|']; + if (charsToEscape.includes(currentChar)) { + regexResultStr += `\\${currentChar}`; + continue; // eslint-disable-line no-continue + } + + if (options.extglob) { + if (currentChar === '?') { + regexResultStr += '.'; + continue; // eslint-disable-line no-continue + } + if (['[', ']'].includes(currentChar)) { + regexResultStr += currentChar; + continue; // eslint-disable-line no-continue + } + if (currentChar === '{') { + isInGroup = true; + regexResultStr += '('; + continue; // eslint-disable-line no-continue + } + if (currentChar === '}') { + isInGroup = false; + regexResultStr += ')'; + continue; // eslint-disable-line no-continue + } + } + + if (currentChar === ',') { + if (isInGroup) { + regexResultStr += '|'; + continue; // eslint-disable-line no-continue + } + regexResultStr += `\\${currentChar}`; + continue; // eslint-disable-line no-continue + } + + if (currentChar === '*') { + const prevChar = glob[i - 1]; + let isMultiStar = false; + while (glob[i + 1] === '*') { + isMultiStar = true; + i += 1; + } + const nextChar = glob[i + 1]; + if (!options.globstar) { + // Treat any number of "*" as one + regexResultStr += '.*'; + } else { + const isGlobstarSegment = + isMultiStar && ['/', undefined].includes(prevChar) && ['/', undefined].includes(nextChar); + if (isGlobstarSegment) { + // Match zero or more path segments + regexResultStr += '((?:[^/]*(?:/|$))*)'; + // Move over the "/" + i += 1; + } else { + // Only match one path segment + regexResultStr += '([^/]*)'; + } + } + continue; // eslint-disable-line no-continue + } + regexResultStr += currentChar; + } + + return new RegExp(`^${regexResultStr}$`); +} + +/** + * @param {string} glob + */ +function getStartPath(glob) { + const reservedChars = ['?', '[', ']', '{', '}', ',', '.', '*']; + let hasFoundReservedChar = false; + return glob + .split('/') + .map(part => { + if (hasFoundReservedChar) return undefined; + hasFoundReservedChar = reservedChars.some(reservedChar => part.includes(reservedChar)); + return hasFoundReservedChar ? undefined : part; + }) + .filter(Boolean) + .join('/'); +} + +let isCacheEnabled = false; +/** @type {{[path:string]:nodeFs.Dirent[]}} */ +const cache = {}; + +/** + * @param {string} startPath + * @param {{fs?:FsLike, dirents?:nodeFs.Dirent[]}} providedOptions + * @returns {Promise} + */ +async function getAllFilesFromStartPath( + startPath, + { fs = /** @type {* & FsLike} */ (nodeFs), dirents = [] } = {}, +) { + if (isCacheEnabled && cache[startPath]) return cache[startPath]; + + // Older node doesn't support recursive option + if (nodeMajor < 18) { + /** @type {nodeFs.Dirent[]} */ + const direntsForLvl = await fs.promises.readdir(startPath, { withFileTypes: true }); + for (const dirent of direntsForLvl) { + // @ts-expect-error + dirent.parentPath = startPath; + dirents.push(dirent); + + if (dirent.isDirectory()) { + const subDir = path.join(startPath, dirent.name); + await getAllFilesFromStartPath(subDir, { fs, dirents }); + } + } + return /** @type {nodeFs.Dirent[]} */ (dirents); + } + + // @ts-expect-error + dirents.push(...(await fs.promises.readdir(startPath, { withFileTypes: true, recursive: true }))); + cache[startPath] = dirents; + return dirents; +} + +/** + * Lightweight glob implementation. + * It's a drop-in replacement for globby, but it's faster, a few hundred lines of code and has no dependencies. + * @param {string|string[]} globOrGlobs + * @param {Partial} providedOptions + * @returns {Promise} + */ +export async function optimisedGlob(globOrGlobs, providedOptions = {}) { + const options = { + fs: /** @type {* & FsLike} */ (nodeFs), + onlyDirectories: false, + suppressErrors: true, + cwd: process.cwd(), + absolute: false, + onlyFiles: true, + deep: Infinity, + globstar: true, + extglob: true, + unique: true, + sync: false, + dot: false, + // TODO: ignore, throwErrorOnBrokenSymbolicLink, markDirectories, objectMode, onlyDirectories, onlyFiles, stats + // https://github.com/mrmlnc/fast-glob?tab=readme-ov-file + ...providedOptions, + }; + + if (!options.onlyFiles) { + // This makes behavior aligned with globby + options.onlyDirectories = true; + } + + const globs = Array.isArray(globOrGlobs) ? globOrGlobs : [globOrGlobs]; + + /** @type {RegExp[]} */ + const matchRegexesNegative = []; + /** @type {RegExp[]} */ + const matchRegexes = []; + /** @type {{dirent:nodeFs.Dirent;relativeToCwdPath:string}[]} */ + const globEntries = []; + + for (const glob of globs) { + const isNegative = glob.startsWith('!'); + + // Relative paths like './my/folder/**/*.js' are changed to 'my/folder/**/*.js' + const globNormalized = glob.replace(/^\.\//g, '').slice(isNegative ? 1 : 0); + + const regexForGlob = parseGlobToRegex(globNormalized, { + globstar: options.globstar, + extglob: options.extglob, + }); + if (isNegative) { + matchRegexesNegative.push(regexForGlob); + } else { + matchRegexes.push(regexForGlob); + } + + // Search for the "deepest" starting point in the filesystem that we can use to search the fs + const startPath = getStartPath(globNormalized); + const fullStartPath = path.join(options.cwd, startPath); + + try { + const allDirentsRelativeToStartPath = await getAllFilesFromStartPath(fullStartPath, { + fs: options.fs, + }); + + const allDirEntsRelativeToCwd = allDirentsRelativeToStartPath.map(dirent => ({ + // @ts-expect-error + relativeToCwdPath: toPosixPath(path.join(dirent.parentPath, dirent.name)).replace( + `${toPosixPath(options.cwd)}/`, + '', + ), + + dirent, + })); + + globEntries.push(...allDirEntsRelativeToCwd); + } catch (e) { + if (!options.suppressErrors) { + throw e; + } + } + } + + // TODO: for perf, combine options checks instead of doing multiple filters and maps + const matchedEntries = globEntries.filter( + globEntry => + matchRegexes.some(globRe => globRe.test(globEntry.relativeToCwdPath)) && + !matchRegexesNegative.some(globReNeg => globReNeg.test(globEntry.relativeToCwdPath)), + ); + + const allFileOrDirectoryEntries = matchedEntries.filter(({ dirent }) => + options.onlyDirectories ? dirent.isDirectory() : dirent.isFile(), + ); + + let filteredPaths = allFileOrDirectoryEntries.map(({ relativeToCwdPath }) => relativeToCwdPath); + + if (!options.dot) { + filteredPaths = filteredPaths.filter( + f => !f.split('/').some(folderOrFile => folderOrFile.startsWith('.')), + ); + } + + if (options.absolute) { + filteredPaths = filteredPaths.map(f => toPosixPath(path.join(options.cwd, f))); + + if (process.platform === 'win32') { + const driveLetter = path.win32.resolve(options.cwd).slice(0, 1).toUpperCase(); + filteredPaths = filteredPaths.map(f => `${driveLetter}:${f}`); + } + } + + if (options.deep !== Infinity) { + filteredPaths = filteredPaths.filter(f => f.split('/').length <= options.deep + 2); + } + + const result = options.unique ? Array.from(new Set(filteredPaths)) : filteredPaths; + + return result.sort((a, b) => { + const pathDiff = a.split('/').length - b.split('/').length; + return pathDiff !== 0 ? pathDiff : a.localeCompare(b); + }); +} + +optimisedGlob.disableCache = () => { + isCacheEnabled = false; +}; diff --git a/packages-node/providence-analytics/src/program/utils/providence-conf-util.js b/packages-node/providence-analytics/src/program/utils/providence-conf-util.js index 6746e4315a..3d97aa7a0e 100644 --- a/packages-node/providence-analytics/src/program/utils/providence-conf-util.js +++ b/packages-node/providence-analytics/src/program/utils/providence-conf-util.js @@ -1,6 +1,7 @@ -import pathLib from 'path'; -import fs from 'fs'; import { pathToFileURL } from 'url'; +import path from 'path'; + +import { fsAdapter } from './fs-adapter.js'; /** * @typedef {import('../../../types/index.js').ProvidenceCliConf} ProvidenceCliConf @@ -10,12 +11,12 @@ import { pathToFileURL } from 'url'; * @returns {Promise<{providenceConf:Partial;providenceConfRaw:string}|null>} */ async function getConf() { - const confPathWithoutExtension = `${pathLib.join(process.cwd(), 'providence.conf')}`; + const confPathWithoutExtension = `${path.join(process.cwd(), 'providence.conf')}`; let confPathFound; try { - if (fs.existsSync(`${confPathWithoutExtension}.js`)) { + if (fsAdapter.fs.existsSync(`${confPathWithoutExtension}.js`)) { confPathFound = `${confPathWithoutExtension}.js`; - } else if (fs.existsSync(`${confPathWithoutExtension}.mjs`)) { + } else if (fsAdapter.fs.existsSync(`${confPathWithoutExtension}.mjs`)) { confPathFound = `${confPathWithoutExtension}.mjs`; } } catch (_) { @@ -36,7 +37,7 @@ async function getConf() { ); } - const providenceConfRaw = fs.readFileSync(confPathFound, 'utf8'); + const providenceConfRaw = fsAdapter.fs.readFileSync(confPathFound, 'utf8'); return { providenceConf, providenceConfRaw }; } diff --git a/packages-node/providence-analytics/src/program/utils/read-package-tree-with-bower-support.js b/packages-node/providence-analytics/src/program/utils/read-package-tree-with-bower-support.js deleted file mode 100644 index 57bcf3ecdd..0000000000 --- a/packages-node/providence-analytics/src/program/utils/read-package-tree-with-bower-support.js +++ /dev/null @@ -1,227 +0,0 @@ -// @ts-nocheck -/* eslint-disable */ -/** - * This is a modified version of https://github.com/npm/read-package-tree/blob/master/rpt.js - * The original is meant for npm dependencies only. In our (rare) case, we have a hybrid landscape - * where we also want to look for npm dependencies inside bower dependencies (bower_components folder). - * - * Original: https://github.com/npm/read-package-tree - * - * The ISC License - * - * Copyright (c) Isaac Z. Schlueter and Contributors - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR - * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -import fs from 'fs'; -/* istanbul ignore next */ -import { promisify } from 'util'; -import { basename, dirname, join } from 'path'; -import rpjSync from 'read-package-json'; -import readdirSync from 'readdir-scoped-modules'; -import realpath from 'read-package-tree/realpath.js'; - -const rpj = promisify(rpjSync); -const readdir = promisify(readdirSync); - -let ID = 0; -class Node { - constructor(pkg, logical, physical, er, cache) { - // should be impossible. - const cached = cache.get(physical); - /* istanbul ignore next */ - if (cached && !cached.then) throw new Error('re-creating already instantiated node'); - - cache.set(physical, this); - - const parent = basename(dirname(logical)); - if (parent.charAt(0) === '@') this.name = `${parent}/${basename(logical)}`; - else this.name = basename(logical); - this.path = logical; - this.realpath = physical; - this.error = er; - this.id = ID++; - this.package = pkg || {}; - this.parent = null; - this.isLink = false; - this.children = []; - } -} - -class Link extends Node { - constructor(pkg, logical, physical, realpath, er, cache) { - super(pkg, logical, physical, er, cache); - - // if the target has started, but not completed, then - // a Promise will be in the cache to indicate this. - const cachedTarget = cache.get(realpath); - if (cachedTarget && cachedTarget.then) - cachedTarget.then(node => { - this.target = node; - this.children = node.children; - }); - - this.target = cachedTarget || new Node(pkg, logical, realpath, er, cache); - this.realpath = realpath; - this.isLink = true; - this.error = er; - this.children = this.target.children; - } -} - -// this is the way it is to expose a timing issue which is difficult to -// test otherwise. The creation of a Node may take slightly longer than -// the creation of a Link that targets it. If the Node has _begun_ its -// creation phase (and put a Promise in the cache) then the Link will -// get a Promise as its cachedTarget instead of an actual Node object. -// This is not a problem, because it gets resolved prior to returning -// the tree or attempting to load children. However, it IS remarkably -// difficult to get to happen in a test environment to verify reliably. -// Hence this kludge. -const newNode = (pkg, logical, physical, er, cache) => - process.env._TEST_RPT_SLOW_LINK_TARGET_ === '1' - ? new Promise(res => setTimeout(() => res(new Node(pkg, logical, physical, er, cache)), 10)) - : new Node(pkg, logical, physical, er, cache); - -const loadNode = (logical, physical, cache, rpcache, stcache) => { - // cache temporarily holds a promise placeholder so we - // don't try to create the same node multiple times. - // this is very rare to encounter, given the aggressive - // caching on fs.realpath and fs.lstat calls, but - // it can happen in theory. - const cached = cache.get(physical); - /* istanbul ignore next */ - if (cached) return Promise.resolve(cached); - - const p = realpath(physical, rpcache, stcache, 0).then( - real => - rpj(join(real, 'package.json')) - .then( - pkg => [pkg, null], - er => [null, er], - ) - .then(([pkg, er]) => - physical === real - ? newNode(pkg, logical, physical, er, cache) - : new Link(pkg, logical, physical, real, er, cache), - ), - // if the realpath fails, don't bother with the rest - er => new Node(null, logical, physical, er, cache), - ); - - cache.set(physical, p); - return p; -}; - -const loadChildren = (node, cache, filterWith, rpcache, stcache, mode) => { - // if a Link target has started, but not completed, then - // a Promise will be in the cache to indicate this. - // - // XXX When we can one day loadChildren on the link *target* instead of - // the link itself, to match real dep resolution, then we may end up with - // a node target in the cache that isn't yet done resolving when we get - // here. For now, though, this line will never be reached, so it's hidden - // - // if (node.then) - // return node.then(node => loadChildren(node, cache, filterWith, rpcache, stcache)) - - let depFolder = 'node_modules'; - if (mode === 'bower') { - // TODO: if people rename their bower_components folder to smth like "lib", please handle - depFolder = 'bower_components'; - try { - const bowerrc = JSON.parse(fs.readFileSync(join(node.path, '.bowerrc'))); - if (bowerrc && bowerrc.directory) { - depFolder = bowerrc.directory; - } - } catch (_) {} - } - const nm = join(node.path, depFolder); - // const nm = join(node.path, 'bower_components') - return realpath(nm, rpcache, stcache, 0) - .then(rm => readdir(rm).then(kids => [rm, kids])) - .then(([rm, kids]) => - Promise.all( - kids - .filter(kid => kid.charAt(0) !== '.' && (!filterWith || filterWith(node, kid))) - .map(kid => loadNode(join(nm, kid), join(rm, kid), cache, rpcache, stcache)), - ), - ) - .then(kidNodes => { - kidNodes.forEach(k => (k.parent = node)); - node.children.push.apply( - node.children, - kidNodes.sort((a, b) => - (a.package.name ? a.package.name.toLowerCase() : a.path).localeCompare( - b.package.name ? b.package.name.toLowerCase() : b.path, - ), - ), - ); - return node; - }) - .catch(() => node); -}; - -const loadTree = (node, did, cache, filterWith, rpcache, stcache, mode) => { - // impossible except in pathological ELOOP cases - /* istanbul ignore next */ - if (did.has(node.realpath)) return Promise.resolve(node); - - did.add(node.realpath); - - // load children on the target, not the link - return loadChildren(node, cache, filterWith, rpcache, stcache, mode) - .then(node => - Promise.all( - node.children - .filter(kid => !did.has(kid.realpath)) - .map(kid => loadTree(kid, did, cache, filterWith, rpcache, stcache, mode)), - ), - ) - .then(() => node); -}; - -// XXX Drop filterWith and/or cb in next semver major bump -/** - * - * @param {*} root - * @param {*} filterWith - * @param {*} cb - * @param {'npm'|'bower'} [mode='npm'] if mode is 'bower', will look in 'bower_components' instead - * of 'node_modules' - */ -const rpt = (root, filterWith, cb, mode = 'npm') => { - if (!cb && typeof filterWith === 'function') { - cb = filterWith; - filterWith = null; - } - - const cache = new Map(); - // we can assume that the cwd is real enough - const cwd = process.cwd(); - const rpcache = new Map([[cwd, cwd]]); - const stcache = new Map(); - const p = realpath(root, rpcache, stcache, 0) - .then(realRoot => loadNode(root, realRoot, cache, rpcache, stcache)) - .then(node => loadTree(node, new Set(), cache, filterWith, rpcache, stcache, mode)); - - if (typeof cb === 'function') p.then(tree => cb(null, tree), cb); - - return p; -}; - -rpt.Node = Node; -rpt.Link = Link; - -export default rpt; diff --git a/packages-node/providence-analytics/src/program/utils/resolve-import-path.js b/packages-node/providence-analytics/src/program/utils/resolve-import-path.js index 266e028177..11f5e755fc 100644 --- a/packages-node/providence-analytics/src/program/utils/resolve-import-path.js +++ b/packages-node/providence-analytics/src/program/utils/resolve-import-path.js @@ -1,10 +1,12 @@ import { builtinModules } from 'module'; import path from 'path'; + import { nodeResolve } from '@rollup/plugin-node-resolve'; + +import { isRelativeSourcePath } from './relative-source-path.js'; import { LogService } from '../core/LogService.js'; -import { memoize } from './memoize.js'; import { toPosixPath } from './to-posix-path.js'; -import { isRelativeSourcePath } from './relative-source-path.js'; +import { memoize } from './memoize.js'; /** * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot diff --git a/packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier--legacy.js b/packages-node/providence-analytics/src/program/utils/track-down-identifier--legacy.js similarity index 94% rename from packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier--legacy.js rename to packages-node/providence-analytics/src/program/utils/track-down-identifier--legacy.js index 504a5cf3f6..489ab80214 100644 --- a/packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier--legacy.js +++ b/packages-node/providence-analytics/src/program/utils/track-down-identifier--legacy.js @@ -1,20 +1,22 @@ /* eslint-disable no-shadow */ // @ts-nocheck -import fs from 'fs'; -import pathLib from 'path'; +import path from 'path'; + import babelTraverse from '@babel/traverse'; -import { isRelativeSourcePath, toRelativeSourcePath } from '../../utils/relative-source-path.js'; -import { InputDataService } from '../../core/InputDataService.js'; -import { resolveImportPath } from '../../utils/resolve-import-path.js'; -import { AstService } from '../../core/AstService.js'; -import { LogService } from '../../core/LogService.js'; -import { memoize } from '../../utils/memoize.js'; + +import { isRelativeSourcePath, toRelativeSourcePath } from './relative-source-path.js'; +import { InputDataService } from '../core/InputDataService.js'; +import { resolveImportPath } from './resolve-import-path.js'; +import { AstService } from '../core/AstService.js'; +import { LogService } from '../core/LogService.js'; +import { fsAdapter } from './fs-adapter.js'; +import { memoize } from './memoize.js'; /** - * @typedef {import('../../../../types/index.js').RootFile} RootFile + * @typedef {import('../../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot * @typedef {import('../../../../types/index.js').SpecifierSource} SpecifierSource * @typedef {import('../../../../types/index.js').IdentifierName} IdentifierName - * @typedef {import('../../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../../types/index.js').RootFile} RootFile * @typedef {import('@babel/traverse').NodePath} NodePath */ @@ -23,7 +25,7 @@ import { memoize } from '../../utils/memoize.js'; * @param {string} projectName */ function isSelfReferencingProject(source, projectName) { - return source.startsWith(`${projectName}`); + return source.split('/')[0] === projectName; } /** @@ -177,14 +179,14 @@ async function trackDownIdentifierFn( LogService.debug(`[trackDownIdentifier] ${resolvedSourcePath}`); const allowedJsModuleExtensions = ['.mjs', '.js']; - if (!allowedJsModuleExtensions.includes(pathLib.extname(resolvedSourcePath))) { + if (!allowedJsModuleExtensions.includes(path.extname(resolvedSourcePath))) { // We have an import assertion return /** @type { RootFile } */ { file: toRelativeSourcePath(resolvedSourcePath, rootPath), specifier: '[default]', }; } - const code = fs.readFileSync(resolvedSourcePath, 'utf8'); + const code = fsAdapter.fs.readFileSync(resolvedSourcePath, 'utf8'); const babelAst = AstService.getAst(code, 'swc-to-babel', { filePath: resolvedSourcePath }); const shouldLookForDefaultExport = identifierName === '[default]'; diff --git a/packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier.js b/packages-node/providence-analytics/src/program/utils/track-down-identifier.js similarity index 92% rename from packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier.js rename to packages-node/providence-analytics/src/program/utils/track-down-identifier.js index 77384a91b8..d8a1b57c7c 100644 --- a/packages-node/providence-analytics/src/program/analyzers/helpers/track-down-identifier.js +++ b/packages-node/providence-analytics/src/program/utils/track-down-identifier.js @@ -1,18 +1,19 @@ -import fs from 'fs'; import path from 'path'; -import { swcTraverse } from '../../utils/swc-traverse.js'; -import { isRelativeSourcePath, toRelativeSourcePath } from '../../utils/relative-source-path.js'; -import { InputDataService } from '../../core/InputDataService.js'; -import { resolveImportPath } from '../../utils/resolve-import-path.js'; -import { AstService } from '../../core/AstService.js'; -import { memoize } from '../../utils/memoize.js'; + +import { isRelativeSourcePath, toRelativeSourcePath } from './relative-source-path.js'; +import { InputDataService } from '../core/InputDataService.js'; +import { resolveImportPath } from './resolve-import-path.js'; +import { AstService } from '../core/AstService.js'; +import { swcTraverse } from './swc-traverse.js'; +import { fsAdapter } from './fs-adapter.js'; +import { memoize } from './memoize.js'; /** - * @typedef {import('../../../../types/index.js').RootFile} RootFile - * @typedef {import('../../../../types/index.js').SpecifierSource} SpecifierSource - * @typedef {import('../../../../types/index.js').IdentifierName} IdentifierName - * @typedef {import('../../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot - * @typedef {import('../../../../types/index.js').SwcPath} SwcPath + * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').SpecifierSource} SpecifierSource + * @typedef {import('../../../types/index.js').IdentifierName} IdentifierName + * @typedef {import('../../../types/index.js').RootFile} RootFile + * @typedef {import('../../../types/index.js').SwcPath} SwcPath */ /** @@ -20,7 +21,7 @@ import { memoize } from '../../utils/memoize.js'; * @param {string} projectName */ function isSelfReferencingProject(source, projectName) { - return source.startsWith(`${projectName}`); + return source.split('/')[0] === projectName; } /** @@ -193,7 +194,7 @@ async function trackDownIdentifierFn( specifier: '[default]', }; } - const code = fs.readFileSync(/** @type {string} */ (resolvedSourcePath), 'utf8'); + const code = fsAdapter.fs.readFileSync(/** @type {string} */ (resolvedSourcePath), 'utf8'); const swcAst = AstService._getSwcAst(code); const shouldLookForDefaultExport = identifierName === '[default]'; diff --git a/packages-node/providence-analytics/test-helpers/setup-analyzer-test.js b/packages-node/providence-analytics/test-helpers/setup-analyzer-test.js index d7edf30cc4..b14eb9d4b9 100644 --- a/packages-node/providence-analytics/test-helpers/setup-analyzer-test.js +++ b/packages-node/providence-analytics/test-helpers/setup-analyzer-test.js @@ -5,7 +5,7 @@ import { suppressNonCriticalLogs, restoreSuppressNonCriticalLogs, } from './mock-log-service-helpers.js'; -import { memoizeConfig } from '../src/program/utils/memoize.js'; +import { memoize } from '../src/program/utils/memoize.js'; /** * @typedef {import('../types/index.js').QueryResult} QueryResult @@ -20,17 +20,17 @@ export function setupAnalyzerTest() { const originalReferenceProjectPaths = InputDataService.referenceProjectPaths; const cacheDisabledQInitialValue = QueryService.cacheDisabled; - const cacheDisabledIInitialValue = memoizeConfig.isCacheDisabled; + const cacheEnabledIInitialValue = memoize.isCacheEnabled; before(() => { QueryService.cacheDisabled = true; - memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); suppressNonCriticalLogs(); }); after(() => { QueryService.cacheDisabled = cacheDisabledQInitialValue; - memoizeConfig.isCacheDisabled = cacheDisabledIInitialValue; + memoize.restoreCaching(cacheEnabledIInitialValue); restoreSuppressNonCriticalLogs(); }); diff --git a/packages-node/providence-analytics/test-helpers/templates/DummyAnalyzer.js b/packages-node/providence-analytics/test-helpers/templates/DummyAnalyzer.js index 4dce2d150b..01658e0278 100644 --- a/packages-node/providence-analytics/test-helpers/templates/DummyAnalyzer.js +++ b/packages-node/providence-analytics/test-helpers/templates/DummyAnalyzer.js @@ -61,7 +61,7 @@ export class DummyAnalyzer extends Analyzer { /** * Prepare */ - const analyzerResult = this._prepare(cfg); + const analyzerResult = await this._prepare(cfg); if (analyzerResult) { return analyzerResult; } diff --git a/packages-node/providence-analytics/test-node/cli/cli-helpers.test.js b/packages-node/providence-analytics/test-node/cli/cli-helpers.test.js index 8015d9528a..8b23302f1b 100644 --- a/packages-node/providence-analytics/test-node/cli/cli-helpers.test.js +++ b/packages-node/providence-analytics/test-node/cli/cli-helpers.test.js @@ -1,22 +1,24 @@ /* eslint-disable no-unused-expressions */ /* eslint-disable import/no-extraneous-dependencies */ -import sinon from 'sinon'; -import pathLib from 'path'; import { fileURLToPath } from 'url'; +import pathLib from 'path'; + import { expect } from 'chai'; import { it } from 'mocha'; +import sinon from 'sinon'; + +import { getExtendDocsResults } from '../../src/cli/launch-providence-with-extend-docs.js'; +import { setupAnalyzerTest } from '../../test-helpers/setup-analyzer-test.js'; +import { toPosixPath } from '../../src/program/utils/to-posix-path.js'; +import { _providenceModule } from '../../src/program/providence.js'; +import { _cliHelpersModule } from '../../src/cli/cli-helpers.js'; +import { memoize } from '../../src/program/utils/memoize.js'; import { - mockProject, - restoreMockedProjects, mockTargetAndReferenceProject, + restoreMockedProjects, + mockProject, } from '../../test-helpers/mock-project-helpers.js'; -import { _providenceModule } from '../../src/program/providence.js'; -import { _cliHelpersModule } from '../../src/cli/cli-helpers.js'; -import { toPosixPath } from '../../src/program/utils/to-posix-path.js'; -import { memoizeConfig } from '../../src/program/utils/memoize.js'; -import { getExtendDocsResults } from '../../src/cli/launch-providence-with-extend-docs.js'; import { AstService } from '../../src/index.js'; -import { setupAnalyzerTest } from '../../test-helpers/setup-analyzer-test.js'; /** * @typedef {import('../../types/index.js').QueryResult} QueryResult @@ -50,22 +52,22 @@ describe('CLI helpers', () => { describe('pathsArrayFromCs', () => { it('allows absolute paths', async () => { - expect(pathsArrayFromCs('/mocked/path/example-project', rootDir)).to.eql([ + expect(await pathsArrayFromCs('/mocked/path/example-project', rootDir)).to.deep.equal([ '/mocked/path/example-project', ]); }); it('allows relative paths', async () => { expect( - pathsArrayFromCs('./test-helpers/project-mocks/importing-target-project', rootDir), - ).to.eql([`${rootDir}/test-helpers/project-mocks/importing-target-project`]); + await pathsArrayFromCs('./test-helpers/project-mocks/importing-target-project', rootDir), + ).to.deep.equal([`${rootDir}/test-helpers/project-mocks/importing-target-project`]); expect( - pathsArrayFromCs('test-helpers/project-mocks/importing-target-project', rootDir), - ).to.eql([`${rootDir}/test-helpers/project-mocks/importing-target-project`]); + await pathsArrayFromCs('test-helpers/project-mocks/importing-target-project', rootDir), + ).to.deep.equal([`${rootDir}/test-helpers/project-mocks/importing-target-project`]); }); it('allows globs', async () => { - expect(pathsArrayFromCs('test-helpers/project-mocks*', rootDir)).to.eql([ + expect(await pathsArrayFromCs('test-helpers/project-mocks*', rootDir)).to.deep.equal([ `${rootDir}/test-helpers/project-mocks`, `${rootDir}/test-helpers/project-mocks-analyzer-outputs`, ]); @@ -74,7 +76,7 @@ describe('CLI helpers', () => { it('allows multiple comma separated paths', async () => { const paths = 'test-helpers/project-mocks*, ./test-helpers/project-mocks/importing-target-project,/mocked/path/example-project'; - expect(pathsArrayFromCs(paths, rootDir)).to.eql([ + expect(await pathsArrayFromCs(paths, rootDir)).to.deep.equal([ `${rootDir}/test-helpers/project-mocks`, `${rootDir}/test-helpers/project-mocks-analyzer-outputs`, `${rootDir}/test-helpers/project-mocks/importing-target-project`, @@ -86,8 +88,13 @@ describe('CLI helpers', () => { describe('pathsArrayFromCollectionName', () => { it('gets collections from external target config', async () => { expect( - pathsArrayFromCollectionName('lion-collection', 'search-target', externalCfgMock, rootDir), - ).to.eql( + await pathsArrayFromCollectionName( + 'lion-collection', + 'search-target', + externalCfgMock, + rootDir, + ), + ).to.deep.equal( externalCfgMock.searchTargetCollections['lion-collection'].map(p => toPosixPath(pathLib.join(rootDir, p)), ), @@ -96,13 +103,13 @@ describe('CLI helpers', () => { it('gets collections from external reference config', async () => { expect( - pathsArrayFromCollectionName( + await pathsArrayFromCollectionName( 'lion-based-ui-collection', 'reference', externalCfgMock, rootDir, ), - ).to.eql( + ).to.deep.equal( externalCfgMock.referenceCollections['lion-based-ui-collection'].map(p => toPosixPath(pathLib.join(rootDir, p)), ), @@ -130,7 +137,7 @@ describe('CLI helpers', () => { it('adds bower and node dependencies', async () => { const result = await appendProjectDependencyPaths(['/mocked/path/example-project']); - expect(result).to.eql([ + expect(result).to.deep.equal([ '/mocked/path/example-project/node_modules/dependency-a', '/mocked/path/example-project/node_modules/my-dependency', '/mocked/path/example-project/bower_components/dependency-b', @@ -143,7 +150,7 @@ describe('CLI helpers', () => { ['/mocked/path/example-project'], '/^dependency-/', ); - expect(result).to.eql([ + expect(result).to.deep.equal([ '/mocked/path/example-project/node_modules/dependency-a', // in windows, it should not add '/mocked/path/example-project/node_modules/my-dependency', '/mocked/path/example-project/bower_components/dependency-b', @@ -151,7 +158,7 @@ describe('CLI helpers', () => { ]); const result2 = await appendProjectDependencyPaths(['/mocked/path/example-project'], '/b$/'); - expect(result2).to.eql([ + expect(result2).to.deep.equal([ '/mocked/path/example-project/bower_components/dependency-b', '/mocked/path/example-project', ]); @@ -163,7 +170,7 @@ describe('CLI helpers', () => { undefined, ['npm'], ); - expect(result).to.eql([ + expect(result).to.deep.equal([ '/mocked/path/example-project/node_modules/dependency-a', '/mocked/path/example-project/node_modules/my-dependency', '/mocked/path/example-project', @@ -174,7 +181,7 @@ describe('CLI helpers', () => { undefined, ['bower'], ); - expect(result2).to.eql([ + expect(result2).to.deep.equal([ '/mocked/path/example-project/bower_components/dependency-b', '/mocked/path/example-project', ]); @@ -189,7 +196,7 @@ describe('CLI helpers', () => { it('rewrites monorepo package paths when analysis is run from monorepo root', async () => { // This fails after InputDataService.addAstToProjectsData is memoized // (it does pass when run in isolation however, as a quick fix we disable memoization cache here...) - memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); // Since we use the print method here, we need to force Babel, bc swc-to-babel output is not compatible // with @babel/generate const initialAstServiceFallbackToBabel = AstService.fallbackToBabel; @@ -268,7 +275,7 @@ describe('CLI helpers', () => { cwd: '/my-components', }); - expect(result).to.eql([ + expect(result).to.deep.equal([ { name: 'TheirButton', variable: { diff --git a/packages-node/providence-analytics/test-node/cli/cli.e2e.js b/packages-node/providence-analytics/test-node/cli/cli.e2e.js index e74d53ba7d..917b7a09ee 100644 --- a/packages-node/providence-analytics/test-node/cli/cli.e2e.js +++ b/packages-node/providence-analytics/test-node/cli/cli.e2e.js @@ -1,5 +1,5 @@ /* eslint-disable import/no-extraneous-dependencies */ -import pathLib from 'path'; +import path from 'path'; import { expect } from 'chai'; import { it } from 'mocha'; import { appendProjectDependencyPaths } from '../../src/cli/cli-helpers.js'; @@ -15,13 +15,13 @@ describe('CLI helpers against filesystem', () => { describe('appendProjectDependencyPaths', () => { it('allows a regex filter', async () => { const targetFilePath = toPosixPath( - pathLib.resolve( + path.resolve( getCurrentDir(import.meta.url), '../../test-helpers/project-mocks/importing-target-project', ), ); const result = await appendProjectDependencyPaths([targetFilePath], '/^dep-/'); - expect(result).to.eql([ + expect(result).to.deep.equal([ `${targetFilePath}/node_modules/dep-a`, // in windows, it should not add `${targetFilePath}/node_modules/my-dep-b`, targetFilePath, diff --git a/packages-node/providence-analytics/test-node/cli/cli.test.js b/packages-node/providence-analytics/test-node/cli/cli.test.js index c331736802..7311262200 100644 --- a/packages-node/providence-analytics/test-node/cli/cli.test.js +++ b/packages-node/providence-analytics/test-node/cli/cli.test.js @@ -1,19 +1,17 @@ /* eslint-disable no-unused-expressions */ /* eslint-disable import/no-extraneous-dependencies */ -import sinon from 'sinon'; +import commander from 'commander'; import { expect } from 'chai'; import { it } from 'mocha'; -import commander from 'commander'; +import sinon from 'sinon'; + import { mockProject } from '../../test-helpers/mock-project-helpers.js'; import { InputDataService } from '../../src/program/core/InputDataService.js'; import { QueryService } from '../../src/program/core/QueryService.js'; import { _providenceModule } from '../../src/program/providence.js'; import { _cliHelpersModule } from '../../src/cli/cli-helpers.js'; import { cli } from '../../src/cli/cli.js'; -import { _promptAnalyzerMenuModule } from '../../src/cli/prompt-analyzer-menu.js'; -import { memoizeConfig } from '../../src/program/utils/memoize.js'; -import { _extendDocsModule } from '../../src/cli/launch-providence-with-extend-docs.js'; -import { dashboardServer } from '../../src/dashboard/server.js'; +import { memoize } from '../../src/program/utils/memoize.js'; import { setupAnalyzerTest } from '../../test-helpers/setup-analyzer-test.js'; /** @@ -56,12 +54,8 @@ describe('Providence CLI', () => { /** @type {sinon.SinonStub} */ let providenceStub; /** @type {sinon.SinonStub} */ - let promptCfgStub; - /** @type {sinon.SinonStub} */ let iExtConfStub; /** @type {sinon.SinonStub} */ - let promptStub; - /** @type {sinon.SinonStub} */ let qConfStub; before(() => { @@ -71,19 +65,9 @@ describe('Providence CLI', () => { /** @type {sinon.SinonStub} */ providenceStub = sinon.stub(_providenceModule, 'providence').returns(Promise.resolve()); - /** @type {sinon.SinonStub} */ - promptCfgStub = sinon - .stub(_promptAnalyzerMenuModule, 'promptAnalyzerConfigMenu') - .returns(Promise.resolve({ analyzerConfig: { con: 'fig' } })); - /** @type {sinon.SinonStub} */ iExtConfStub = sinon.stub(InputDataService, 'getExternalConfig').returns(externalCfgMock); - /** @type {sinon.SinonStub} */ - promptStub = sinon - .stub(_promptAnalyzerMenuModule, 'promptAnalyzerMenu') - .returns(Promise.resolve({ analyzerName: 'match-analyzer-mock' })); - /** @type {sinon.SinonStub} */ qConfStub = sinon.stub(QueryService, 'getQueryConfigFromAnalyzer').returns( // @ts-expect-error @@ -100,9 +84,7 @@ describe('Providence CLI', () => { commander.setMaxListeners(10); providenceStub.restore(); - promptCfgStub.restore(); iExtConfStub.restore(); - promptStub.restore(); qConfStub.restore(); }); @@ -120,14 +102,13 @@ describe('Providence CLI', () => { projectPath: '/mocked/path/example-project', }, ); - memoizeConfig.isCacheDisabled = true; + // memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); }); afterEach(() => { providenceStub.resetHistory(); - promptCfgStub.resetHistory(); iExtConfStub.resetHistory(); - promptStub.resetHistory(); qConfStub.resetHistory(); }); @@ -186,18 +167,26 @@ describe('Providence CLI', () => { it('"-e --extensions"', async () => { await runCli(`${anyCmdThatAcceptsGlobalOpts} -e bla,blu`, rootDir); - expect(providenceStub.args[0][1].gatherFilesConfig.extensions).to.eql(['.bla', '.blu']); + expect(providenceStub.args[0][1].gatherFilesConfig.extensions).to.deep.equal([ + '.bla', + '.blu', + ]); providenceStub.resetHistory(); await runCli(`${anyCmdThatAcceptsGlobalOpts} --extensions bla,blu`, rootDir); - expect(providenceStub.args[0][1].gatherFilesConfig.extensions).to.eql(['.bla', '.blu']); + expect(providenceStub.args[0][1].gatherFilesConfig.extensions).to.deep.equal([ + '.bla', + '.blu', + ]); }); it('"-t --search-target-paths"', async () => { await runCli(`${anyCmdThatAcceptsGlobalOpts} -t /mocked/path/example-project`, rootDir); expect(pathsArrayFromCsStub.args[0][0]).to.equal('/mocked/path/example-project'); - expect(providenceStub.args[0][1].targetProjectPaths).to.eql(['/mocked/path/example-project']); + expect(providenceStub.args[0][1].targetProjectPaths).to.deep.equal([ + '/mocked/path/example-project', + ]); pathsArrayFromCsStub.resetHistory(); providenceStub.resetHistory(); @@ -207,13 +196,15 @@ describe('Providence CLI', () => { rootDir, ); expect(pathsArrayFromCsStub.args[0][0]).to.equal('/mocked/path/example-project'); - expect(providenceStub.args[0][1].targetProjectPaths).to.eql(['/mocked/path/example-project']); + expect(providenceStub.args[0][1].targetProjectPaths).to.deep.equal([ + '/mocked/path/example-project', + ]); }); it('"-r --reference-paths"', async () => { await runCli(`${anyCmdThatAcceptsGlobalOpts} -r /mocked/path/example-project`, rootDir); expect(pathsArrayFromCsStub.args[0][0]).to.equal('/mocked/path/example-project'); - expect(providenceStub.args[0][1].referenceProjectPaths).to.eql([ + expect(providenceStub.args[0][1].referenceProjectPaths).to.deep.equal([ '/mocked/path/example-project', ]); @@ -225,7 +216,7 @@ describe('Providence CLI', () => { rootDir, ); expect(pathsArrayFromCsStub.args[0][0]).to.equal('/mocked/path/example-project'); - expect(providenceStub.args[0][1].referenceProjectPaths).to.eql([ + expect(providenceStub.args[0][1].referenceProjectPaths).to.deep.equal([ '/mocked/path/example-project', ]); }); @@ -236,7 +227,9 @@ describe('Providence CLI', () => { rootDir, ); expect(pathsArrayFromCollectionStub.args[0][0]).to.equal('lion-collection'); - expect(providenceStub.args[0][1].targetProjectPaths).to.eql(['/mocked/path/example-project']); + expect(providenceStub.args[0][1].targetProjectPaths).to.deep.equal([ + '/mocked/path/example-project', + ]); }); it('"--reference-collection"', async () => { @@ -245,14 +238,14 @@ describe('Providence CLI', () => { rootDir, ); expect(pathsArrayFromCollectionStub.args[0][0]).to.equal('lion-based-ui-collection'); - expect(providenceStub.args[0][1].referenceProjectPaths).to.eql([ + expect(providenceStub.args[0][1].referenceProjectPaths).to.deep.equal([ '/mocked/path/example-project', ]); }); it('"-a --allowlist"', async () => { await runCli(`${anyCmdThatAcceptsGlobalOpts} -a mocked/**/*,rocked/*`, rootDir); - expect(providenceStub.args[0][1].gatherFilesConfig.allowlist).to.eql([ + expect(providenceStub.args[0][1].gatherFilesConfig.allowlist).to.deep.equal([ 'mocked/**/*', 'rocked/*', ]); @@ -260,7 +253,7 @@ describe('Providence CLI', () => { providenceStub.resetHistory(); await runCli(`${anyCmdThatAcceptsGlobalOpts} --allowlist mocked/**/*,rocked/*`, rootDir); - expect(providenceStub.args[0][1].gatherFilesConfig.allowlist).to.eql([ + expect(providenceStub.args[0][1].gatherFilesConfig.allowlist).to.deep.equal([ 'mocked/**/*', 'rocked/*', ]); @@ -271,7 +264,7 @@ describe('Providence CLI', () => { `${anyCmdThatAcceptsGlobalOpts} --allowlist-reference mocked/**/*,rocked/*`, rootDir, ); - expect(providenceStub.args[0][1].gatherFilesConfigReference.allowlist).to.eql([ + expect(providenceStub.args[0][1].gatherFilesConfigReference.allowlist).to.deep.equal([ 'mocked/**/*', 'rocked/*', ]); @@ -311,7 +304,7 @@ describe('Providence CLI', () => { await runCli(`${anyCmdThatAcceptsGlobalOpts} --target-dependencies`, rootDir); expect(appendProjectDependencyPathsStub.called).to.be.true; - expect(providenceStub.args[0][1].targetProjectPaths).to.eql([ + expect(providenceStub.args[0][1].targetProjectPaths).to.deep.equal([ '/mocked/path/example-project', '/mocked/path/example-project/node_modules/mock-dep-a', '/mocked/path/example-project/bower_components/mock-dep-b', @@ -342,93 +335,16 @@ describe('Providence CLI', () => { }); describe('Options', () => { - it('"-o --prompt-optional-config"', async () => { - await runCli(`analyze -o`, rootDir); - expect(promptStub.called).to.be.true; - - promptStub.resetHistory(); - - await runCli(`analyze --prompt-optional-config`, rootDir); - expect(promptStub.called).to.be.true; - }); - it('"-c --config"', async () => { await runCli(`analyze match-analyzer-mock -c {"a":"2"}`, rootDir); expect(qConfStub.args[0][0]).to.equal('match-analyzer-mock'); - expect(qConfStub.args[0][1]).to.eql({ a: '2', metaConfig: {} }); + expect(qConfStub.args[0][1]).to.deep.equal({ a: '2', metaConfig: {} }); qConfStub.resetHistory(); await runCli(`analyze match-analyzer-mock --config {"a":"2"}`, rootDir); expect(qConfStub.args[0][0]).to.equal('match-analyzer-mock'); - expect(qConfStub.args[0][1]).to.eql({ a: '2', metaConfig: {} }); - }); - - it('calls "promptAnalyzerConfigMenu" without config given', async () => { - await runCli(`analyze match-analyzer-mock`, rootDir); - expect(promptCfgStub.called).to.be.true; - }); - }); - }); - - describe.skip('Query', () => {}); - describe.skip('Search', () => {}); - - describe('Manage', () => {}); - - describe('Dashboard', () => { - /** @type {sinon.SinonStub} */ - const startStub = sinon.stub(dashboardServer, 'start'); - it('spawns a dashboard', async () => { - runCli(`dashboard`, rootDir); - expect(startStub.called).to.be.true; - }); - }); - - describe('Extend docs', () => { - /** @type {sinon.SinonStub} */ - let extendDocsStub; - - before(() => { - extendDocsStub = sinon - .stub(_extendDocsModule, 'launchProvidenceWithExtendDocs') - .returns(Promise.resolve()); - }); - - after(() => { - extendDocsStub.restore(); - }); - - afterEach(() => { - extendDocsStub.resetHistory(); - }); - - it('allows configuration', async () => { - await runCli( - [ - 'extend-docs', - '-t /xyz', - '-r /xyz/x', - '--prefix-from pfrom --prefix-to pto', - '--output-folder /outp', - '--extensions bla', - '--allowlist al --allowlist-reference alr', - ].join(' '), - rootDir, - ); - expect(extendDocsStub.called).to.be.true; - expect(extendDocsStub.args[0][0]).to.eql({ - referenceProjectPaths: ['/xyz/x'], - prefixCfg: { - from: 'pfrom', - to: 'pto', - }, - outputFolder: '/outp', - extensions: ['.bla'], - allowlist: ['al'], - allowlistReference: ['alr'], - cwd: '/mocked/path/example-project', - skipCheckMatchCompatibility: true, + expect(qConfStub.args[0][1]).to.deep.equal({ a: '2', metaConfig: {} }); }); }); }); diff --git a/packages-node/providence-analytics/test-node/dashboard/dashboard-server.test.js b/packages-node/providence-analytics/test-node/dashboard/dashboard-server.test.js index fb495f0bee..06d23b5bf4 100644 --- a/packages-node/providence-analytics/test-node/dashboard/dashboard-server.test.js +++ b/packages-node/providence-analytics/test-node/dashboard/dashboard-server.test.js @@ -1,15 +1,16 @@ /* eslint-disable import/no-extraneous-dependencies */ -import fs from 'fs'; +import { fileURLToPath, pathToFileURL } from 'url'; import pathLib from 'path'; import sinon from 'sinon'; -import { fileURLToPath, pathToFileURL } from 'url'; + +import { createTestServer } from '@web/dev-server-core/test-helpers'; import { expect } from 'chai'; import { it } from 'mocha'; -import fetch from 'node-fetch'; -import { createTestServer } from '@web/dev-server-core/test-helpers'; + +import { providenceConfUtil } from '../../src/program/utils/providence-conf-util.js'; import { createDashboardServerConfig } from '../../src/dashboard/server.js'; import { ReportService } from '../../src/program/core/ReportService.js'; -import { providenceConfUtil } from '../../src/program/utils/providence-conf-util.js'; +import { fsAdapter } from '../../src/program/utils/fs-adapter.js'; /** * @typedef {import('@web/dev-server-core').DevServer} DevServer @@ -27,11 +28,18 @@ const mockedOutputPath = pathLib.join(__dirname, 'fixtures/providence-output'); async function getConf(url) { const { href } = pathToFileURL(url); const { default: providenceConf } = await import(href); - const providenceConfRaw = fs.readFileSync(url, 'utf8'); + const providenceConfRaw = fsAdapter.fs.readFileSync(url, 'utf8'); return { providenceConf, providenceConfRaw }; } describe('Dashboard Server', () => { + const [nodeMajor] = process.versions.node.split('.').map(Number); + + if (nodeMajor < 18) { + // Skipping tests for now, since nopde < 18 will be phased out and we want to use native fetch... + return; + } + /** @type {string} */ let host; /** @type {DevServer} */ @@ -40,7 +48,7 @@ describe('Dashboard Server', () => { let providenceConfStub; before(() => { - // N.B. don't use mock-fs, since it doesn't correctly handle dynamic imports and fs.promises + // N.B. don't use mock-fs, since it doesn't correctly handle dynamic imports and fsAdapter.fs.promises ReportService.outputPath = mockedOutputPath; }); @@ -81,8 +89,11 @@ describe('Dashboard Server', () => { const response = await fetch(`${host}/menu-data.json`); expect(response.status).to.equal(200); const responseJSON = await response.json(); - const expectedResult = fs.readFileSync(`${mockedResponsesPath}/menu-data.json`, 'utf8'); - expect(responseJSON).to.eql(JSON.parse(expectedResult)); + const expectedResult = fsAdapter.fs.readFileSync( + `${mockedResponsesPath}/menu-data.json`, + 'utf8', + ); + expect(responseJSON).to.deep.equal(JSON.parse(expectedResult)); }); }); @@ -91,8 +102,11 @@ describe('Dashboard Server', () => { const response = await fetch(`${host}/results.json`); expect(response.status).to.equal(200); const responseJson = await response.json(); - const expectedResult = fs.readFileSync(`${mockedResponsesPath}/results.json`, 'utf8'); - expect(responseJson).to.eql(JSON.parse(expectedResult)); + const expectedResult = fsAdapter.fs.readFileSync( + `${mockedResponsesPath}/results.json`, + 'utf8', + ); + expect(responseJson).to.deep.equal(JSON.parse(expectedResult)); }); }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/e2e/all-analyzers.e2e.js b/packages-node/providence-analytics/test-node/program/analyzers/e2e/all-analyzers.e2e.js index 3b75b6d1b3..e2513e54b4 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/e2e/all-analyzers.e2e.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/e2e/all-analyzers.e2e.js @@ -1,13 +1,12 @@ /* eslint-disable import/no-extraneous-dependencies */ import pathLib, { dirname } from 'path'; import { fileURLToPath } from 'url'; -import fs from 'fs'; import { expect } from 'chai'; import { it } from 'mocha'; import { providence } from '../../../../src/program/providence.js'; import { QueryService } from '../../../../src/program/core/QueryService.js'; import { ReportService } from '../../../../src/program/core/ReportService.js'; -import { memoizeConfig } from '../../../../src/program/utils/memoize.js'; +import { memoize } from '../../../../src/program/utils/memoize.js'; import { setupAnalyzerTest } from '../../../../test-helpers/setup-analyzer-test.js'; import { FindExportsAnalyzer, @@ -18,6 +17,7 @@ import MatchSubclassesAnalyzer from '../../../../src/program/analyzers/match-sub import MatchPathsAnalyzer from '../../../../src/program/analyzers/match-paths.js'; import FindCustomelementsAnalyzer from '../../../../src/program/analyzers/find-customelements.js'; import FindClassesAnalyzer from '../../../../src/program/analyzers/find-classes.js'; +import { fsAdapter } from '../../../../src/program/utils/fs-adapter.js'; /** * @typedef {import('../../../../types/index.js').ProvidenceConfig} ProvidenceConfig @@ -48,13 +48,16 @@ describe('Analyzers file-system integration', () => { const originalGetResultFileNameAndPath = ReportService._getResultFileNameAndPath; const originalOutputPath = ReportService.outputPath; - const memoizeCacheDisabledInitial = memoizeConfig.isCacheDisabled; - memoizeConfig.isCacheDisabled = true; + const originalGetCachedResult = ReportService.getCachedResult; + + const memoizeCacheEnabledInitial = memoize.isCacheEnabled; + memoize.disableCaching(); after(() => { ReportService._getResultFileNameAndPath = originalGetResultFileNameAndPath; + ReportService.getCachedResult = originalGetCachedResult; ReportService.outputPath = originalOutputPath; - memoizeConfig.isCacheDisabled = memoizeCacheDisabledInitial; + memoize.restoreCaching(memoizeCacheEnabledInitial); }); if (generateE2eMode) { @@ -69,6 +72,8 @@ describe('Analyzers file-system integration', () => { }; } else { ReportService.outputPath = __dirname; // prevents cache to fail the test + // @ts-ignore + ReportService.getCachedResult = () => undefined; } const analyzers = [ { @@ -120,9 +125,9 @@ describe('Analyzers file-system integration', () => { for (const { ctor, providenceConfig } of analyzers) { it(`"${ctor.analyzerName}" analyzer`, async () => { - const findExportsQueryConfig = await QueryService.getQueryConfigFromAnalyzer(ctor); + const currentQueryConfig = await QueryService.getQueryConfigFromAnalyzer(ctor); const queryResults = await providence( - findExportsQueryConfig, + currentQueryConfig, /** @type {ProvidenceConfig} */ (providenceConfig), ); if (generateE2eMode) { @@ -132,7 +137,7 @@ describe('Analyzers file-system integration', () => { return; } const expectedOutput = JSON.parse( - fs.readFileSync( + fsAdapter.fs.readFileSync( pathLib.resolve( __dirname, `../../../../test-helpers/project-mocks-analyzer-outputs/${ctor.analyzerName}.json`, @@ -141,8 +146,8 @@ describe('Analyzers file-system integration', () => { ), ); const { queryOutput } = JSON.parse(JSON.stringify(queryResults[0])); - expect(queryOutput).not.to.eql([]); - expect(queryOutput).to.eql(expectedOutput.queryOutput); + // expect(queryOutput).not.to.deep.equal([]); + expect(queryOutput).to.deep.equal(expectedOutput.queryOutput); }); } }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-exports_-_exporting-ref-project_1.0.0__-42206859.json b/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-exports_-_exporting-ref-project_1.0.0__-42206859.json index 9908ee9799..a89cc0b314 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-exports_-_exporting-ref-project_1.0.0__-42206859.json +++ b/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-exports_-_exporting-ref-project_1.0.0__-42206859.json @@ -3,7 +3,7 @@ "searchType": "ast-analyzer", "analyzerMeta": { "name": "find-exports", - "requiredAst": "swc-to-babel", + "requiredAst": "swc", "identifier": "exporting-ref-project_1.0.0__-42206859", "targetProject": { "mainEntry": "./index.js", diff --git a/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-imports_-_importing-target-project_0.0.2-target-mock__349742630.json b/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-imports_-_importing-target-project_0.0.2-target-mock__349742630.json index 3cc5678261..286623df3b 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-imports_-_importing-target-project_0.0.2-target-mock__349742630.json +++ b/packages-node/providence-analytics/test-node/program/analyzers/e2e/find-imports_-_importing-target-project_0.0.2-target-mock__349742630.json @@ -3,7 +3,7 @@ "searchType": "ast-analyzer", "analyzerMeta": { "name": "find-imports", - "requiredAst": "swc-to-babel", + "requiredAst": "swc", "identifier": "importing-target-project_0.0.2-target-mock__349742630", "targetProject": { "mainEntry": "./target-src/match-imports/root-level-imports.js", diff --git a/packages-node/providence-analytics/test-node/program/analyzers/find-classes.test.js b/packages-node/providence-analytics/test-node/program/analyzers/find-classes.test.js index a08269e8db..2501ca0839 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/find-classes.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/find-classes.test.js @@ -25,7 +25,7 @@ describe('Analyzer "find-classes"', async () => { mockProject([`class EmptyClass {}`]); const queryResults = await providence(findClassesQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result).to.eql([ + expect(firstEntry.result).to.deep.equal([ { name: 'EmptyClass', isMixin: false, @@ -41,7 +41,7 @@ describe('Analyzer "find-classes"', async () => { mockProject([`const m = superclass => class MyMixin extends superclass {}`]); const queryResults = await providence(findClassesQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result).to.eql([ + expect(firstEntry.result).to.deep.equal([ { name: 'MyMixin', superClasses: [ @@ -72,7 +72,7 @@ describe('Analyzer "find-classes"', async () => { }); const queryResults = await providence(findClassesQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result[1].superClasses).to.eql([ + expect(firstEntry.result[1].superClasses).to.deep.equal([ { isMixin: true, name: 'Mixin', @@ -109,7 +109,7 @@ describe('Analyzer "find-classes"', async () => { ]); const queryResults = await providence(findClassesQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result[0].members.methods).to.eql([ + expect(firstEntry.result[0].members.methods).to.deep.equal([ { accessType: 'public', name: 'method', @@ -145,7 +145,7 @@ describe('Analyzer "find-classes"', async () => { ]); const queryResults = await providence(findClassesQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result[0].members.props).to.eql([ + expect(firstEntry.result[0].members.props).to.deep.equal([ { accessType: 'public', kind: ['get', 'set'], diff --git a/packages-node/providence-analytics/test-node/program/analyzers/find-customelements.test.js b/packages-node/providence-analytics/test-node/program/analyzers/find-customelements.test.js index 3af9191dec..0a1db55464 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/find-customelements.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/find-customelements.test.js @@ -58,7 +58,7 @@ describe('Analyzer "find-customelements"', async () => { const queryResults = await providence(findCustomelementsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; const firstEntry = getEntry(queryResult); - expect(firstEntry.result[0].rootFile).to.eql({ + expect(firstEntry.result[0].rootFile).to.deep.equal({ file: './src/CustomEl.js', specifier: 'CustomEl', }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/find-exports.test.js b/packages-node/providence-analytics/test-node/program/analyzers/find-exports.test.js index cf525d208f..b3ae906249 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/find-exports.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/find-exports.test.js @@ -26,7 +26,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstResult = getEntry(queryResults[0]).result[0]; - expect(firstResult.exportSpecifiers).to.eql(['x']); + expect(firstResult.exportSpecifiers).to.deep.equal(['x']); expect(firstResult.source).to.be.undefined; }); @@ -34,7 +34,7 @@ describe('Analyzer "find-exports"', async () => { mockProject([`export default class X {}`]); const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstResult = getEntry(queryResults[0]).result[0]; - expect(firstResult.exportSpecifiers).to.eql(['[default]']); + expect(firstResult.exportSpecifiers).to.deep.equal(['[default]']); expect(firstResult.source).to.be.undefined; }); @@ -43,7 +43,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstResult = getEntry(queryResults[0]).result[0]; - expect(firstResult.exportSpecifiers).to.eql(['[default]']); + expect(firstResult.exportSpecifiers).to.deep.equal(['[default]']); expect(firstResult.source).to.be.undefined; }); @@ -56,7 +56,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstResult = getEntry(queryResults[0]).result[0]; - expect(firstResult).to.eql({ + expect(firstResult).to.deep.equal({ exportSpecifiers: ['[default]'], source: undefined, rootFileMap: [ @@ -68,7 +68,7 @@ describe('Analyzer "find-exports"', async () => { }); const secondEntry = getEntry(queryResults[0], 1); - expect(secondEntry.result[0]).to.eql({ + expect(secondEntry.result[0]).to.deep.equal({ exportSpecifiers: ['namedExport'], source: './file-with-default-export.js', localMap: [{ exported: 'namedExport', local: '[default]' }], @@ -128,7 +128,7 @@ describe('Analyzer "find-exports"', async () => { expect(firstEntry.result[0].exportSpecifiers.length).to.equal(1); expect(firstEntry.result[0].exportSpecifiers[0]).to.equal('[default]'); expect(firstEntry.result[0].source).to.equal('./styles.css'); - expect(firstEntry.result[0].rootFileMap[0]).to.eql({ + expect(firstEntry.result[0].rootFileMap[0]).to.deep.equal({ currentFileSpecifier: '[default]', rootFile: { file: './styles.css', @@ -147,7 +147,7 @@ describe('Analyzer "find-exports"', async () => { expect(firstEntry.result[0].exportSpecifiers.length).to.equal(1); expect(firstEntry.result[0].exportSpecifiers[0]).to.equal('[default]'); expect(firstEntry.result[0].source).to.equal('./styles.css'); - expect(firstEntry.result[0].rootFileMap[0]).to.eql({ + expect(firstEntry.result[0].rootFileMap[0]).to.deep.equal({ currentFileSpecifier: '[default]', rootFile: { file: './styles.css', @@ -161,7 +161,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); // This info will be relevant later to identify 'transitive' relations - expect(firstEntry.result[0].localMap).to.eql([ + expect(firstEntry.result[0].localMap).to.deep.equal([ { local: 'x', exported: 'y', @@ -174,7 +174,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); expect(firstEntry.result[0].exportSpecifiers.length).to.equal(2); - expect(firstEntry.result[0].exportSpecifiers).to.eql(['x', 'y']); + expect(firstEntry.result[0].exportSpecifiers).to.deep.equal(['x', 'y']); expect(firstEntry.result[0].source).to.equal('my/source'); }); @@ -190,7 +190,7 @@ describe('Analyzer "find-exports"', async () => { const secondEntry = getEntry(queryResults[0], 1); const thirdEntry = getEntry(queryResults[0], 2); - expect(firstEntry.result[0].rootFileMap).to.eql([ + expect(firstEntry.result[0].rootFileMap).to.deep.equal([ { currentFileSpecifier: 'MyComp', // this is the local name in the file we track from rootFile: { @@ -199,7 +199,7 @@ describe('Analyzer "find-exports"', async () => { }, }, ]); - expect(secondEntry.result[0].rootFileMap).to.eql([ + expect(secondEntry.result[0].rootFileMap).to.deep.equal([ { currentFileSpecifier: 'InBetweenComp', rootFile: { @@ -208,7 +208,7 @@ describe('Analyzer "find-exports"', async () => { }, }, ]); - expect(thirdEntry.result[0].rootFileMap).to.eql([ + expect(thirdEntry.result[0].rootFileMap).to.deep.equal([ { currentFileSpecifier: 'OriginalComp', rootFile: { @@ -236,7 +236,7 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result[0].rootFileMap).to.eql([ + expect(firstEntry.result[0].rootFileMap).to.deep.equal([ { currentFileSpecifier: '[default]', rootFile: { @@ -252,7 +252,7 @@ describe('Analyzer "find-exports"', async () => { mockProject([`// some comment here...`]); const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const firstEntry = getEntry(queryResults[0]); - expect(firstEntry.result[0].exportSpecifiers).to.eql(['[file]']); + expect(firstEntry.result[0].exportSpecifiers).to.deep.equal(['[file]']); expect(firstEntry.result[0].source).to.equal(undefined); }); }); @@ -322,10 +322,10 @@ describe('Analyzer "find-exports"', async () => { const queryResults = await providence(findExportsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; const [firstEntry, secondEntry, thirdEntry] = getEntries(queryResult); - expect(firstEntry.meta.categories).to.eql(['fooCategory']); + expect(firstEntry.meta.categories).to.deep.equal(['fooCategory']); // not mutually exclusive... - expect(secondEntry.meta.categories).to.eql(['barCategory', 'testCategory']); - expect(thirdEntry.meta.categories).to.eql([]); + expect(secondEntry.meta.categories).to.deep.equal(['barCategory', 'testCategory']); + expect(thirdEntry.meta.categories).to.deep.equal([]); }); }); }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/find-imports.test.js b/packages-node/providence-analytics/test-node/program/analyzers/find-imports.test.js index cc3477d7fb..fc1bb3a9ff 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/find-imports.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/find-imports.test.js @@ -25,7 +25,7 @@ describe('Analyzer "find-imports"', async () => { const queryResults = await providence(findImportsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; const firstEntry = getEntry(queryResult); - expect(firstEntry.result[0].importSpecifiers).to.eql(['[file]']); + expect(firstEntry.result[0].importSpecifiers).to.deep.equal(['[file]']); expect(firstEntry.result[0].source).to.equal('imported/source'); }); @@ -128,7 +128,7 @@ describe('Analyzer "find-imports"', async () => { const queryResult = queryResults[0]; const firstEntry = getEntry(queryResult); // This info will be relevant later to identify transitive relations - expect(firstEntry.result[0].localMap[0]).to.eql({ + expect(firstEntry.result[0].localMap[0]).to.deep.equal({ local: 'y', imported: 'x', }); @@ -332,7 +332,7 @@ describe('Analyzer "find-imports"', async () => { // Should be normalized source...? expect(queryResult.queryOutput[0].source).to.equal('@external/source.js'); expect(queryResult.queryOutput[0].id).to.equal('x::@external/source.js'); - expect(queryResult.queryOutput[0].dependents).to.eql([ + expect(queryResult.queryOutput[0].dependents).to.deep.equal([ 'fictional-project/file1.js', 'fictional-project/file2.js', ]); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/helpers/track-down-identifier.test.js b/packages-node/providence-analytics/test-node/program/analyzers/helpers/track-down-identifier.test.js index 2edfbe1ffa..5f5ecb5769 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/helpers/track-down-identifier.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/helpers/track-down-identifier.test.js @@ -1,13 +1,14 @@ import { expect } from 'chai'; import { it } from 'mocha'; + +import { setupAnalyzerTest } from '../../../../test-helpers/setup-analyzer-test.js'; +import { mockProject } from '../../../../test-helpers/mock-project-helpers.js'; import { swcTraverse } from '../../../../src/program/utils/swc-traverse.js'; +import { AstService } from '../../../../src/program/core/AstService.js'; import { trackDownIdentifier, trackDownIdentifierFromScope, -} from '../../../../src/program/analyzers/helpers/track-down-identifier.js'; -import { AstService } from '../../../../src/program/core/AstService.js'; -import { mockProject } from '../../../../test-helpers/mock-project-helpers.js'; -import { setupAnalyzerTest } from '../../../../test-helpers/setup-analyzer-test.js'; +} from '../../../../src/program/utils/track-down-identifier.js'; /** * @typedef {import('@babel/traverse').NodePath} NodePath @@ -39,7 +40,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/declarationOfMyClass.js', specifier: 'MyClass', }); @@ -71,7 +72,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/declarationOfMyClass.js', specifier: 'MyClass', }); @@ -105,7 +106,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/declarationOfMyClass.js', specifier: '[default]', }); @@ -131,7 +132,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: '@external/source', specifier: '[default]', }); @@ -162,7 +163,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './MyClass.js', specifier: '[default]', }); @@ -201,7 +202,7 @@ describe('trackdownIdentifier', () => { rootPath, projectName, ); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './MyClass.js', specifier: '[default]', }); @@ -232,7 +233,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/declarationOfMyNumber.js', specifier: 'myNumber', }); @@ -260,7 +261,7 @@ describe('trackdownIdentifier', () => { const rootPath = '/my/project'; const rootFile = await trackDownIdentifier(source, identifierName, currentFilePath, rootPath); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './packages/accordion/IngAccordionContent.js', specifier: 'IngAccordionContent', }); @@ -277,7 +278,7 @@ describe('trackdownIdentifier', () => { currentFilePath2, rootPath2, ); - expect(rootFile2).to.eql({ + expect(rootFile2).to.deep.equal({ file: './packages/accordion/IngAccordionInvokerButton.js', specifier: 'IngAccordionInvokerButton', }); @@ -321,7 +322,7 @@ describe('trackDownIdentifierFromScope', () => { fullCurrentFilePath, projectPath, ); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: '[current]', specifier: 'MyClass', }); @@ -372,7 +373,7 @@ describe('trackDownIdentifierFromScope', () => { fullCurrentFilePath, projectPath, ); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/declarationOfMyClass.js', specifier: 'MyClass', }); @@ -420,7 +421,7 @@ describe('trackDownIdentifierFromScope', () => { fullCurrentFilePath, projectPath, ); - expect(rootFile).to.eql({ + expect(rootFile).to.deep.equal({ file: './src/classes.js', specifier: 'El1', }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/match-imports.test.js b/packages-node/providence-analytics/test-node/program/analyzers/match-imports.test.js index 32488e99a1..672f93c5e0 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/match-imports.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/match-imports.test.js @@ -215,14 +215,14 @@ describe('Analyzer "match-imports"', async () => { ); const [name, filePath, project] = targetExportedId.split('::'); - expect(matchedEntry.exportSpecifier).to.eql({ + expect(matchedEntry.exportSpecifier).to.deep.equal({ name, filePath, project, id: targetExportedId, }); expect(matchedEntry.matchesPerProject[0].project).to.equal('importing-target-project'); - expect(matchedEntry.matchesPerProject[0].files).to.eql(importedByFiles); + expect(matchedEntry.matchesPerProject[0].files).to.deep.equal(importedByFiles); } describe('Extracting exports', () => { @@ -435,7 +435,7 @@ describe('Analyzer "match-imports"', async () => { }); const queryResult = queryResults[0]; expect(queryResult.queryOutput[0].exportSpecifier.name).to.equal('[default]'); - expect(queryResult.queryOutput[0].matchesPerProject).to.eql([ + expect(queryResult.queryOutput[0].matchesPerProject).to.deep.equal([ { files: ['./importDefault1.js', './importDefault2.js'], project: 'target' }, ]); }); @@ -476,11 +476,11 @@ describe('Analyzer "match-imports"', async () => { }); const queryResult = queryResults[0]; expect(queryResult.queryOutput[0].exportSpecifier.name).to.equal('[default]'); - expect(queryResult.queryOutput[0].matchesPerProject).to.eql([ + expect(queryResult.queryOutput[0].matchesPerProject).to.deep.equal([ { files: ['./deep-imports.js'], project: 'target' }, ]); expect(queryResult.queryOutput[1].exportSpecifier.name).to.equal('RefClass'); - expect(queryResult.queryOutput[1].matchesPerProject).to.eql([ + expect(queryResult.queryOutput[1].matchesPerProject).to.deep.equal([ { files: ['./deep-imports.js'], project: 'target' }, ]); }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/match-paths.test.js b/packages-node/providence-analytics/test-node/program/analyzers/match-paths.test.js index 1c4ce70810..a74db2aa3e 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/match-paths.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/match-paths.test.js @@ -188,7 +188,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(searchTargetProject, referenceProject); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput).to.eql(expectedMatches); + expect(queryResult.queryOutput).to.deep.equal(expectedMatches); }); describe('Features', () => { @@ -239,7 +239,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(targetProj, refProj); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].variable.paths[0]).to.deep.equal({ from: './index.js', to: './target-src/TargetClass.js', }); @@ -263,7 +263,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(targetProjWithMultipleExports, refProj); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].variable.paths[0]).to.deep.equal({ from: './index.js', to: './reexportFromRoot.js', }); @@ -296,7 +296,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(targetProjWithMultipleExportsAndMainEntry, refProj); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].variable.paths[0]).to.deep.equal({ from: './index.js', to: './target-src/mainEntry.js', }); @@ -308,8 +308,11 @@ describe('Analyzer "match-paths"', async () => { const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; const unprefixedPaths = queryResult.queryOutput[0].variable.paths[0]; - expect(unprefixedPaths).to.eql({ from: './index.js', to: './target-src/TargetClass.js' }); - expect(queryResult.queryOutput[0].variable.paths[1]).to.eql({ + expect(unprefixedPaths).to.deep.equal({ + from: './index.js', + to: './target-src/TargetClass.js', + }); + expect(queryResult.queryOutput[0].variable.paths[1]).to.deep.equal({ from: `${refProj.name}/${unprefixedPaths.from.slice(2)}`, to: unprefixedPaths.to, }); @@ -336,11 +339,11 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(targetProjMultipleTargetExtensions, refProj); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].variable.paths[0]).to.deep.equal({ from: './index.js', to: './target-src/TargetClass.js', }); - expect(queryResult.queryOutput[1].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[1].variable.paths[0]).to.deep.equal({ from: './index.js', to: './target-src/TargetSomething.js', }); @@ -410,7 +413,7 @@ describe('Analyzer "match-paths"', async () => { ); const queryResults = await providence(matchPathsQueryConfigFilter, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].variable.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].variable.paths[0]).to.deep.equal({ from: './index.js', to: './target-src/TargetClass.js', }); @@ -515,8 +518,8 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(searchTargetProject, referenceProject); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].tag).to.eql(expectedMatches[0]); - expect(queryResult.queryOutput[1].tag).to.eql(expectedMatches[1]); + expect(queryResult.queryOutput[0].tag).to.deep.equal(expectedMatches[0]); + expect(queryResult.queryOutput[1].tag).to.deep.equal(expectedMatches[1]); }); // TODO: test works in isolation, but some side effects occur when run in suite @@ -578,7 +581,7 @@ describe('Analyzer "match-paths"', async () => { providenceCfg, ); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].tag).to.eql({ + expect(queryResult.queryOutput[0].tag).to.deep.equal({ from: 'their-button', to: 'my-button', paths: [ @@ -607,7 +610,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(searchTargetProject, referenceProject); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].tag.paths[0]).to.eql({ + expect(queryResult.queryOutput[0].tag.paths[0]).to.deep.equal({ from: './customelementDefinitions.js', to: './extendedCustomelementDefinitions.js', }); @@ -617,7 +620,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(searchTargetProject, referenceProject); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput[0].tag.paths[1]).to.eql({ + expect(queryResult.queryOutput[0].tag.paths[1]).to.deep.equal({ from: 'reference-project/customelementDefinitions.js', to: './extendedCustomelementDefinitions.js', }); @@ -736,7 +739,7 @@ describe('Analyzer "match-paths"', async () => { mockTargetAndReferenceProject(searchTargetProjectFull, referenceProjectFull); const queryResults = await providence(matchPathsQueryConfig, _providenceCfg); const queryResult = queryResults[0]; - expect(queryResult.queryOutput).to.eql(expectedMatchesFull); + expect(queryResult.queryOutput).to.deep.equal(expectedMatchesFull); }); }); }); diff --git a/packages-node/providence-analytics/test-node/program/analyzers/match-subclasses.test.js b/packages-node/providence-analytics/test-node/program/analyzers/match-subclasses.test.js index eafae0b566..47b5ae3b60 100644 --- a/packages-node/providence-analytics/test-node/program/analyzers/match-subclasses.test.js +++ b/packages-node/providence-analytics/test-node/program/analyzers/match-subclasses.test.js @@ -332,14 +332,14 @@ describe('Analyzer "match-subclasses"', async () => { ); const [name, filePath, project] = targetExportedId.split('::'); - expect(matchedEntry.exportSpecifier).to.eql({ + expect(matchedEntry.exportSpecifier).to.deep.equal({ name, filePath, project, id: targetExportedId, }); expect(matchedEntry.matchesPerProject[0].project).to.equal('importing-target-project'); - expect(matchedEntry.matchesPerProject[0].files).to.eql(importedByFiles); + expect(matchedEntry.matchesPerProject[0].files).to.deep.equal(importedByFiles); } mockTargetAndReferenceProject(searchTargetProject, referenceProject); diff --git a/packages-node/providence-analytics/test-node/program/core/Analyzer.test.js b/packages-node/providence-analytics/test-node/program/core/Analyzer.test.js index 4d00d65802..a3f0369b76 100644 --- a/packages-node/providence-analytics/test-node/program/core/Analyzer.test.js +++ b/packages-node/providence-analytics/test-node/program/core/Analyzer.test.js @@ -81,19 +81,19 @@ describe('Analyzer', async () => { const queryResult = queryResults[0]; const { queryOutput, meta } = queryResult; - expect(queryOutput[0]).to.eql({ + expect(queryOutput[0]).to.deep.equal({ file: './test-file-0.js', meta: {}, result: [{ matched: 'entry' }], }); - expect(queryOutput[1]).to.eql({ + expect(queryOutput[1]).to.deep.equal({ file: './test-file2.js', meta: {}, result: [{ matched: 'entry' }], }); // Local machine info needs to be deleted, so that results are always 'machine agnostic' // (which is needed to share cached json results via git) - expect(meta).to.eql({ + expect(meta).to.deep.equal({ searchType: 'ast-analyzer', analyzerMeta: { name: 'my-analyzer', diff --git a/packages-node/providence-analytics/test-node/program/core/InputDataService.test.js b/packages-node/providence-analytics/test-node/program/core/InputDataService.test.js index dd06fbb5ee..7ecf0b3043 100644 --- a/packages-node/providence-analytics/test-node/program/core/InputDataService.test.js +++ b/packages-node/providence-analytics/test-node/program/core/InputDataService.test.js @@ -1,9 +1,7 @@ import { expect } from 'chai'; import { it } from 'mocha'; -import pathLib from 'path'; import { InputDataService } from '../../../src/program/core/InputDataService.js'; -import { memoizeConfig } from '../../../src/program/utils/memoize.js'; -import { getCurrentDir } from '../../../src/program/utils/get-current-dir.js'; +import { memoize } from '../../../src/program/utils/memoize.js'; import { restoreMockedProjects, mockProject, @@ -24,13 +22,13 @@ describe('InputDataService', () => { } beforeEach(() => { - memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); }); afterEach(() => { restoreOriginalInputDataPaths(); restoreMockedProjects(); - memoizeConfig.isCacheDisabled = false; + memoize.restoreCaching(); }); describe('Configuration', () => { @@ -50,36 +48,43 @@ describe('InputDataService', () => { }); describe('Methods', () => { - // TODO: mock file system... it('"createDataObject"', async () => { - /** @type {* & PathFromSystemRoot} */ - const projectPath = pathLib.resolve( - getCurrentDir(import.meta.url), - '../../../test-helpers/project-mocks/importing-target-project', - ); - - const inputDataPerProject = InputDataService.createDataObject([projectPath]); - expect(Object.keys(inputDataPerProject[0].project)).to.eql([ - 'path', - 'mainEntry', - 'name', - 'version', - 'commitHash', + mockProject({ + './package.json': JSON.stringify({ + name: 'fictional-project', + main: 'my/index.js', + version: '1.0.0', + }), + './src/file.js': '// bla', + './src/file2.js': '// bla', + }); + + const inputDataPerProject = await InputDataService.createDataObject(['/fictional/project']); + expect(inputDataPerProject).to.deep.equal([ + { + project: { + path: '/fictional/project', + mainEntry: './my/index.js', + name: 'fictional-project', + version: '1.0.0', + commitHash: '[not-a-git-root]', + }, + entries: [ + { + file: './src/file.js', + context: { + code: '// bla', + }, + }, + { + file: './src/file2.js', + context: { + code: '// bla', + }, + }, + ], + }, ]); - expect(inputDataPerProject[0].project.name).to.equal('importing-target-project'); - expect(inputDataPerProject[0].project.mainEntry).to.equal( - './target-src/match-imports/root-level-imports.js', - ); - expect( - inputDataPerProject[0].project.path.endsWith( - '/test-helpers/project-mocks/importing-target-project', - ), - ).to.equal(true); - expect(inputDataPerProject[0].entries.length).to.equal(6); - expect(inputDataPerProject[0].entries[0].context.code).to.not.be.undefined; - expect(inputDataPerProject[0].entries[0].file).to.equal( - './target-src/find-customelements/multiple.js', - ); }); it('"targetProjectPaths"', async () => {}); @@ -99,11 +104,11 @@ describe('InputDataService', () => { '{ "name": "@another-scope/another-package" }', }); - expect(InputDataService.getMonoRepoPackages('/fictional/project')).to.eql([ - { path: 'packages/pkg1/', name: 'package1' }, - { path: 'packages/pkg2/', name: 'pkg2' }, // fallback when no package.json - { path: 'packages/pkg3/', name: '@scope/pkg3' }, - { path: 'another-folder/another-package/', name: '@another-scope/another-package' }, + expect(await InputDataService.getMonoRepoPackages('/fictional/project')).to.deep.equal([ + { path: 'packages/pkg1', name: 'package1' }, + { path: 'packages/pkg2', name: 'pkg2' }, // fallback when no package.json + { path: 'packages/pkg3', name: '@scope/pkg3' }, + { path: 'another-folder/another-package', name: '@another-scope/another-package' }, ]); }); @@ -120,11 +125,11 @@ describe('InputDataService', () => { '{ "name": "@another-scope/another-package" }', }); - expect(InputDataService.getMonoRepoPackages('/fictional/project')).to.eql([ - { path: 'packages/pkg1/', name: 'package1' }, - { path: 'packages/pkg2/', name: 'pkg2' }, // fallback when no package.json - { path: 'packages/pkg3/', name: '@scope/pkg3' }, - { path: 'another-folder/another-package/', name: '@another-scope/another-package' }, + expect(await InputDataService.getMonoRepoPackages('/fictional/project')).to.deep.equal([ + { path: 'packages/pkg1', name: 'package1' }, + { path: 'packages/pkg2', name: 'pkg2' }, // fallback when no package.json + { path: 'packages/pkg3', name: '@scope/pkg3' }, + { path: 'another-folder/another-package', name: '@another-scope/another-package' }, ]); }); }); @@ -143,19 +148,21 @@ describe('InputDataService', () => { }); it('gathers a list of files', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput).to.eql([ + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput).to.deep.equal([ '/fictional/project/index.js', '/fictional/project/internal.js', + '/fictional/project/something.test.js', '/fictional/project/nested/index.js', '/fictional/project/nested/nested-two/index.test.js', - '/fictional/project/something.test.js', ]); }); it('allows passing a depth which stops at nested depth', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { depth: 0 }); - expect(globOutput).to.eql([ + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { + depth: 0, + }); + expect(globOutput).to.deep.equal([ '/fictional/project/index.js', '/fictional/project/internal.js', '/fictional/project/something.test.js', @@ -163,26 +170,26 @@ describe('InputDataService', () => { }); it('allows passing extensions', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { extensions: ['.html', '.js'], }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/index.html', '/fictional/project/index.js', '/fictional/project/internal.js', - '/fictional/project/nested/index.js', - '/fictional/project/nested/nested-two/index.test.js', '/fictional/project/something.test.html', '/fictional/project/something.test.js', + '/fictional/project/nested/index.js', + '/fictional/project/nested/nested-two/index.test.js', ]); }); it('allows passing excluded folders', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { extensions: ['.html', '.js'], allowlist: ['!nested/**'], }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/index.html', '/fictional/project/index.js', '/fictional/project/internal.js', @@ -192,25 +199,25 @@ describe('InputDataService', () => { }); it('allows passing excluded files', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { extensions: ['.html', '.js'], allowlist: ['!index.js', '!**/*/index.js'], }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/index.html', '/fictional/project/internal.js', - '/fictional/project/nested/nested-two/index.test.js', '/fictional/project/something.test.html', '/fictional/project/something.test.js', + '/fictional/project/nested/nested-two/index.test.js', ]); }); it('allows passing exclude globs', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { extensions: ['.html', '.js'], allowlist: ['!**/*.test.{html,js}'], }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/index.html', '/fictional/project/index.js', '/fictional/project/internal.js', @@ -219,11 +226,11 @@ describe('InputDataService', () => { }); it('does not support non globs in "allowlist"', async () => { - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { extensions: ['.html', '.js'], allowlist: ['nested'], }); - expect(globOutput).to.eql([]); + expect(globOutput).to.deep.equal([]); }); it('omits node_modules and bower_components at root level by default', async () => { @@ -235,8 +242,8 @@ describe('InputDataService', () => { './nested/bower_components/pkg/y.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput).to.eql([ + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput).to.deep.equal([ '/fictional/project/index.js', '/fictional/project/nested/bower_components/pkg/y.js', '/fictional/project/nested/node_modules/pkg/x.js', @@ -249,12 +256,12 @@ describe('InputDataService', () => { './omitted/file.js': '', './added/file.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlist: ['*', 'added/**/*'], }); - expect(globOutput).to.eql([ - '/fictional/project/added/file.js', + expect(globOutput).to.deep.equal([ '/fictional/project/root-lvl.js', + '/fictional/project/added/file.js', ]); }); @@ -265,10 +272,10 @@ describe('InputDataService', () => { './deeper/glob/file.js': '', './deeper/file.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlist: ['deeper/**/*'], }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/deeper/file.js', '/fictional/project/deeper/glob/file.js', '/fictional/project/deeper/glob/structure/file.js', @@ -285,8 +292,8 @@ describe('InputDataService', () => { './some-other-pkg/commitlint.conf.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput).to.eql(['/fictional/project/index.js']); + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput).to.deep.equal(['/fictional/project/index.js']); }); it('omits hidden files by default', async () => { @@ -295,8 +302,8 @@ describe('InputDataService', () => { './index.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput).to.eql(['/fictional/project/index.js']); + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput).to.deep.equal(['/fictional/project/index.js']); }); describe('AllowlistMode', () => { @@ -308,8 +315,8 @@ describe('InputDataService', () => { }), '.gitignore': '/dist', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput).to.eql([ + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput).to.deep.equal([ // This means allowlistMode is 'git' ]); @@ -322,8 +329,8 @@ describe('InputDataService', () => { files: ['dist'], }), }); - const globOutput2 = InputDataService.gatherFilesFromDir('/fictional/project'); - expect(globOutput2).to.eql([ + const globOutput2 = await InputDataService.gatherFilesFromDir('/fictional/project'); + expect(globOutput2).to.deep.equal([ // This means allowlistMode is 'npm' '/fictional/project/dist/bundle.js', ]); @@ -335,10 +342,10 @@ describe('InputDataService', () => { projectPath: '/inside/proj/with/node_modules/detect-as-npm', }, ); - const globOutput3 = InputDataService.gatherFilesFromDir( + const globOutput3 = await InputDataService.gatherFilesFromDir( '/inside/proj/with/node_modules/detect-as-npm', ); - expect(globOutput3).to.eql([ + expect(globOutput3).to.deep.equal([ // This means allowlistMode is 'npm' (even though we found .gitignore) '/inside/proj/with/node_modules/detect-as-npm/dist/bundle.js', ]); @@ -350,10 +357,10 @@ describe('InputDataService', () => { projectPath: '/inside/proj/with/node_modules/@scoped/detect-as-npm', }, ); - const globOutput4 = InputDataService.gatherFilesFromDir( + const globOutput4 = await InputDataService.gatherFilesFromDir( '/inside/proj/with/node_modules/@scoped/detect-as-npm', ); - expect(globOutput4).to.eql([ + expect(globOutput4).to.deep.equal([ // This means allowlistMode is 'npm' (even though we found .gitignore) '/inside/proj/with/node_modules/@scoped/detect-as-npm/dist/bundle.js', ]); @@ -369,12 +376,12 @@ describe('InputDataService', () => { files: ['*.add.js', 'docs', 'src'], }), }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlistMode: 'npm', }); - expect(globOutput).to.eql([ - '/fictional/project/docs/x.js', + expect(globOutput).to.deep.equal([ '/fictional/project/file.add.js', + '/fictional/project/docs/x.js', '/fictional/project/src/y.js', ]); }); @@ -395,10 +402,10 @@ build/ !keep/ `, }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlistMode: 'git', }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/keep/it.js', '/fictional/project/shall/pass.js', ]); @@ -415,10 +422,10 @@ build/ /dist `, }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlistMode: 'all', }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/dist/bundle.js', '/fictional/project/src/file.js', ]); @@ -434,10 +441,10 @@ build/ }, }), }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlistMode: 'export-map', }); - expect(globOutput).to.eql(['./internal/file.js']); + expect(globOutput).to.deep.equal(['./internal/file.js']); }); }); @@ -451,11 +458,11 @@ build/ files: ['dist'], // This will not be considered by default, unless explicitly configured in allowlist }), }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlist: ['dist/**'], allowlistMode: 'git', // for clarity, (would also be autodetected if not provided) }); - expect(globOutput).to.eql(['/fictional/project/dist/bundle.js']); + expect(globOutput).to.deep.equal(['/fictional/project/dist/bundle.js']); }); describe('Default allowlist', () => { @@ -466,10 +473,10 @@ build/ './added.js': '', './omit.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlist: ['added*'], }); - expect(globOutput).to.eql(['/fictional/project/added.js']); + expect(globOutput).to.deep.equal(['/fictional/project/added.js']); }); it('allows to omit default config filter', async () => { @@ -481,16 +488,16 @@ build/ './added.js': '', './omit.js': '', }); - const globOutput = InputDataService.gatherFilesFromDir('/fictional/project', { + const globOutput = await InputDataService.gatherFilesFromDir('/fictional/project', { allowlist: ['!omit*'], omitDefaultAllowlist: true, }); - expect(globOutput).to.eql([ + expect(globOutput).to.deep.equal([ '/fictional/project/abc.config.js', '/fictional/project/added.js', - '/fictional/project/bower_components/omitted/file.js', - '/fictional/project/node_modules/root-lvl.js', '/fictional/project/xyz.conf.js', + '/fictional/project/node_modules/root-lvl.js', + '/fictional/project/bower_components/omitted/file.js', ]); }); }); @@ -514,7 +521,7 @@ build/ packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-path.js', exposed: './exposed-path.js' }, { internal: './internal/folder-a/path.js', exposed: './external/folder-a/path.js' }, { internal: './internal/folder-b/path.js', exposed: './external/folder-b/path.js' }, @@ -532,7 +539,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-path.js', exposed: './exposed-path.js' }, ]); }); @@ -550,7 +557,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-exports-folder/file-a.js', exposed: './file-a.js' }, { internal: './internal-exports-folder/file-b.js', exposed: './file-b.js' }, { internal: './internal-exports-folder/file-c.js', exposed: './file-c.js' }, @@ -569,12 +576,12 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ + { internal: './internal-folder/file-a.js', exposed: './exposed-folder/file-a.js' }, { internal: './internal-folder/another-folder/file-b.js', exposed: './exposed-folder/another-folder/file-b.js', }, - { internal: './internal-folder/file-a.js', exposed: './exposed-folder/file-a.js' }, ]); }); @@ -591,9 +598,9 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ - { internal: './folder-a/file.js', exposed: './exposed-folder/folder-a/file.js' }, - { internal: './folder-b/file.js', exposed: './exposed-folder/folder-b/file.js' }, + expect(exportMapPaths).to.deep.equal([ + { exposed: './exposed-folder/folder-a/file.js', internal: './folder-a/file.js' }, + { exposed: './exposed-folder/folder-b/file.js', internal: './folder-b/file.js' }, ]); }); @@ -611,7 +618,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-folder/file-a.js', exposed: './exposed-folder/file-a.js' }, ]); }); @@ -631,7 +638,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './esm-exports/file.js', exposed: './file.js' }, ]); }); @@ -650,7 +657,7 @@ build/ packageRootPath: '/my/proj', nodeResolveMode: 'require', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './cjs-exports/file.cjs', exposed: './file.cjs' }, ]); }); @@ -669,7 +676,7 @@ build/ packageRootPath: '/my/proj', nodeResolveMode: 'develop', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './develop-exports/file.js', exposed: './file.js' }, ]); }); @@ -693,7 +700,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './index.js', exposed: '.' }, { internal: './file.js', exposed: './exposed-file.js' }, ]); @@ -714,7 +721,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-folder/file-a.js', exposed: './exposed-folder/file-a.js' }, { internal: './internal-folder/file-b.js', exposed: './exposed-folder/file-b.js' }, ]); @@ -733,7 +740,7 @@ build/ const exportMapPaths = await InputDataService.getPathsFromExportMap(exports, { packageRootPath: '/my/proj', }); - expect(exportMapPaths).to.eql([ + expect(exportMapPaths).to.deep.equal([ { internal: './internal-folder/file-a.js', exposed: './exposed-folder/file-a.js' }, { internal: './internal-folder/file-b.js', exposed: './exposed-folder/file-b.js' }, ]); diff --git a/packages-node/providence-analytics/test-node/program/core/QueryService.test.js b/packages-node/providence-analytics/test-node/program/core/QueryService.test.js index 5ac660d608..6d12ea0122 100644 --- a/packages-node/providence-analytics/test-node/program/core/QueryService.test.js +++ b/packages-node/providence-analytics/test-node/program/core/QueryService.test.js @@ -1,156 +1,18 @@ import { expect } from 'chai'; import { it } from 'mocha'; -import { QueryService } from '../../../src/program/core/QueryService.js'; + import { DummyAnalyzer } from '../../../test-helpers/templates/DummyAnalyzer.js'; import FindImportsAnalyzer from '../../../src/program/analyzers/find-imports.js'; +import { QueryService } from '../../../src/program/core/QueryService.js'; /** - * @typedef {import('../../../types/index.js').Analyzer} Analyzer * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').Analyzer} Analyzer */ describe('QueryService', () => { describe('Methods', () => { describe('Retrieving QueryConfig', () => { - it('"getQueryConfigFromRegexSearchString"', async () => { - const result = QueryService.getQueryConfigFromRegexSearchString('x'); - expect(result).to.eql({ type: 'search', regexString: 'x' }); - - expect(() => { - // @ts-expect-error - QueryService.getQueryConfigFromRegexSearchString(); - }).to.throw('[QueryService.getQueryConfigFromRegexSearchString]: provide a string'); - }); - - describe('"getQueryConfigFromFeatureString"', () => { - it('with tag, attr-key and attr-value', async () => { - const result = QueryService.getQueryConfigFromFeatureString('tg-icon[size=xs]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'size', - value: 'xs', - tag: 'tg-icon', - isAttribute: true, - usesValueContains: false, - usesValuePartialMatch: false, - usesTagPartialMatch: false, - }, - }); - }); - - it('with only tag', async () => { - const result = QueryService.getQueryConfigFromFeatureString('tg-icon'); - expect(result).to.eql({ - type: 'feature', - feature: { - tag: 'tg-icon', - usesTagPartialMatch: false, - }, - }); - }); - - it('with only attr-key', async () => { - const result = QueryService.getQueryConfigFromFeatureString('[attr]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'attr', - value: undefined, - tag: '', - isAttribute: true, - usesValueContains: false, - usesValuePartialMatch: false, - usesTagPartialMatch: false, - }, - }); - }); - - it('with only attr-key and attr-value', async () => { - const result = QueryService.getQueryConfigFromFeatureString('[attr=x]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'attr', - value: 'x', - tag: '', - isAttribute: true, - usesValueContains: false, - usesValuePartialMatch: false, - usesTagPartialMatch: false, - }, - }); - }); - - describe('With partial value', async () => { - it('with tag, attr-key and attr-value', async () => { - const result = QueryService.getQueryConfigFromFeatureString('tg-icon*[size*=xs*]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'size', - value: 'xs', - tag: 'tg-icon', - isAttribute: true, - usesValueContains: true, - usesValuePartialMatch: true, - usesTagPartialMatch: true, - }, - }); - }); - - it('with only tag', async () => { - const result = QueryService.getQueryConfigFromFeatureString('tg-icon*'); - expect(result).to.eql({ - type: 'feature', - feature: { - tag: 'tg-icon', - usesTagPartialMatch: true, - }, - }); - }); - - it('with only attr-key', async () => { - const result = QueryService.getQueryConfigFromFeatureString('[attr*]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'attr', - value: undefined, - tag: '', - isAttribute: true, - usesValueContains: true, - usesValuePartialMatch: false, - usesTagPartialMatch: false, - }, - }); - }); - - it('with only attr-key and attr-value', async () => { - const result = QueryService.getQueryConfigFromFeatureString('[attr*=x*]'); - expect(result).to.eql({ - type: 'feature', - feature: { - name: 'attr', - value: 'x', - tag: '', - isAttribute: true, - usesValueContains: true, - usesValuePartialMatch: true, - usesTagPartialMatch: false, - }, - }); - }); - }); - - it('throws when no string provided', async () => { - expect(() => { - // @ts-ignore - QueryService.getQueryConfigFromFeatureString(); - }).to.throw('[QueryService.getQueryConfigFromFeatureString]: provide a string'); - }); - }); - describe('"getQueryConfigFromAnalyzer"', () => { const myAnalyzerCfg = { targetProjectPath: /** @type {PathFromSystemRoot} */ ('/my/path') }; it('accepts a constructor as first argument', async () => { @@ -158,7 +20,7 @@ describe('QueryService', () => { 'find-imports', myAnalyzerCfg, ); - expect(result).to.eql({ + expect(result).to.deep.equal({ type: 'ast-analyzer', analyzerName: 'find-imports', analyzerConfig: myAnalyzerCfg, @@ -171,7 +33,7 @@ describe('QueryService', () => { /** @type {* & Analyzer} */ (DummyAnalyzer), myAnalyzerCfg, ); - expect(result).to.eql({ + expect(result).to.deep.equal({ type: 'ast-analyzer', analyzerName: 'find-dummy-analyzer', analyzerConfig: myAnalyzerCfg, @@ -186,7 +48,7 @@ describe('QueryService', () => { // it('with FeatureConfig', async () => { // const featureCfg = QueryService.getQueryConfigFromFeatureString('tg-icon[size=xs]'); // const result = QueryService.grepSearch(featureCfg); - // expect(result).to.eql({ + // expect(result).to.deep.equal({ // type: 'ast-analyzer', // analyzerName: 'find-imports', // analyzerConfig: { x: 'y' }, diff --git a/packages-node/providence-analytics/test-node/program/utils/get-source-code-fragment-of-declaration.test.js b/packages-node/providence-analytics/test-node/program/utils/get-source-code-fragment-of-declaration.test.js index 7aa38d3e05..01405bc298 100644 --- a/packages-node/providence-analytics/test-node/program/utils/get-source-code-fragment-of-declaration.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/get-source-code-fragment-of-declaration.test.js @@ -1,16 +1,17 @@ import { expect } from 'chai'; import { it } from 'mocha'; -import { mock } from '../../../test-helpers/mock-project-helpers.js'; + import { getSourceCodeFragmentOfDeclaration } from '../../../src/program/utils/index.js'; -import { memoizeConfig } from '../../../src/program/utils/memoize.js'; +import { mock } from '../../../test-helpers/mock-project-helpers.js'; +import { memoize } from '../../../src/program/utils/memoize.js'; describe('getSourceCodeFragmentOfDeclaration', () => { - const initialMemoizeSsCacheDisabled = memoizeConfig.isCacheDisabled; + const initialMemoizeCacheEnabled = memoize.isCacheEnabled; before(() => { - memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); }); after(() => { - memoizeConfig.isCacheDisabled = initialMemoizeSsCacheDisabled; + memoize.restoreCaching(initialMemoizeCacheEnabled); }); describe('Named specifiers', () => { diff --git a/packages-node/providence-analytics/test-node/program/utils/memoize.test.js b/packages-node/providence-analytics/test-node/program/utils/memoize.test.js index 165aebd072..1e70c1fa02 100644 --- a/packages-node/providence-analytics/test-node/program/utils/memoize.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/memoize.test.js @@ -1,17 +1,11 @@ import { expect } from 'chai'; import { it } from 'mocha'; -import { memoize, memoizeConfig } from '../../../src/program/utils/memoize.js'; - -const cacheDisabledInitialValue = memoizeConfig.isCacheDisabled; +import { memoize } from '../../../src/program/utils/memoize.js'; describe('Memoize', () => { - beforeEach(() => { - // This is important, since memoization only works - memoizeConfig.isCacheDisabled = false; - }); - afterEach(() => { - memoizeConfig.isCacheDisabled = cacheDisabledInitialValue; - }); + // This is important, since memoization only works when cache is disabled. + // We want to prevent that another test unintentionally disabled caching. + memoize.restoreCaching(); describe('With primitives', () => { describe('Numbers', () => { @@ -136,15 +130,15 @@ describe('Memoize', () => { const sumMemoized = memoize(sum); // Put in cache for args combination - expect(sumMemoized([1], [2])).to.eql([1, 2]); + expect(sumMemoized([1], [2])).to.deep.equal([1, 2]); expect(sumCalled).to.equal(1); // Return from cache - expect(sumMemoized([1], [2])).to.eql([1, 2]); + expect(sumMemoized([1], [2])).to.deep.equal([1, 2]); expect(sumCalled).to.equal(1); // Put in cache for args combination - expect(sumMemoized([1], [3])).to.eql([1, 3]); + expect(sumMemoized([1], [3])).to.deep.equal([1, 3]); expect(sumCalled).to.equal(2); }); @@ -162,17 +156,17 @@ describe('Memoize', () => { } const sum2Memoized = memoize(sum2); - expect(sumMemoized([1], [2])).to.eql([1, 2]); + expect(sumMemoized([1], [2])).to.deep.equal([1, 2]); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(0); - expect(sum2Memoized([1], [2])).to.eql([1, 2]); + expect(sum2Memoized([1], [2])).to.deep.equal([1, 2]); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(1); // Both cached - expect(sumMemoized([1], [2])).to.eql([1, 2]); - expect(sum2Memoized([1], [2])).to.eql([1, 2]); + expect(sumMemoized([1], [2])).to.deep.equal([1, 2]); + expect(sum2Memoized([1], [2])).to.deep.equal([1, 2]); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(1); }); @@ -188,15 +182,15 @@ describe('Memoize', () => { const sumMemoized = memoize(sum, { serializeObjects: true }); // Put in cache for args combination - expect(sumMemoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); + expect(sumMemoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); // Return from cache - expect(sumMemoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); + expect(sumMemoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); // Put in cache for args combination - expect(sumMemoized({ x: 1 }, { y: 3 })).to.eql({ x: 1, y: 3 }); + expect(sumMemoized({ x: 1 }, { y: 3 })).to.deep.equal({ x: 1, y: 3 }); expect(sumCalled).to.equal(2); }); @@ -214,17 +208,17 @@ describe('Memoize', () => { } const sum2Memoized = memoize(sum2, { serializeObjects: true }); - expect(sumMemoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); + expect(sumMemoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(0); - expect(sum2Memoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); + expect(sum2Memoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(1); // Both cached - expect(sumMemoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); - expect(sum2Memoized({ x: 1 }, { y: 2 })).to.eql({ x: 1, y: 2 }); + expect(sumMemoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); + expect(sum2Memoized({ x: 1 }, { y: 2 })).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); expect(sum2Called).to.equal(1); }); @@ -242,13 +236,13 @@ describe('Memoize', () => { // Put in cache for args combination const result = sumMemoized({ x: 1 }, { y: 2 }); - expect(result).to.eql({ x: 1, y: 2 }); + expect(result).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); // Return from cache const resultCached = sumMemoized({ x: 1 }, { y: 2 }); expect(resultCached).to.equal(result); - expect(resultCached).to.eql({ x: 1, y: 2 }); + expect(resultCached).to.deep.equal({ x: 1, y: 2 }); expect(sumCalled).to.equal(1); // Outside world can edit returned reference diff --git a/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js b/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js new file mode 100644 index 0000000000..2d8159163a --- /dev/null +++ b/packages-node/providence-analytics/test-node/program/utils/optimised-glob.test.js @@ -0,0 +1,279 @@ +import path from 'path'; + +import { globby } from 'globby'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { expect } from 'chai'; +// eslint-disable-next-line import/no-extraneous-dependencies +import mockFs from 'mock-fs'; + +import { optimisedGlob } from '../../../src/program/utils/optimised-glob.js'; + +const measurePerf = process.argv.includes('--measure-perf'); + +/** + * @param {*} patterns + * @param {*} options + * @returns {string[]} + */ +async function runOptimisedGlobAndCheckGlobbyParity(patterns, options) { + performance.mark('start-optimisedGlob'); + const optimisedGlobResult = await optimisedGlob(patterns, options); + performance.mark('end-optimisedGlob'); + + performance.mark('start-globby'); + const globbyResult = await globby(patterns, options); + performance.mark('end-globby'); + + if (measurePerf) { + const optimisedGlobPerf = performance.measure( + 'optimisedGlob', + 'start-optimisedGlob', + 'end-optimisedGlob', + ); + const globbyPerf = performance.measure('globby', 'start-globby', 'end-globby'); + console.debug( + `optimisedGlob was ${ + globbyPerf.duration - optimisedGlobPerf.duration + }ms quicker than globby.`, + ); + } + + expect(optimisedGlobResult).to.deep.equal(globbyResult); + + return optimisedGlobResult; +} + +describe('optimisedGlob', () => { + const testCfg = { + cwd: '/fakeFs', + }; + + beforeEach(() => { + const fakeFs = { + '/fakeFs/my/folder/some/file.js': 'content', + '/fakeFs/my/folder/lvl1/some/file.js': 'content', + '/fakeFs/my/folder/lvl1/lvl2/some/file.js': 'content', + '/fakeFs/my/folder/lvl1/lvl2/lvl3/some/file.js': 'content', + '/fakeFs/my/folder/some/file.d.ts': 'content', + '/fakeFs/my/folder/lvl1/some/file.d.ts': 'content', + '/fakeFs/my/folder/lvl1/lvl2/some/file.d.ts': 'content', + '/fakeFs/my/folder/lvl1/lvl2/lvl3/some/file.d.ts': 'content', + + '/fakeFs/my/folder/some/anotherFile.js': 'content', + '/fakeFs/my/folder/lvl1/some/anotherFile.js': 'content', + '/fakeFs/my/folder/lvl1/lvl2/some/anotherFile.js': 'content', + '/fakeFs/my/folder/lvl1/lvl2/lvl3/some/anotherFile.js': 'content', + '/fakeFs/my/folder/some/anotherFile.d.ts': 'content', + '/fakeFs/my/folder/lvl1/some/anotherFile.d.ts': 'content', + '/fakeFs/my/folder/lvl1/lvl2/some/anotherFile.d.ts': 'content', + '/fakeFs/my/folder/lvl1/lvl2/lvl3/some/anotherFile.d.ts': 'content', + + '/fakeFs/my/.hiddenFile.js': 'content', + }; + mockFs(fakeFs); + }); + + afterEach(() => { + mockFs.restore(); + }); + + describe('Star patterns', () => { + it('supports double asterisk like "my/folder/**/some/file.js" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity( + 'my/folder/**/some/file.js', + testCfg, + ); + + expect(files).to.deep.equal([ + 'my/folder/some/file.js', + 'my/folder/lvl1/some/file.js', + 'my/folder/lvl1/lvl2/some/file.js', + 'my/folder/lvl1/lvl2/lvl3/some/file.js', + ]); + }); + + it('supports single asterisk like "my/folder/*/some/file.js" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/*/some/file.js', testCfg); + + expect(files).to.deep.equal(['my/folder/lvl1/some/file.js']); + }); + + it('supports filenames like "my/folder/lvl1/some/*il*.js" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity( + 'my/folder/lvl1/some/*il*.js', + testCfg, + ); + + expect(files).to.deep.equal([ + 'my/folder/lvl1/some/anotherFile.js', + 'my/folder/lvl1/some/file.js', + ]); + }); + + it('supports globs starting with a star like "**/some/file.js" ', async () => { + const filesDoubleStar = await runOptimisedGlobAndCheckGlobbyParity( + '**/some/file.js', + testCfg, + ); + + expect(filesDoubleStar).to.deep.equal([ + 'my/folder/some/file.js', + 'my/folder/lvl1/some/file.js', + 'my/folder/lvl1/lvl2/some/file.js', + 'my/folder/lvl1/lvl2/lvl3/some/file.js', + ]); + + const filesSingleStar = await runOptimisedGlobAndCheckGlobbyParity( + '*/folder/some/file.js', + testCfg, + ); + + expect(filesSingleStar).to.deep.equal(['my/folder/some/file.js']); + }); + + it('gives empty output when location does not exist" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/**/some/file.js', { + ...testCfg, + cwd: '/nonExisting/path', // this will not exist + }); + + expect(files).to.deep.equal([]); + }); + + it('omits hidden files" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('*/*/*/*', testCfg); + + expect(files).to.deep.equal([ + 'my/folder/some/anotherFile.d.ts', + 'my/folder/some/anotherFile.js', + 'my/folder/some/file.d.ts', + 'my/folder/some/file.js', + ]); + }); + }); + + describe('Accolade patterns', () => { + it('works with filenames like "my/folder/*/some/file.{js,d.ts}" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity( + 'my/folder/*/some/file.{js,d.ts}', + testCfg, + ); + + expect(files).to.deep.equal(['my/folder/lvl1/some/file.d.ts', 'my/folder/lvl1/some/file.js']); + }); + }); + + describe('Multiple globs', () => { + it('accepts an array of globs, like ["my/folder/*/some/file.js", "my/folder/lvl1/*/some/file.js"]', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity( + ['my/folder/*/some/file.js', 'my/folder/lvl1/*/some/file.js'], + testCfg, + ); + + expect(files).to.deep.equal([ + 'my/folder/lvl1/some/file.js', + 'my/folder/lvl1/lvl2/some/file.js', + ]); + }); + + it('accepts negative globs, like ["my/folder/**/some/file.js", "!my/folder/*/some/file.js"]', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity( + ['my/folder/**/some/file.js', '!my/folder/*/some/file.js'], + testCfg, + ); + + expect(files).to.deep.equal([ + 'my/folder/some/file.js', + 'my/folder/lvl1/lvl2/some/file.js', + 'my/folder/lvl1/lvl2/lvl3/some/file.js', + ]); + }); + }); + + describe('Options', () => { + it('"absolute" returns full system paths', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/*/some/file.{js,d.ts}', { + ...testCfg, + absolute: true, + }); + + if (process.platform === 'win32') { + const driveLetter = path.win32.resolve(testCfg.cwd).slice(0, 1).toUpperCase(); + expect(files).to.deep.equal([ + `${driveLetter}:/fakeFs/my/folder/lvl1/some/file.d.ts`, + `${driveLetter}:/fakeFs/my/folder/lvl1/some/file.js`, + ]); + } else { + expect(files).to.deep.equal([ + '/fakeFs/my/folder/lvl1/some/file.d.ts', + '/fakeFs/my/folder/lvl1/some/file.js', + ]); + } + }); + + it('"cwd" changes relative starting point of glob', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('folder/*/some/file.{js,d.ts}', { + ...testCfg, + cwd: '/fakeFs/my', + }); + + expect(files).to.deep.equal(['folder/lvl1/some/file.d.ts', 'folder/lvl1/some/file.js']); + }); + + it('"onlyDirectories" returns only directories/folders', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/*/some', { + ...testCfg, + onlyDirectories: true, + }); + + expect(files).to.deep.equal(['my/folder/lvl1/some']); + }); + + it('"onlyFiles" returns only files', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/*/some', { + ...testCfg, + onlyFiles: true, + }); + + expect(files).to.deep.equal([]); + }); + + it('"deep" limits the level of results', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('my/folder/**', { + ...testCfg, + onlyDirectories: true, + deep: 1, + }); + expect(files).to.deep.equal(['my/folder/lvl1', 'my/folder/some']); + + const files2 = await runOptimisedGlobAndCheckGlobbyParity('my/folder/**', { + ...testCfg, + onlyDirectories: true, + deep: 2, + }); + + expect(files2).to.deep.equal([ + 'my/folder/lvl1', + 'my/folder/some', + 'my/folder/lvl1/lvl2', + 'my/folder/lvl1/some', + ]); + }); + + it('"dot" allows hidden files" ', async () => { + const files = await runOptimisedGlobAndCheckGlobbyParity('*/*', { ...testCfg, dot: true }); + + expect(files).to.deep.equal(['my/.hiddenFile.js']); + }); + + it.skip('"suppressErrors" throws errors when paths do not exist', async () => { + expect(async () => + optimisedGlob('my/folder/**/some/file.js', { + ...testCfg, + cwd: '/nonExisting/path', // this will not exist + suppressErrors: false, + }), + ).to.throw(); + }); + }); +}); diff --git a/packages-node/providence-analytics/test-node/program/utils/resolve-import-path.test.js b/packages-node/providence-analytics/test-node/program/utils/resolve-import-path.test.js index 404e58bac4..11f9464999 100644 --- a/packages-node/providence-analytics/test-node/program/utils/resolve-import-path.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/resolve-import-path.test.js @@ -6,14 +6,14 @@ import { mockTargetAndReferenceProject, } from '../../../test-helpers/mock-project-helpers.js'; import { resolveImportPath } from '../../../src/program/utils/resolve-import-path.js'; -import { memoizeConfig } from '../../../src/program/utils/memoize.js'; +import { memoize } from '../../../src/program/utils/memoize.js'; describe('resolveImportPath', () => { beforeEach(() => { - memoizeConfig.isCacheDisabled = true; + memoize.disableCaching(); }); afterEach(() => { - memoizeConfig.isCacheDisabled = false; + memoize.restoreCaching(); restoreMockedProjects(); }); diff --git a/packages-node/providence-analytics/test-node/program/utils/swc-traverse.test.js b/packages-node/providence-analytics/test-node/program/utils/swc-traverse.test.js index 9143bf8914..566a894211 100644 --- a/packages-node/providence-analytics/test-node/program/utils/swc-traverse.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/swc-traverse.test.js @@ -60,7 +60,7 @@ describe('swcTraverse', () => { }; swcTraverse(swcAst, visitor); - expect(foundTypes).to.eql([ + expect(foundTypes).to.deep.equal([ 'Module', 'ImportDeclaration', 'ImportDefaultSpecifier', @@ -166,7 +166,7 @@ describe('swcTraverse', () => { expect(declaratorPaths[2].scope.id).to.equal(2); expect(declaratorPaths[0].node.id.value).to.equal('globalScope'); - expect(Object.keys(declaratorPaths[0].scope.bindings)).to.eql([ + expect(Object.keys(declaratorPaths[0].scope.bindings)).to.deep.equal([ 'globalScope', 'alsoGlobalScope', ]); @@ -180,8 +180,8 @@ describe('swcTraverse', () => { declaratorPaths[3].node, ); - expect(Object.keys(declaratorPaths[1].scope.bindings)).to.eql(['middleScope']); - expect(Object.keys(declaratorPaths[2].scope.bindings)).to.eql(['deepestScope']); + expect(Object.keys(declaratorPaths[1].scope.bindings)).to.deep.equal(['middleScope']); + expect(Object.keys(declaratorPaths[2].scope.bindings)).to.deep.equal(['deepestScope']); }); it('creates scopes for nested FunctionDeclaration', async () => { @@ -336,7 +336,7 @@ describe('swcTraverse', () => { }; swcTraverse(swcAst, visitor, { needsAdvancedPaths: true }); - expect(Object.keys(declaratorPaths[0].scope.bindings)).to.eql([ + expect(Object.keys(declaratorPaths[0].scope.bindings)).to.deep.equal([ 'globalScope', 'alsoGlobalScope', ]); @@ -370,12 +370,12 @@ describe('swcTraverse', () => { }; swcTraverse(swcAst, visitor, { needsAdvancedPaths: true }); - expect(Object.keys(declaratorPaths[0].scope.bindings)).to.eql([ + expect(Object.keys(declaratorPaths[0].scope.bindings)).to.deep.equal([ 'globalScope', 'stillGlobalScope', ]); - expect(Object.keys(declaratorPaths[1].scope.bindings)).to.eql(['middleScope']); - expect(Object.keys(declaratorPaths[2].scope.bindings)).to.eql(['insideFnScope']); + expect(Object.keys(declaratorPaths[1].scope.bindings)).to.deep.equal(['middleScope']); + expect(Object.keys(declaratorPaths[2].scope.bindings)).to.deep.equal(['insideFnScope']); }); }); @@ -420,8 +420,10 @@ describe('swcTraverse', () => { expect(babelScopes.length).to.equal(swcScopes.length); for (let i = 0; i < babelScopes.length; i += 1) { expect(babelScopes[i].uid - babelRootScopeIdOffset).to.equal(swcScopes[i].id); - expect(Object.keys(babelScopes[i].bindings)).to.eql(Object.keys(swcScopes[i].bindings)); - // expect(babelScopes[i].references).to.eql(swcResults[i].references); + expect(Object.keys(babelScopes[i].bindings)).to.deep.equal( + Object.keys(swcScopes[i].bindings), + ); + // expect(babelScopes[i].references).to.deep.equal(swcResults[i].references); } } diff --git a/packages-node/providence-analytics/test-node/program/utils/traverse-html.test.js b/packages-node/providence-analytics/test-node/program/utils/traverse-html.test.js index 46ba6d8a5c..3122bde5ef 100644 --- a/packages-node/providence-analytics/test-node/program/utils/traverse-html.test.js +++ b/packages-node/providence-analytics/test-node/program/utils/traverse-html.test.js @@ -38,9 +38,9 @@ describe('traverseHtml', () => { }, }); - expect(foundDivs).to.eql(['a-lvl1', 'b']); - expect(foundSpans).to.eql(['a-lvl2']); - expect(foundMyTags).to.eql(['a-lvl3']); + expect(foundDivs).to.deep.equal(['a-lvl1', 'b']); + expect(foundSpans).to.deep.equal(['a-lvl2']); + expect(foundMyTags).to.deep.equal(['a-lvl3']); }); it('traverses different levels in DOM order', async () => { @@ -72,7 +72,7 @@ describe('traverseHtml', () => { traverseHtml(ast, processObj); // call order based on dom tree - expect(callOrder).to.eql(['div#a-lvl1', 'span#a-lvl2', 'my-tag#a-lvl3', 'div#b']); + expect(callOrder).to.deep.equal(['div#a-lvl1', 'span#a-lvl2', 'my-tag#a-lvl3', 'div#b']); }); it('allows to stop traversal (for performance)', async () => { @@ -104,7 +104,7 @@ describe('traverseHtml', () => { }; traverseHtml(ast, processObj); - expect(callOrder).to.eql(['div#a-lvl1']); + expect(callOrder).to.deep.equal(['div#a-lvl1']); }); it('allows to traverse within a path', async () => { @@ -135,6 +135,6 @@ describe('traverseHtml', () => { }; traverseHtml(ast, processObj); - expect(callOrder).to.eql(['my-tag#a-lvl3', 'not-found#a-lvl4']); + expect(callOrder).to.deep.equal(['my-tag#a-lvl3', 'not-found#a-lvl4']); }); }); diff --git a/packages-node/providence-analytics/tsconfig.json b/packages-node/providence-analytics/tsconfig.json index d9551e1d4d..b24742e39f 100644 --- a/packages-node/providence-analytics/tsconfig.json +++ b/packages-node/providence-analytics/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-types", "rootDir": "." }, - "include": ["types"], + "include": ["types", "src", "test-node"], "exclude": ["dist-types"] } diff --git a/packages-node/providence-analytics/types/core/core.d.ts b/packages-node/providence-analytics/types/core/core.d.ts index 7823604cd9..4644022e97 100644 --- a/packages-node/providence-analytics/types/core/core.d.ts +++ b/packages-node/providence-analytics/types/core/core.d.ts @@ -1,4 +1,5 @@ import { File } from '@babel/types'; +import Vol from 'memfs'; /** * The name of a variable in a local context. Examples: @@ -152,6 +153,8 @@ export interface ProjectInputDataWithAstMeta extends ProjectInputDataWithMeta { */ export type AnyMatchString = string; +export type FsAdapter = Vol; + export type ProvidenceConfig = { /* Whether analyzer should be run or a grep should be performed */ queryMethod: 'ast' | 'grep'; @@ -169,6 +172,7 @@ export type ProvidenceConfig = { writeLogFile: boolean; skipCheckMatchCompatibility: boolean; fallbackToBabel: boolean; + fs: FsAdapter; }; /** @@ -182,6 +186,7 @@ export type PackageJson = { devDependencies?: { [dependency: string]: string }; workspaces?: string[]; main?: string; + exports?: { [key: string]: string }; }; export type LernaJson = { diff --git a/packages/ajax/test/Ajax.test.js b/packages/ajax/test/Ajax.test.js index 604b5111f4..0a6aa0499a 100644 --- a/packages/ajax/test/Ajax.test.js +++ b/packages/ajax/test/Ajax.test.js @@ -702,8 +702,10 @@ describe('Ajax', () => { const errors = [ "Failed to execute 'fetch' on 'Window': The user aborted a request.", // chromium + 'signal is aborted without reason', // newer chromium (?) 'The operation was aborted. ', // firefox 'Request signal is aborted', // webkit + 'The operation was aborted.', // newer webkit ]; expect(errors.includes(/** @type {Error} */ (err).message)).to.be.true; diff --git a/packages/ui/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js b/packages/ui/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js index 98e5e6a224..cf7a040a6c 100644 --- a/packages/ui/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +++ b/packages/ui/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js @@ -40,8 +40,11 @@ export function runCheckboxIndeterminateSuite(customConfig) { let childTag; before(async () => { + // @ts-expect-error tag = unsafeStatic(cfg.tagString); + // @ts-expect-error groupTag = unsafeStatic(cfg.groupTagString); + // @ts-expect-error childTag = unsafeStatic(cfg.childTagString); }); diff --git a/packages/ui/components/form-core/test-suites/ValidateMixin.suite.js b/packages/ui/components/form-core/test-suites/ValidateMixin.suite.js index 461a3fd200..e9bdea79f8 100644 --- a/packages/ui/components/form-core/test-suites/ValidateMixin.suite.js +++ b/packages/ui/components/form-core/test-suites/ValidateMixin.suite.js @@ -788,6 +788,7 @@ export function runValidateMixinSuite(customConfig) { await fixture(html` <${tag} .validators="${[ + // @ts-expect-error new EqualsLength(4, { getMessage: () => html`
test
` }), ]}" })]}" .modelValue="${'123'}" diff --git a/packages/ui/components/input-tel-dropdown/test/LionInputTelDropdown.test.js b/packages/ui/components/input-tel-dropdown/test/LionInputTelDropdown.test.js index eaac95a063..9da8ebad27 100644 --- a/packages/ui/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +++ b/packages/ui/components/input-tel-dropdown/test/LionInputTelDropdown.test.js @@ -1,7 +1,8 @@ import { runInputTelSuite } from '@lion/ui/input-tel-test-suites.js'; import { repeat } from 'lit/directives/repeat.js'; import { ref } from 'lit/directives/ref.js'; -import { aTimeout, expect, fixture, html } from '@open-wc/testing'; +import { html } from 'lit'; +import { aTimeout, expect, fixture } from '@open-wc/testing'; import { LionInputTelDropdown } from '@lion/ui/input-tel-dropdown.js'; import { LionOption } from '@lion/ui/listbox.js'; import { LionSelectRich } from '@lion/ui/select-rich.js'; diff --git a/packages/ui/components/listbox/test-suites/ListboxMixin.suite.js b/packages/ui/components/listbox/test-suites/ListboxMixin.suite.js index 359e80ca48..1fcc4a8a79 100644 --- a/packages/ui/components/listbox/test-suites/ListboxMixin.suite.js +++ b/packages/ui/components/listbox/test-suites/ListboxMixin.suite.js @@ -16,6 +16,7 @@ import { import { sendKeys } from '@web/test-runner-commands'; import sinon from 'sinon'; import { getListboxMembers } from '../../../exports/listbox-test-helpers.js'; +import { browserDetection } from '../../core/src/browserDetection.js'; /** * @typedef {import('../src/LionListbox.js').LionListbox} LionListbox @@ -380,7 +381,12 @@ export function runListboxMixinSuite(customConfig = {}) { await aTimeout(1000); // top should be offset 2x40px (sticky header elems) instead of 0px - expect(el.scrollTop).to.equal(116); + if (browserDetection.isChrome || browserDetection.isChromium) { + // TODO: find out why this is different in recent Chromium + expect(el.scrollTop).to.equal(160); + } else { + expect(el.scrollTop).to.equal(116); + } }); }); diff --git a/packages/ui/components/localize/src/date/utils/normalizeIntlDate.js b/packages/ui/components/localize/src/date/utils/normalizeIntlDate.js index 752b18f010..674c54d894 100644 --- a/packages/ui/components/localize/src/date/utils/normalizeIntlDate.js +++ b/packages/ui/components/localize/src/date/utils/normalizeIntlDate.js @@ -21,7 +21,6 @@ export function normalizeIntlDate(str, locale = '', { weekday, year, month, day } const result = dateString.join(''); - // Normalize webkit date formatting without year if (!year && weekday === 'long' && month === 'long' && day === '2-digit') { const CHINESE_LOCALES = [ @@ -43,7 +42,7 @@ export function normalizeIntlDate(str, locale = '', { weekday, year, month, day return result.replace(' ', ''); } - if (result.indexOf(',') === -1 && locale === 'en-GB') { + if ((result.indexOf(',') === -1 && locale === 'en-GB') || locale === 'en-AU') { // Saturday 12 October -> Saturday, 12 October const match = result.match(/^(\w*) (\d*) (\w*)$/); if (match !== null) { @@ -63,6 +62,18 @@ export function normalizeIntlDate(str, locale = '', { weekday, year, month, day return `${match[1]}, ${match[3]} ${match[2]}`; } } + + if (locale === 'uk-UA') { + // суботу => субота + return result.replace('суботу', 'субота'); + } + } else if (weekday === 'long' && month === 'long' && day === '2-digit') { + if (result.indexOf(',') === -1 && locale.startsWith('en-')) { + // Saturday 12 October 2023 -> Saturday, 12 October 2023 + const [, _weekDayName, _monthDayNumber, _monthName, _year] = + result.match(/^(\w*) (\d*) (\w*) (\d*)$/) || []; + return `${_weekDayName}, ${_monthDayNumber} ${_monthName} ${_year}`; + } } return result; diff --git a/patches/swc-to-babel+1.26.0.patch b/patches/swc-to-babel+1.26.0.patch deleted file mode 100644 index 6d81abd90c..0000000000 --- a/patches/swc-to-babel+1.26.0.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/node_modules/swc-to-babel/lib/swc/index.js b/node_modules/swc-to-babel/lib/swc/index.js -index ab285b3..a58a61d 100644 ---- a/node_modules/swc-to-babel/lib/swc/index.js -+++ b/node_modules/swc-to-babel/lib/swc/index.js -@@ -143,6 +143,15 @@ module.exports.ClassMethod = (path) => { - key, - }); - -+ if (node.kind === 'getter') { -+ node.kind = 'get'; -+ } -+ if (node.kind === 'setter') { -+ node.kind = 'set'; -+ } -+ -+ node.static = node.isStatic; -+ - delete path.node.isStatic; - delete path.node.accessibility; - delete path.node.isAbstract; -@@ -301,7 +310,7 @@ module.exports.TSIndexedAccessType = (path) => { - module.exports.ImportDeclaration = ({node}) => { - const {typeOnly} = node; - -- node.assertions = node.asserts || []; -+ node.assertions = node.asserts?.properties || []; - node.importKind = typeOnly ? 'type' : 'value'; - - delete node.asserts; -@@ -340,9 +349,10 @@ module.exports.convertGetterSetter = ({node}) => { - }; - - module.exports.ExportDefaultDeclaration = ({node}) => { -- node.declaration = node.decl; -+ // node.declaration may have been already provided by convertExportDefaultExpression -+ node.declaration = node.declaration || node.decl; - node.exportKind = 'value'; -- node.assertions = []; -+ node.assertions = node.asserts?.properties || []; - - delete node.decl; - }; -@@ -350,8 +360,8 @@ module.exports.ExportDefaultDeclaration = ({node}) => { - module.exports.ExportNamedDeclaration = ({node}) => { - const {typeOnly} = node; - -- node.assertions = []; -- node.source = null; -+ node.assertions = node.asserts?.properties || []; -+ // node.source = null; - node.specifiers = node.specifiers || []; - - node.exportKind = typeOnly ? 'type' : 'value'; diff --git a/scripts/lock-scan.js b/scripts/lock-scan.js deleted file mode 100644 index b65a968f8f..0000000000 --- a/scripts/lock-scan.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const lockFileContent = fs.readFileSync(path.resolve('./package-lock.json'), 'utf8'); - -const allowedRegistries = ['registry.yarnpkg.com', 'registry.npmjs.org']; -const resolvedUrls = lockFileContent.match(/"resolved": "https:.*"/g); -resolvedUrls?.forEach(url => { - const [, registry] = url.match(/^"resolved": "https:\/\/(.*?)\/.*"$/) || []; - if (!allowedRegistries.includes(registry)) { - throw new Error( - `Disallowed registries ("${registry}") in your package-lock.json! - Please make sure you are using a public npm registry when downloading your dependencies!`, - ); - } -}); diff --git a/scripts/lock-scan.mjs b/scripts/lock-scan.mjs new file mode 100644 index 0000000000..9668cfea5b --- /dev/null +++ b/scripts/lock-scan.mjs @@ -0,0 +1,17 @@ +import path from 'path'; +import fs from 'fs'; + +function containsDisallowedRegistry(url) { + const [, registry] = url.match(/^"resolved": "https:\/\/(.*?)\/.*"$/) || []; + return !['registry.yarnpkg.com', 'registry.npmjs.org'].includes(registry); +} + +const lockFileContent = fs.readFileSync(path.resolve('./package-lock.json'), 'utf8'); +const resolvedUrls = lockFileContent.match(/"resolved": "https:.*"/g); + +if (resolvedUrls?.some(containsDisallowedRegistry)) { + throw new Error( + `Disallowed registries in your package-lock.json! + Please make sure you are using a public npm registry when downloading your dependencies!`, + ); +} diff --git a/scripts/screenshots/index.js b/scripts/screenshots/index.js index 3e43dc009f..d803a5df19 100644 --- a/scripts/screenshots/index.js +++ b/scripts/screenshots/index.js @@ -3,10 +3,8 @@ const { chromium } = require('playwright'); const looksSame = require('looks-same'); const { join } = require('path'); -const mkdirp = require('mkdirp-promise'); const fs = require('fs'); -const { promisify } = require('es6-promisify'); -const minimist = require('minimist'); +const { promisify } = require('util'); const { mdjsTransformer } = require('@mdjs/core'); const { createConfig, startServer } = require('es-dev-server'); const nodePath = require('path'); @@ -14,7 +12,6 @@ const nodePath = require('path'); const access = promisify(fs.access); const compareScreenshots = promisify(looksSame); const createScreenshotsDiff = promisify(looksSame.createDiff); -const args = minimist(process.argv); const DIFF_FOLDER_PREFIX = '.diff'; const CURRENT_FOLDER_PREFIX = '.current'; @@ -157,7 +154,7 @@ async function getScreenshot({ root, id, selector, page, clip }) { const { path, folder } = await buildPath({ root, id, selector }); - mkdirp(folder); + await fs.promises.mkdir(folder, { recursive: true }); // Remove caret from screenshots to avoid caret diff await page.evaluate(() => { @@ -201,7 +198,7 @@ const screenshotsCompareOptions = { async function invalidateScreenshots({ diffRoot: root, id, selector, reference, current }) { const { path, folder } = await buildPath({ root, id, selector }); - mkdirp(folder); + await fs.promises.mkdir(folder, { recursive: true }); await createScreenshotsDiff({ ...screenshotsCompareOptions, @@ -238,10 +235,11 @@ async function validateScreenshot(suite) { } } -let updateScreenshots = args['update-screenshots'] || process.env.UPDATE_SCREENSHOTS; +let updateScreenshots = + process.argv.includes('--update-screenshots') || process.env.UPDATE_SCREENSHOTS; try { - const avaConfig = JSON.parse(args._[2]); + const avaConfig = JSON.parse(process.argv[2]); updateScreenshots = avaConfig.updateScreenshots; } catch (e) { log('Could not parse config'); diff --git a/scripts/yarn-lock-diff.mjs b/scripts/yarn-lock-diff.mjs deleted file mode 100644 index b42b5aca04..0000000000 --- a/scripts/yarn-lock-diff.mjs +++ /dev/null @@ -1,105 +0,0 @@ -import { exec } from 'child_process'; -import fs from 'fs'; -// eslint-disable-next-line import/no-extraneous-dependencies -import lockfile from '@yarnpkg/lockfile'; - -/** - * === Generic Helpers === - */ - -const execPromise = cmd => - new Promise(resolve => exec(cmd, { maxBuffer: 200000000 }, (err, stdout) => resolve(stdout))); - -const arrDiff = (arrA, arrB, eq = (a, b) => a === b) => - arrA.filter(a => arrB.every(b => !eq(a, b))); - -/** - * === yarn-lock-diff === - */ - -function groupByPackageName(obj) { - const packages = []; - Object.keys(obj.object).forEach(key => { - const names = key.split('@'); - let name = names[0]; - if (name === '') { - // handle scoped packages - name = `@${names[1]}`; - } - const { version } = obj.object[key]; - const found = packages.find(p => p.name === name); - if (found) { - found.versions.push(version); - } else { - packages.push({ - name, - versions: [version], - }); - } - }); - return packages; -} - -function yarnLockDiff(prevLockContents, curLockContents) { - const previous = lockfile.parse(prevLockContents); - const current = lockfile.parse(curLockContents); - - const previousPackages = groupByPackageName(previous); - const currentPackages = groupByPackageName(current); - - const removedResult = []; - const changedResult = []; - - previousPackages.forEach(prevPkg => { - const foundCurPkg = currentPackages.find(curPkg => curPkg.name === prevPkg.name); - if (!foundCurPkg) { - removedResult.push(prevPkg); - } else { - const diff = arrDiff(foundCurPkg.versions, prevPkg.versions); - if (diff.length) { - changedResult.push({ - name: prevPkg.name, - previousVersions: Array.from(new Set(prevPkg.versions)), - currentVersions: Array.from(new Set(foundCurPkg.versions)), - diff, - }); - } - } - }); - return { removed: removedResult, changed: changedResult }; -} - -/** - * === cli === - */ - -function getArgs() { - const idx = process.argv.findIndex(a => a === '--versions-back'); - let versionsBack; - if (idx > 0) { - versionsBack = Number(process.argv[idx + 1]); - if (Number.isNaN(versionsBack)) { - throw new Error('Please provide a number for --versions-back'); - } - } else { - versionsBack = 1; - } - return { versionsBack }; -} - -async function main() { - const { versionsBack } = getArgs(); - const changeHistory = await execPromise(`git log yarn.lock`); - const commits = changeHistory - .match(/commit (.*)\n/g) - .map(c => c.replace('commit ', '').replace('\n', '')); - - // For now, we pick latest commit. When needed in the future, allow '--age 2-months' or smth - const prevLockContents = await execPromise(`git show ${commits[versionsBack - 1]}:yarn.lock`); - const curLockContents = await fs.promises.readFile('yarn.lock', 'utf8'); - - // eslint-disable-next-line no-console - console.log(JSON.stringify(yarnLockDiff(prevLockContents, curLockContents), null, 2)); -} - -main(); diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs index fe6873a7be..5f269c6da5 100644 --- a/web-test-runner.config.mjs +++ b/web-test-runner.config.mjs @@ -1,6 +1,8 @@ import fs from 'fs'; import { playwrightLauncher } from '@web/test-runner-playwright'; +const devMode = process.argv.includes('--dev-mode'); + const packages = fs .readdirSync('packages') .filter( @@ -33,7 +35,7 @@ const testRunnerHtml = testRunnerImport => `; export default { - nodeResolve: true, + nodeResolve: { exportConditions: [devMode && 'development'] }, coverageConfig: { report: true, reportDir: 'coverage',