From 9480713be2e91170ea6c77190fc0097453c18d80 Mon Sep 17 00:00:00 2001 From: Rebecca Stevens Date: Mon, 15 Apr 2024 22:10:30 +1200 Subject: [PATCH] feat: eslint 9 migration BREAKING CHANGE: eslint 9 is now require BREAKING CHANGE: typescript >= v4.7 is now required (when using typescript) BREAKING CHANGE: node >= 18.18 is now required --- .eslintrc.json | 124 - .github/renovate.json | 8 - .github/workflows/lint-prettier.yml | 14 - .github/workflows/release.yml | 5 +- .github/workflows/semantic-pr.yml | 3 - .github/workflows/test-js.yml | 5 +- .../{type-check.yml => typecheck.yml} | 4 +- .lintstagedrc.yml | 11 +- .markdownlint-cli2.jsonc | 6 + .markdownlint.json | 6 +- .markdownlintignore | 3 - .prettierrc.yml | 1 - .releaserc.yml | 34 +- .vscode/settings.json | 24 +- CONTRIBUTING.md | 11 +- DONATIONS.md | 18 +- GETTING_STARTED.md | 120 +- README.md | 112 +- cspell.config.yml | 1 - docs/rules/functional-parameters.md | 26 +- docs/rules/immutable-data.md | 13 +- docs/rules/no-classes.md | 23 +- docs/rules/no-conditional-statements.md | 23 +- docs/rules/no-expression-statements.md | 15 +- docs/rules/no-let.md | 32 +- docs/rules/no-loop-statements.md | 11 +- docs/rules/no-mixed-types.md | 14 +- docs/rules/no-promise-reject.md | 5 + docs/rules/no-return-void.md | 11 +- docs/rules/no-this-expressions.md | 7 +- docs/rules/no-throw-statements.md | 11 +- docs/rules/no-try-statements.md | 7 +- docs/rules/prefer-immutable-types.md | 20 +- docs/rules/prefer-property-signatures.md | 12 +- docs/rules/prefer-readonly-type.md | 27 +- docs/rules/prefer-tacit.md | 7 +- docs/rules/readonly-type.md | 7 +- docs/rules/settings/immutability.md | 10 +- docs/rules/type-declaration-immutability.md | 9 +- docs/user-guide/migrating-from-tslint.md | 28 +- eslint-doc-generator.config.ts | 22 +- eslint.config.js | 138 + knip.jsonc | 20 +- package.json | 153 +- pnpm-lock.yaml | 11653 ++++++++-------- project-dictionary.txt | 1 + rollup.config.ts | 151 +- src/classic.ts | 47 - src/configs/all.ts | 6 +- src/configs/currying.ts | 6 +- src/configs/disable-type-checked.ts | 8 +- .../external-typescript-recommended.ts | 6 +- src/configs/external-vanilla-recommended.ts | 6 +- src/configs/lite.ts | 6 +- src/configs/no-exceptions.ts | 6 +- src/configs/no-mutations.ts | 6 +- src/configs/no-other-paradigms.ts | 6 +- src/configs/no-statements.ts | 6 +- src/configs/off.ts | 6 +- src/configs/recommended.ts | 6 +- src/configs/strict.ts | 6 +- src/configs/stylistic.ts | 6 +- src/flat.ts | 66 - src/index.ts | 85 + src/options/ignore.ts | 8 +- src/rules/functional-parameters.ts | 86 +- src/rules/immutable-data.ts | 45 +- src/rules/index.ts | 22 +- src/rules/no-classes.ts | 27 +- src/rules/no-conditional-statements.ts | 35 +- src/rules/no-expression-statements.ts | 35 +- src/rules/no-let.ts | 34 +- src/rules/no-loop-statements.ts | 36 +- src/rules/no-mixed-types.ts | 71 +- src/rules/no-promise-reject.ts | 32 +- src/rules/no-return-void.ts | 47 +- src/rules/no-this-expressions.ts | 28 +- src/rules/no-throw-statements.ts | 28 +- src/rules/no-try-statements.ts | 28 +- src/rules/prefer-immutable-types.ts | 71 +- src/rules/prefer-property-signatures.ts | 27 +- src/rules/prefer-readonly-type.ts | 57 +- src/rules/prefer-tacit.ts | 70 +- src/rules/readonly-type.ts | 35 +- src/rules/type-declaration-immutability.ts | 54 +- src/settings/immutability.ts | 16 +- src/utils/conditional-imports/.eslintrc.json | 14 - .../conditional-imports/cjs/ts-api-utils.ts | 10 - .../conditional-imports/cjs/typescript.ts | 9 - .../conditional-imports/esm/ts-api-utils.ts | 10 - .../conditional-imports/esm/typescript.ts | 4 - src/utils/conditional-imports/ts-api-utils.ts | 18 + src/utils/conditional-imports/typescript.ts | 11 + src/utils/constants.ts | 2 +- src/utils/misc.ts | 8 +- src/utils/node-types.ts | 2 +- src/utils/rule.ts | 134 +- src/utils/tree.ts | 35 +- src/utils/type-guards.ts | 6 +- tests/common/ignore-options.test.ts | 36 +- tests/configs.test.ts | 12 +- tests/helpers/RuleTester.ts | 22 +- tests/helpers/configs.ts | 212 +- tests/helpers/testers.ts | 8 +- tests/helpers/util.ts | 46 +- tests/index.test.ts | 42 +- .../functional-parameters/es2015/invalid.ts | 10 +- .../functional-parameters/es2015/valid.ts | 4 +- .../functional-parameters/es3/invalid.ts | 10 +- .../rules/functional-parameters/es3/valid.ts | 4 +- .../rules/immutable-data/ts/array/invalid.ts | 10 +- tests/rules/immutable-data/ts/array/valid.ts | 4 +- .../rules/immutable-data/ts/object/invalid.ts | 10 +- tests/rules/immutable-data/ts/object/valid.ts | 4 +- tests/rules/no-class/es2015/invalid.ts | 10 +- tests/rules/no-class/es2015/valid.ts | 4 +- .../no-conditional-statement/ts/invalid.ts | 10 +- .../no-conditional-statement/ts/valid.ts | 27 +- .../no-expression-statement/ts/invalid.ts | 10 +- .../rules/no-expression-statement/ts/valid.ts | 4 +- tests/rules/no-let/es2015/invalid.ts | 10 +- tests/rules/no-let/es2015/valid.ts | 4 +- .../rules/no-loop-statement/es2015/invalid.ts | 34 +- tests/rules/no-loop-statement/es2015/valid.ts | 4 +- tests/rules/no-loop-statement/es3/invalid.ts | 10 +- tests/rules/no-loop-statement/es3/valid.ts | 4 +- tests/rules/no-mixed-type/ts/invalid.ts | 10 +- tests/rules/no-mixed-type/ts/valid.ts | 4 +- .../rules/no-promise-reject/es2015/invalid.ts | 10 +- tests/rules/no-promise-reject/es2015/valid.ts | 4 +- tests/rules/no-return-void/ts/invalid.ts | 10 +- tests/rules/no-return-void/ts/valid.ts | 4 +- tests/rules/no-this-expression/es3/invalid.ts | 10 +- tests/rules/no-this-expression/es3/valid.ts | 4 +- .../no-throw-statement/es2016/invalid.ts | 10 +- .../rules/no-throw-statement/es2016/valid.ts | 4 +- tests/rules/no-throw-statement/es3/invalid.ts | 10 +- tests/rules/no-throw-statement/es3/valid.ts | 4 +- tests/rules/no-try-statement/es3/invalid.ts | 10 +- tests/rules/no-try-statement/es3/valid.ts | 4 +- .../ts/parameters/invalid.ts | 10 +- .../ts/parameters/valid.ts | 4 +- .../ts/return-types/invalid.ts | 10 +- .../ts/return-types/valid.ts | 4 +- .../ts/variables/invalid.ts | 10 +- .../ts/variables/valid.ts | 4 +- .../prefer-property-signatures/ts/invalid.ts | 10 +- .../prefer-property-signatures/ts/valid.ts | 4 +- .../rules/prefer-readonly-type/ts/invalid.ts | 26 +- tests/rules/prefer-readonly-type/ts/valid.ts | 4 +- tests/rules/prefer-tacit/ts/invalid.ts | 14 +- tests/rules/prefer-tacit/ts/valid.ts | 4 +- tests/rules/readonly-type/ts/invalid.ts | 10 +- tests/rules/readonly-type/ts/valid.ts | 4 +- .../ts/invalid.ts | 10 +- .../type-declaration-immutability/ts/valid.ts | 4 +- tsconfig.base.json | 10 +- tsconfig.build.json | 3 +- tsconfig.eslint.json | 4 - tsconfig.json | 8 +- typings/node.d.ts | 25 + 161 files changed, 7753 insertions(+), 7497 deletions(-) delete mode 100644 .eslintrc.json delete mode 100644 .github/workflows/lint-prettier.yml rename .github/workflows/{type-check.yml => typecheck.yml} (80%) create mode 100644 .markdownlint-cli2.jsonc delete mode 100644 .markdownlintignore create mode 100644 eslint.config.js delete mode 100644 src/classic.ts delete mode 100644 src/flat.ts create mode 100644 src/index.ts delete mode 100644 src/utils/conditional-imports/.eslintrc.json delete mode 100644 src/utils/conditional-imports/cjs/ts-api-utils.ts delete mode 100644 src/utils/conditional-imports/cjs/typescript.ts delete mode 100644 src/utils/conditional-imports/esm/ts-api-utils.ts delete mode 100644 src/utils/conditional-imports/esm/typescript.ts create mode 100644 src/utils/conditional-imports/ts-api-utils.ts create mode 100644 src/utils/conditional-imports/typescript.ts delete mode 100644 tsconfig.eslint.json create mode 100644 typings/node.d.ts diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index f2a1bd030..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "root": true, - "env": { - "node": true - }, - "plugins": ["prettier"], - "extends": [ - "@rebeccastevens/eslint-config/modern", - "@rebeccastevens/eslint-config/typescript", - "@rebeccastevens/eslint-config/common-overrides", - "plugin:prettier/recommended", - "prettier" - ], - "parserOptions": { - "project": "./tsconfig.eslint.json" - }, - "ignorePatterns": [ - "/build/", - "/coverage/", - "/lib/", - "/node_modules/", - "/tests-compiled/", - "/pnpm-lock.yaml" - ], - "rules": { - "functional/prefer-immutable-types": "off", - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-unnecessary-condition": "off", - "@typescript-eslint/restrict-plus-operands": "off" - }, - "overrides": [ - { - "files": ["./src/configs/", "./src/index.ts"], - "extends": ["plugin:eslint-plugin/recommended"], - "rules": { - "@typescript-eslint/naming-convention": "off" - } - }, - { - "files": ["./src/utils/type-guards.ts", "./src/utils/node-types.ts"], - "rules": { - "jsdoc/require-jsdoc": "off" - } - }, - { - "files": ["**/*.test.ts"], - "plugins": ["vitest"], - "extends": ["plugin:vitest/recommended", "plugin:functional/off"], - "rules": { - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/no-unused-vars-experimental": "off", - "@typescript-eslint/strict-boolean-expressions": "off", - "eslint-comments/disable-enable-pair": "off", - "eslint-comments/no-unlimited-disable": "off", - "import/no-named-as-default-member": "off", - "jsdoc/require-jsdoc": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-identical-functions": "off", - "unicorn/prefer-module": "off", - "vitest/valid-expect": "off" - }, - "settings": { - "vitest": { - "typecheck": true - } - } - }, - { - "files": ["./typings/**/*"], - "extends": ["plugin:functional/off"], - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-explicit-any": "off" - } - }, - // FIXME: This override is defined in the upsteam; it shouldn't need to be redefined here. Why? - { - "files": ["./**/*.md/**"], - "parserOptions": { - "project": null - }, - "extends": [ - "plugin:markdown/recommended", - "plugin:@typescript-eslint/disable-type-checked", - "plugin:functional/off" - ], - "rules": { - "@typescript-eslint/consistent-type-definitions": "off", - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-expressions": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/prefer-function-type": "off", - "@typescript-eslint/consistent-generic-constructors": "off", - "import/extensions": "off", - "import/no-unresolved": "off", - "init-declarations": "off", - "jsdoc/require-jsdoc": "off", - "n/handle-callback-err": "off", - "prefer-const": "off", - "prettier/prettier": "off", - "sonarjs/no-extra-arguments": "off", - "sonarjs/no-unused-collection": "off", - "unicorn/prefer-optional-catch-binding": "off", - "unicorn/prefer-top-level-await": "off", - "unicorn/switch-case-braces": "off", - "no-console": "off", - "no-empty": "off", - "no-invalid-this": "off", - "no-undef": "off", - "no-useless-return": "off", - "dot-notation": "off", - "no-empty-function": "off", - "no-throw-literal": "off", - "no-unused-vars": "off" - } - } - ] -} diff --git a/.github/renovate.json b/.github/renovate.json index 0de6b18bd..66be8d19e 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -50,14 +50,6 @@ "rangeStrategy": "replace", "semanticCommitScope": "dev-deps", "semanticCommitType": "ci" - }, - { - "allowedVersions": "<5", - "matchPackageNames": ["escape-string-regexp"] - }, - { - "allowedVersions": "<9", - "matchPackageNames": ["eslint"] } ], "postUpdateOptions": ["pnpmDedupe"] diff --git a/.github/workflows/lint-prettier.yml b/.github/workflows/lint-prettier.yml deleted file mode 100644 index 63f9b4fa7..000000000 --- a/.github/workflows/lint-prettier.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Prettier - -on: - pull_request: - workflow_dispatch: - workflow_call: - -jobs: - lint_prettier: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/prepare - - run: pnpm run lint:prettier diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9d2a85fd5..b3fdfd5c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,14 +28,12 @@ jobs: uses: ./.github/workflows/lint-markdown.yml lint_packages: uses: ./.github/workflows/lint-packages.yml - lint_prettier: - uses: ./.github/workflows/lint-prettier.yml lint_spelling: uses: ./.github/workflows/lint-spelling.yml test: uses: ./.github/workflows/test-js.yml type_check: - uses: ./.github/workflows/type-check.yml + uses: ./.github/workflows/typecheck.yml release: needs: @@ -46,7 +44,6 @@ jobs: - lint_markdown - lint_spelling - lint_packages - - lint_prettier - test - type_check runs-on: ubuntu-latest diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index 93274d984..e9004a070 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -52,8 +52,5 @@ jobs: subjectPattern: ^(?![A-Z]).+$ # Don't start with an uppercase character. subjectPatternError: | The subject "{subject}" should not start with an uppercase character. - ignoreLabels: | - bot - ignore-semantic-pull-request headerPattern: '^(\w*)(?:\(([\w$.\-*/ ]*)\))?!?: (.*)$' headerPatternCorrespondence: type, scope, subject diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml index a5f987495..7e49a1f43 100644 --- a/.github/workflows/test-js.yml +++ b/.github/workflows/test-js.yml @@ -14,14 +14,13 @@ jobs: os: - "ubuntu-latest" node_version: - - "16" - - "18" + - "18.18" - "20" - "latest" ts_version: - "next" - "latest" - - "4.3.5" + - "4.7.4" # - "JS" runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.ts_version == 'next' }} diff --git a/.github/workflows/type-check.yml b/.github/workflows/typecheck.yml similarity index 80% rename from .github/workflows/type-check.yml rename to .github/workflows/typecheck.yml index a3edaaf0c..30d59ee37 100644 --- a/.github/workflows/type-check.yml +++ b/.github/workflows/typecheck.yml @@ -6,9 +6,9 @@ on: workflow_call: jobs: - type-check: + typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - - run: pnpm run type-check + - run: pnpm run typecheck diff --git a/.lintstagedrc.yml b/.lintstagedrc.yml index 49ded9793..3aa8818ce 100644 --- a/.lintstagedrc.yml +++ b/.lintstagedrc.yml @@ -1,17 +1,16 @@ "*.{json,yml}": - - prettier --ignore-unknown --write + - eslint --fix - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot -"*.ts": - - prettier --ignore-unknown --write +"*.?([cm])[jt]s?(x)": - eslint --fix - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot - tsc-files -p tsconfig.build.json --noEmit "*.md": - - prettier --ignore-unknown --write - - markdownlint --config=.markdownlint.json --ignore-path=.markdownlintignore + - markdownlint-cli2 --fix + - eslint --fix - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot -"pnpm-lock.yaml": +pnpm-lock.yaml: - "pnpm dedupe && :" diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 000000000..d09f8b15d --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,6 @@ +{ + "$schema": "node_modules/markdownlint-cli2/schema/markdownlint-cli2-config-schema.json", + "gitignore": true, + "globs": ["**/*.md"], + "ignores": ["node_modules", "coverage", "lib", "CHANGELOG.md"], +} diff --git a/.markdownlint.json b/.markdownlint.json index 8a5e46565..d8e6c721a 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,4 +1,6 @@ { + "$schema": "node_modules/markdownlint-cli2/schema/markdownlint-config-schema.json", + "default": false, "extends": "markdownlint/style/prettier", @@ -62,9 +64,9 @@ // MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md013.md "MD013": { // Number of characters - "line_length": 160, + "line_length": 120, // Number of characters for headings - "heading_line_length": 160, + "heading_line_length": 120, // Number of characters for code blocks "code_block_line_length": 120, // Include code blocks diff --git a/.markdownlintignore b/.markdownlintignore deleted file mode 100644 index c7157d915..000000000 --- a/.markdownlintignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/ -node_modules/ -CHANGELOG.md diff --git a/.prettierrc.yml b/.prettierrc.yml index 0f2671aaa..ca544b678 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -2,7 +2,6 @@ plugins: - prettier-plugin-packagejson - - prettier-plugin-multiline-arrays trailingComma: "all" diff --git a/.releaserc.yml b/.releaserc.yml index 0380b0add..edf85ae26 100644 --- a/.releaserc.yml +++ b/.releaserc.yml @@ -47,39 +47,11 @@ plugins: - - "semantic-release-replace-plugin" - replacements: - files: - - "./lib/**/*" - from: "\\$\\{__VERSION__\\}" + - "./lib/index.js" + from: "0\\.0\\.0\\-development" to: "${nextRelease.version}" results: - - file: "./lib/classic.cjs" - hasChanged: true - numMatches: 1 - numReplacements: 1 - - file: "./lib/classic.d.cts" - hasChanged: false - numMatches: 0 - numReplacements: 0 - - file: "./lib/classic.d.mts" - hasChanged: false - numMatches: 0 - numReplacements: 0 - - file: "./lib/classic.mjs" - hasChanged: true - numMatches: 1 - numReplacements: 1 - - file: "./lib/flat.cjs" - hasChanged: true - numMatches: 1 - numReplacements: 1 - - file: "./lib/flat.d.cts" - hasChanged: false - numMatches: 0 - numReplacements: 0 - - file: "./lib/flat.d.mts" - hasChanged: false - numMatches: 0 - numReplacements: 0 - - file: "./lib/flat.mjs" + - file: "./lib/index.js" hasChanged: true numMatches: 1 numReplacements: 1 diff --git a/.vscode/settings.json b/.vscode/settings.json index ae45bc1b3..e78a8dea9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,15 +1,23 @@ { "editor.codeActionsOnSave": { - "source.fixAll": "explicit", - "source.fixAll.eslint": "explicit", - "source.formatDocument": "explicit", - "source.organizeImports": "explicit", - "source.sortImports": "explicit" + "source.fixAll.eslint": "explicit" }, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true, - "editor.formatOnSaveMode": "file", + "editor.formatOnSave": false, "editor.rulers": [80], + "eslint.probe": [ + "html", + "javascript", + "javascriptreact", + "json", + "jsonc", + "markdown", + "toml", + "typescript", + "typescriptreact", + "vue", + "yaml" + ], "files.associations": { ".markdownlint.json": "jsonc", ".markdownlintignore": "ignore" @@ -29,6 +37,6 @@ }, "typescript.tsdk": "./node_modules/typescript/lib", "[markdown]": { - "editor.rulers": [160] + "editor.rulers": [120] } } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8fef1dfae..083da3c29 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,10 +8,15 @@ For new features file an issue. For bugs, file an issue and optionally file a PR To execute the tests run `pnpm test`. -To learn about ESLint plugin development see the [relevant section](https://eslint.org/docs/developer-guide/working-with-plugins) of the ESLint docs. You can also checkout the [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) repo which has some more information specific to TypeScript. +To learn about ESLint plugin development see the +[relevant section](https://eslint.org/docs/developer-guide/working-with-plugins) of the ESLint docs. +You can also checkout the [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) repo which has +some more information specific to TypeScript. -In order to know which AST nodes are created for a snippet of TypeScript code you can use [AST explorer](https://astexplorer.net/) with options JavaScript and @typescript-eslint/parser. +In order to know which AST nodes are created for a snippet of TypeScript code you can use +[AST explorer](https://astexplorer.net/) with options JavaScript and @typescript-eslint/parser. ### How to publish -Publishing is handled by [semantic release](https://github.com/semantic-release/semantic-release#readme) - there shouldn't be any need to publish manually. +Publishing is handled by [semantic release](https://github.com/semantic-release/semantic-release#readme) - +there shouldn't be any need to publish manually. diff --git a/DONATIONS.md b/DONATIONS.md index 7de630034..abe751915 100644 --- a/DONATIONS.md +++ b/DONATIONS.md @@ -4,7 +4,8 @@ Any donations would be much appreciated. πŸ˜„ ## Enterprise Users -`eslint-plugin-functional` is available as part of the [Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-eslint-plugin-functional). +`eslint-plugin-functional` is available as part of the +[Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-eslint-plugin-functional). ## Real money @@ -13,7 +14,10 @@ Any donations would be much appreciated. πŸ˜„ ## Cryptocurrencies
-Bitcoin Logo Bitcoin + + Bitcoin Logo + Bitcoin + ![bitcoin address QR code](https://raw.githubusercontent.com/RebeccaStevens/RebeccaStevens/main/assets/cryptocurrencies/wallets/bitcoin.png)\ bc1qgr2xwvkpztsaq9kplud84r3dfz4g3e7d5c5lxm @@ -21,7 +25,10 @@ bc1qgr2xwvkpztsaq9kplud84r3dfz4g3e7d5c5lxm
-Ethereum Logo Ethereum + + Ethereum Logo + Ethereum + ![ethereum address QR code](https://raw.githubusercontent.com/RebeccaStevens/RebeccaStevens/main/assets/cryptocurrencies/wallets/ethereum.png)\ 0x643769d1DD2Cb912656dAA27C1b97e5A81EF9fd2 @@ -29,7 +36,10 @@ bc1qgr2xwvkpztsaq9kplud84r3dfz4g3e7d5c5lxm
-Litecoin Logo Litecoin + + Litecoin Logo + Litecoin + ![litecoin address QR code](https://raw.githubusercontent.com/RebeccaStevens/RebeccaStevens/main/assets/cryptocurrencies/wallets/litecoin.png)\ ltc1qxr7p6z4hrh87g9mjjk67chyduwrh2nfrpxksjv diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md index 44f7198a6..19407520c 100644 --- a/GETTING_STARTED.md +++ b/GETTING_STARTED.md @@ -19,97 +19,67 @@ pnpm add -D eslint eslint-plugin-functional ```sh # Install with npm -npm install -D eslint @typescript-eslint/parser eslint-plugin-functional +npm install -D eslint typescript-eslint eslint-plugin-functional # Install with yarn -yarn add -D eslint @typescript-eslint/parser eslint-plugin-functional +yarn add -D eslint typescript-eslint eslint-plugin-functional # Install with pnpm -pnpm add -D eslint @typescript-eslint/parser eslint-plugin-functional +pnpm add -D eslint typescript-eslint eslint-plugin-functional ``` ## Usage -### Flat Config - -If using the new [flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new), -import from `eslint-plugin-functional/flat`. - -```ts -import functional from "eslint-plugin-functional/flat"; -``` - -### Classic Config +### With TypeScript -Add `functional` to the plugins section of your `.eslintrc` configuration file. Then configure the rules you want to use under the rules section. +In your `eslint.config.js` file, import `typescript-eslint` and `eslint-plugin-functional` and configure them as you wish. -```jsonc -{ - "plugins": ["functional"], - "rules": { - "functional/rule-name": "error" - } -} -``` +```js +// eslint.config.js +import functional from "eslint-plugin-functional"; +import tseslint from "typescript-eslint"; -There are several rulesets provided by this plugin. -[See the README](./README.md#rulesets) for what they are and what rules are included in each. -Enable rulesets via the "extends" property of your `.eslintrc` configuration file. - -Be sure to include the `"plugin:functional/disable-type-checked"` ruleset to disable rules that require TypeScript. - -```jsonc -{ - // ... - "extends": [ - "plugin:functional/external-vanilla-recommended", - "plugin:functional/recommended", - "plugin:functional/stylistic", - "plugin:functional/disable-type-checked" - ] -} +export default tseslint.config({ + files: ["**/*.ts"], + extends: [ + functional.configs.externalTypescriptRecommended, + functional.configs.recommended, + functional.configs.stylistic, + // your other plugin configs here + ], + languageOptions: { + parser: tseslint.parser, + parserOptions: { + projectService: true, + }, + }, + rules: { + // any rule configs here + }, +}); ``` -### With TypeScript +### Without TypeScript -Add `@typescript-eslint/parser` to the "parser" filed in your `.eslintrc` configuration file. -To use type information, you will need to specify a path to your `tsconfig.json` file in the "project" property of "parserOptions". -Alternatively, you can just set "project" to `true` to automatically use the nearest `tsconfig.json` files. - -```jsonc -{ - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": true - } -} -``` +In your `eslint.config.js` file, import `eslint-plugin-functional` and configure it as you wish. -See [@typescript-eslint/parser's README.md](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser#readme) for more information on the available parser options. +If you're not using TypeScript, be sure to include the `disableTypeChecked` config after the other configs to +disable rules that require TypeScript. -### Example Config +```js +// eslint.config.js +import functional from "eslint-plugin-functional"; -```jsonc -{ - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": true - }, - "env": { - "es6": true +export default [ + functional.configs.externalVanillaRecommended, + functional.configs.recommended, + functional.configs.stylistic, + functional.configs.disableTypeChecked, + // your other plugin configs here + { + rules: { + // any rule configs here + }, }, - "plugins": [ - "@typescript-eslint", - "functional" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-requiring-type-checking", - "plugin:functional/external-typescript-recommended", - "plugin:functional/recommended", - "plugin:functional/stylistic" - ] -} +]; ``` diff --git a/README.md b/README.md index 1d0c32861..0fe4f3c4f 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,8 @@ An [ESLint](http://eslint.org) plugin to disable mutation and promote functional `eslint-plugin-functional` is available as part of the Tidelift Subscription. -Tidelift is working with the maintainers of `eslint-plugin-functional` and a growing network of open source maintainers to ensure your open source software supply chain meets enterprise standards now and into the future. +Tidelift is working with the maintainers of `eslint-plugin-functional` and a growing network of open source maintainers +to ensure your open source software supply chain meets enterprise standards now and into the future. [Learn more.](https://tidelift.com/subscription/pkg/npm-eslint-plugin-functional?utm_source=npm-eslint-plugin-functional&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) ## Getting Started @@ -37,50 +38,55 @@ The following rulesets are made available by this plugin. Presets: -- **Strict** (`plugin:functional/strict`)\ +- **Strict** (`configs.strict`)\ Enforce recommended rules designed to strictly enforce functional programming. -- **Recommended** (`plugin:functional/recommended`)\ - Has the same goal as the `strict` preset but a little more lenient, allowing for functional-like coding styles and nicer integration with non-functional 3rd-party libraries. +- **Recommended** (`configs.recommended`)\ + Has the same goal as the `strict` preset but a little more lenient, allowing for functional-like coding styles and + nicer integration with non-functional 3rd-party libraries. -- **Lite** (`plugin:functional/lite`)\ +- **Lite** (`configs.lite`)\ Good if you're new to functional programming or are converting a large codebase. Categorized: -- **Currying** (`plugin:functional/currying`)\ - JavaScript functions support syntax that is not compatible with curried functions. To enforce currying, this syntax should be prevented. +- **Currying** (`configs.currying`)\ + JavaScript functions support syntax that is not compatible with curried functions. To enforce currying, this syntax + should be prevented. -- **No Exceptions** (`plugin:functional/no-exceptions`)\ +- **No Exceptions** (`configs.noExceptions`)\ Functional programming style does not use run-time exceptions. Instead expressions produces values to indicate errors. -- **No Mutations** (`plugin:functional/no-mutations`)\ +- **No Mutations** (`configs.noMutations`)\ Prevent mutating any data as that's not functional -- **No Other Paradigms** (`plugin:functional/no-other-paradigms`)\ - JavaScript is multi-paradigm, allowing not only functional, but object-oriented as well as other programming styles. To promote a functional style, prevent the use of other paradigm styles. +- **No Other Paradigms** (`configs.noOtherParadigms`)\ + JavaScript is multi-paradigm, allowing not only functional, but object-oriented as well as other programming styles. + To promote a functional style, prevent the use of other paradigm styles. -- **No Statements** (`plugin:functional/no-statements`)\ - In functional programming everything is an expression that produces a value. JavaScript has a lot of syntax that is just statements that does not produce a value. That syntax has to be prevented to promote a functional style. +- **No Statements** (`configs.noStatements`)\ + In functional programming everything is an expression that produces a value. + JavaScript has a lot of syntax that is just statements that does not produce a value. + That syntax has to be prevented to promote a functional style. -- **Stylistic** (`plugin:functional/stylistic`)\ +- **Stylistic** (`configs.stylistic`)\ Enforce code styles that can be considered to be more functional. Other: -- **All** (`plugin:functional/all`)\ +- **All** (`configs.all`)\ Enables all rules defined in this plugin. -- **Off** (`plugin:functional/off`)\ +- **Off** (`configs.off`)\ Disable all rules defined in this plugin. -- **Disable Type Checked** (`plugin:functional/disable-type-checked`)\ +- **Disable Type Checked** (`configs.disableTypeChecked`)\ Disable all rules that require type information. -- **External Vanilla Recommended** (`plugin:functional/external-vanilla-recommended`)\ +- **External Vanilla Recommended** (`configs.externalVanillaRecommended`)\ Configures recommended [vanilla ESLint](https://www.npmjs.com/package/eslint) rules. -- **External Typescript Recommended** (`plugin:functional/external-typescript-recommended`)\ +- **External Typescript Recommended** (`configs.externalTypescriptRecommended`)\ Configures recommended [TypeScript ESLint](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin) rules. Enabling this ruleset will also enable the vanilla one. @@ -88,7 +94,6 @@ The [below section](#rules) gives details on which rules are enabled by each rul ## Rules - @@ -106,62 +111,57 @@ The [below section](#rules) gives details on which rules are enabled by each rul ### Currying -| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :----------------------------------------------------------- | :----------------------------- | :-------------------------- | :- | :- | :- | :- | :- | :- | -| [functional-parameters](docs/rules/functional-parameters.md) | Enforce functional parameters. | β˜‘οΈ βœ… πŸ”’ ![badge-currying][] | | | | | | | +| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :----------------------------------------------------------- | :----------------------------- | :--------------------------- | :-- | :-- | :-- | :-- | :-- | :-- | +| [functional-parameters](docs/rules/functional-parameters.md) | Enforce functional parameters. | β˜‘οΈ βœ… πŸ”’ ![badge-currying][] | | | | | | | ### No Exceptions -| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :------------------------------------------------------- | :----------------------------------------------------- | :------------------------------- | :- | :--- | :- | :- | :- | :- | -| [no-promise-reject](docs/rules/no-promise-reject.md) | Disallow rejecting promises. | | | | | | | | -| [no-throw-statements](docs/rules/no-throw-statements.md) | Disallow throwing exceptions. | β˜‘οΈ βœ… πŸ”’ ![badge-no-exceptions][] | | | | | | | -| [no-try-statements](docs/rules/no-try-statements.md) | Disallow try-catch[-finally] and try-finally patterns. | πŸ”’ ![badge-no-exceptions][] | | β˜‘οΈ βœ… | | | | | +| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :------------------------------------------------------- | :----------------------------------------------------- | :------------------------------- | :-- | :---- | :-- | :-- | :-- | :-- | +| [no-promise-reject](docs/rules/no-promise-reject.md) | Disallow rejecting promises. | | | | | | | | +| [no-throw-statements](docs/rules/no-throw-statements.md) | Disallow throwing exceptions. | β˜‘οΈ βœ… πŸ”’ ![badge-noExceptions][] | | | | | | | +| [no-try-statements](docs/rules/no-try-statements.md) | Disallow try-catch[-finally] and try-finally patterns. | πŸ”’ ![badge-noExceptions][] | | β˜‘οΈ βœ… | | | | | ### No Mutations -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :--------------------------------------------------------------------------- | :-------------------------------------------------------------- | :------------------------------ | :- | :- | :- | :- | :- | :- | -| [immutable-data](docs/rules/immutable-data.md) | Enforce treating data as immutable. | β˜‘οΈ βœ… πŸ”’ ![badge-no-mutations][] | | | | | πŸ’­ | | -| [no-let](docs/rules/no-let.md) | Disallow mutable variables. | β˜‘οΈ βœ… πŸ”’ ![badge-no-mutations][] | | | | | | | -| [prefer-immutable-types](docs/rules/prefer-immutable-types.md) | Require function parameters to be typed as certain immutability | β˜‘οΈ βœ… πŸ”’ ![badge-no-mutations][] | | | πŸ”§ | πŸ’‘ | πŸ’­ | | -| [prefer-readonly-type](docs/rules/prefer-readonly-type.md) | Prefer readonly types over mutable types. | | | | πŸ”§ | | πŸ’­ | ❌ | -| [type-declaration-immutability](docs/rules/type-declaration-immutability.md) | Enforce the immutability of types based on patterns. | β˜‘οΈ βœ… πŸ”’ ![badge-no-mutations][] | | | πŸ”§ | πŸ’‘ | πŸ’­ | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :--------------------------------------------------------------------------- | :-------------------------------------------------------------- | :------------------------------ | :-- | :---------------------------- | :-- | :-- | :-- | :-- | +| [immutable-data](docs/rules/immutable-data.md) | Enforce treating data as immutable. | β˜‘οΈ βœ… πŸ”’ ![badge-noMutations][] | | ![badge-disableTypeChecked][] | | | πŸ’­ | | +| [no-let](docs/rules/no-let.md) | Disallow mutable variables. | β˜‘οΈ βœ… πŸ”’ ![badge-noMutations][] | | | | | | | +| [prefer-immutable-types](docs/rules/prefer-immutable-types.md) | Require function parameters to be typed as certain immutability | β˜‘οΈ βœ… πŸ”’ ![badge-noMutations][] | | ![badge-disableTypeChecked][] | πŸ”§ | πŸ’‘ | πŸ’­ | | +| [prefer-readonly-type](docs/rules/prefer-readonly-type.md) | Prefer readonly types over mutable types. | | | ![badge-disableTypeChecked][] | πŸ”§ | | πŸ’­ | ❌ | +| [type-declaration-immutability](docs/rules/type-declaration-immutability.md) | Enforce the immutability of types based on patterns. | β˜‘οΈ βœ… πŸ”’ ![badge-noMutations][] | | ![badge-disableTypeChecked][] | πŸ”§ | πŸ’‘ | πŸ’­ | | ### No Other Paradigms -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :------------------------------------------------------- | :------------------------------------------------------------------------ | :------------------------------------ | :- | :--- | :- | :- | :- | :- | -| [no-classes](docs/rules/no-classes.md) | Disallow classes. | β˜‘οΈ βœ… πŸ”’ ![badge-no-other-paradigms][] | | | | | | | -| [no-mixed-types](docs/rules/no-mixed-types.md) | Restrict types so that only members of the same kind are allowed in them. | β˜‘οΈ βœ… πŸ”’ ![badge-no-other-paradigms][] | | | | | πŸ’­ | | -| [no-this-expressions](docs/rules/no-this-expressions.md) | Disallow this access. | πŸ”’ ![badge-no-other-paradigms][] | | β˜‘οΈ βœ… | | | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :------------------------------------------------------- | :------------------------------------------------------------------------ | :----------------------------------- | :-- | :---------------------------- | :-- | :-- | :-- | :-- | +| [no-classes](docs/rules/no-classes.md) | Disallow classes. | β˜‘οΈ βœ… πŸ”’ ![badge-noOtherParadigms][] | | | | | | | +| [no-mixed-types](docs/rules/no-mixed-types.md) | Restrict types so that only members of the same kind are allowed in them. | β˜‘οΈ βœ… πŸ”’ ![badge-noOtherParadigms][] | | ![badge-disableTypeChecked][] | | | πŸ’­ | | +| [no-this-expressions](docs/rules/no-this-expressions.md) | Disallow this access. | πŸ”’ ![badge-noOtherParadigms][] | | β˜‘οΈ βœ… | | | | | ### No Statements -| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :------------------------------------------------------------------- | :--------------------------------------------- | :------------------------------- | :- | :- | :- | :- | :- | :- | -| [no-conditional-statements](docs/rules/no-conditional-statements.md) | Disallow conditional statements. | βœ… πŸ”’ ![badge-no-statements][] | | β˜‘οΈ | | | πŸ’­ | | -| [no-expression-statements](docs/rules/no-expression-statements.md) | Disallow expression statements. | βœ… πŸ”’ ![badge-no-statements][] | | β˜‘οΈ | | | πŸ’­ | | -| [no-loop-statements](docs/rules/no-loop-statements.md) | Disallow imperative loops. | β˜‘οΈ βœ… πŸ”’ ![badge-no-statements][] | | | | | | | -| [no-return-void](docs/rules/no-return-void.md) | Disallow functions that don't return anything. | β˜‘οΈ βœ… πŸ”’ ![badge-no-statements][] | | | | | πŸ’­ | | +| Name | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :------------------------------------------------------------------- | :--------------------------------------------- | :------------------------------- | :-- | :------------------------------- | :-- | :-- | :-- | :-- | +| [no-conditional-statements](docs/rules/no-conditional-statements.md) | Disallow conditional statements. | βœ… πŸ”’ ![badge-noStatements][] | | β˜‘οΈ ![badge-disableTypeChecked][] | | | πŸ’­ | | +| [no-expression-statements](docs/rules/no-expression-statements.md) | Disallow expression statements. | βœ… πŸ”’ ![badge-noStatements][] | | β˜‘οΈ ![badge-disableTypeChecked][] | | | πŸ’­ | | +| [no-loop-statements](docs/rules/no-loop-statements.md) | Disallow imperative loops. | β˜‘οΈ βœ… πŸ”’ ![badge-noStatements][] | | | | | | | +| [no-return-void](docs/rules/no-return-void.md) | Disallow functions that don't return anything. | β˜‘οΈ βœ… πŸ”’ ![badge-noStatements][] | | ![badge-disableTypeChecked][] | | | πŸ’­ | | ### Stylistic -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | -| :--------------------------------------------------------------------- | :--------------------------------------------------------------------- | :- | :- | :- | :- | :- | :- | :- | -| [prefer-property-signatures](docs/rules/prefer-property-signatures.md) | Prefer property signatures over method signatures. | 🎨 | | | | | πŸ’­ | | -| [prefer-tacit](docs/rules/prefer-tacit.md) | Replaces `x => f(x)` with just `f`. | | 🎨 | | | πŸ’‘ | πŸ’­ | | -| [readonly-type](docs/rules/readonly-type.md) | Require consistently using either `readonly` keywords or `Readonly` | 🎨 | | | πŸ”§ | | πŸ’­ | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | ⚠️ | 🚫 | πŸ”§ | πŸ’‘ | πŸ’­ | ❌ | +| :--------------------------------------------------------------------- | :--------------------------------------------------------------------- | :-- | :-- | :---------------------------- | :-- | :-- | :-- | :-- | +| [prefer-property-signatures](docs/rules/prefer-property-signatures.md) | Prefer property signatures over method signatures. | 🎨 | | ![badge-disableTypeChecked][] | | | πŸ’­ | | +| [prefer-tacit](docs/rules/prefer-tacit.md) | Replaces `x => f(x)` with just `f`. | | 🎨 | ![badge-disableTypeChecked][] | | πŸ’‘ | πŸ’­ | | +| [readonly-type](docs/rules/readonly-type.md) | Require consistently using either `readonly` keywords or `Readonly` | 🎨 | | ![badge-disableTypeChecked][] | πŸ”§ | | πŸ’­ | | - [badge-currying]: https://img.shields.io/badge/-currying-red.svg -[badge-no-exceptions]: https://img.shields.io/badge/-no--exceptions-blue.svg -[badge-no-mutations]: https://img.shields.io/badge/-no--mutations-orange.svg -[badge-no-other-paradigms]: https://img.shields.io/badge/-no--other--paradigms-yellow.svg -[badge-no-statements]: https://img.shields.io/badge/-no--statements-purple.svg ## External Recommended Rules diff --git a/cspell.config.yml b/cspell.config.yml index e0c7cfbef..2a51c1228 100644 --- a/cspell.config.yml +++ b/cspell.config.yml @@ -29,7 +29,6 @@ import: - "@cspell/dict-cryptocurrencies/cspell-ext.json" ignorePaths: - - .eslintrc.json - .git - .gitattributes - .gitignore diff --git a/docs/rules/functional-parameters.md b/docs/rules/functional-parameters.md index 544b61f48..007c779f4 100644 --- a/docs/rules/functional-parameters.md +++ b/docs/rules/functional-parameters.md @@ -1,15 +1,22 @@ + + + # Enforce functional parameters (`functional/functional-parameters`) πŸ’Ό This rule is enabled in the following configs: `currying`, β˜‘οΈ `lite`, βœ… `recommended`, πŸ”’ `strict`. + + Disallow use of rest parameters, the `arguments` keyword and enforces that functions take at least 1 parameter. ## Rule Details In functions, `arguments` is a special variable that is implicitly available. -This variable is an array containing the arguments passed to the function call and is often used to allow for any number of parameters to be passed to a function. Rest parameters are another way any number of parameters can be passed to a function. +This variable is an array containing the arguments passed to the function call and is often used to allow for any number +of parameters to be passed to a function. Rest parameters are another way any number of parameters can be passed to a +function. When it comes to functional programming, known and explicit parameters must be used. @@ -137,7 +144,7 @@ Any function that takes multiple parameter can be rewritten as a higher-order fu Example: - + ```js // This function @@ -151,7 +158,8 @@ function add(x) { } ``` -See [Currying](https://en.wikipedia.org/wiki/Currying) and [Higher-order function](https://en.wikipedia.org/wiki/Higher-order_function) on Wikipedia for more information. +See [Currying](https://en.wikipedia.org/wiki/Currying) and +[Higher-order function](https://en.wikipedia.org/wiki/Higher-order_function) on Wikipedia for more information. #### `enforceParameterCount.count` @@ -160,19 +168,23 @@ See [enforceParameterCount](#enforceparametercount). #### `enforceParameterCount.ignoreLambdaExpression` If true, this option allows for the use of lambda function expressions that do not have any parameters. -Here, a lambda function expression refers to any function being defined in place as passed directly as an argument to another function. +Here, a lambda function expression refers to any function being defined in place as passed directly as an argument to +another function. #### `enforceParameterCount.ignoreIIFE` -If true, this option allows for the use of [IIFEs](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) that do not have any parameters. +If true, this option allows for the use of [IIFEs](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) that do not +have any parameters. #### `enforceParameterCount.ignoreGettersAndSetters` -Getters should always take zero parameters, and setter one. If for some reason you want to treat these function like any other function, then you can set this option to `false`. +Getters should always take zero parameters, and setter one. If for some reason you want to treat these function like any +other function, then you can set this option to `false`. ### `ignorePrefixSelector` -This allows for ignore functions where one of the given selectors matches the parent node in the AST of the function node.\ +This allows for ignore functions where one of the given selectors matches the parent node in the AST of the function +node.\ For more information see [ESLint Selectors](https://eslint.org/docs/developer-guide/selectors). Example: diff --git a/docs/rules/immutable-data.md b/docs/rules/immutable-data.md index d572cde6f..3f7a49364 100644 --- a/docs/rules/immutable-data.md +++ b/docs/rules/immutable-data.md @@ -1,10 +1,15 @@ + + + # Enforce treating data as immutable (`functional/immutable-data`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-mutations`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’ΌπŸš« This rule is enabled in the following configs: β˜‘οΈ `lite`, `noMutations`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the `disableTypeChecked` config. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + This rule prohibits syntax that mutates existing objects and arrays via assignment to or deletion of their properties/elements. @@ -133,7 +138,8 @@ It allows for the ability to ignore violations based on a variable's name. This option takes a match string or an array of match strings (not a RegExp pattern). -The match string allows you to specify dot separated `.` object paths and has support for "glob" `*` and "globstar" `**` matching. +The match string allows you to specify dot separated `.` object paths and has support for "glob" `*` and "globstar" `**` +matching. For example: @@ -171,4 +177,5 @@ For example: The following wildcards can be used when specifying a pattern: `**` - Match any depth (including zero). Can only be used as a full accessor.\ -`*` - When used as a full accessor, match the next accessor (there must be one). When used as part of an accessor, match any characters. +`*` - When used as a full accessor, match the next accessor (there must be one). When used as part of an accessor, match +any characters. diff --git a/docs/rules/no-classes.md b/docs/rules/no-classes.md index 56785260e..66c02a38c 100644 --- a/docs/rules/no-classes.md +++ b/docs/rules/no-classes.md @@ -1,8 +1,13 @@ + + + # Disallow classes (`functional/no-classes`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-other-paradigms`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `noOtherParadigms`, βœ… `recommended`, πŸ”’ `strict`. + + Disallow use of the `class` keyword. @@ -50,7 +55,9 @@ console.log(`${dogA.name} is ${getAgeInDogYears(dogA.age)} in dog years.`); ### React Examples -Thanks to libraries like [recompose](https://github.com/acdlite/recompose) and Redux's [React Container components](http://redux.js.org/docs/basics/UsageWithReact.html), there's not much reason to build Components using `React.createClass` or ES6 classes anymore. The `no-this-expressions` rule makes this explicit. +Thanks to libraries like [recompose](https://github.com/acdlite/recompose) and Redux's +[React Container components](http://redux.js.org/docs/basics/UsageWithReact.html), there's not much reason to build +Components using `React.createClass` or ES6 classes anymore. The `no-this-expressions` rule makes this explicit. ```js const Message = React.createClass({ @@ -60,16 +67,22 @@ const Message = React.createClass({ }); ``` -Instead of creating classes, you should use React 0.14's [Stateless Functional Components](https://medium.com/@joshblack/stateless-components-in-react-0-14-f9798f8b992d#.t5z2fdit6) and save yourself some keystrokes: +Instead of creating classes, you should use React 0.14's +[Stateless Functional +Components](https://medium.com/@joshblack/stateless-components-in-react-0-14-f9798f8b992d#.t5z2fdit6) +and save yourself some keystrokes: ```js const Message = ({ message }) =>
{message}
; ``` -What about lifecycle methods like `shouldComponentUpdate`? We can use the [recompose](https://github.com/acdlite/recompose) library to apply these optimizations to your Stateless Functional Components. The [recompose](https://github.com/acdlite/recompose) library relies on the fact that your Redux state is immutable to efficiently implement `shouldComponentUpdate` for you. +What about lifecycle methods like `shouldComponentUpdate`? +We can use the [recompose](https://github.com/acdlite/recompose) library to apply these optimizations to your +Stateless Functional Components. The [recompose](https://github.com/acdlite/recompose) library relies on the fact that +your Redux state is immutable to efficiently implement `shouldComponentUpdate` for you. ```js -import { pure, onlyUpdateForKeys } from "recompose"; +import { onlyUpdateForKeys, pure } from "recompose"; const Message = ({ message }) =>
{message}
; diff --git a/docs/rules/no-conditional-statements.md b/docs/rules/no-conditional-statements.md index dbb560ae2..12ef79a5d 100644 --- a/docs/rules/no-conditional-statements.md +++ b/docs/rules/no-conditional-statements.md @@ -1,19 +1,27 @@ + + + # Disallow conditional statements (`functional/no-conditional-statements`) -πŸ’ΌπŸš« This rule is enabled in the following configs: `no-statements`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the β˜‘οΈ `lite` config. +πŸ’ΌπŸš« This rule is enabled in the following configs: `noStatements`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: `disableTypeChecked`, β˜‘οΈ `lite`. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + This rule disallows conditional statements such as `if` and `switch`. ## Rule Details -Conditional statements are not a good fit for functional style programming as they are not expressions and do not return a value. -Instead consider using the [ternary operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) which is an expression that returns a value: +Conditional statements are not a good fit for functional style programming as they are not expressions and do not return +a value. Instead consider using the +[ternary operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) +which is an expression that returns a value: -For more background see this [blog post](https://hackernoon.com/rethinking-javascript-the-if-statement-b158a61cd6cb) and discussion in [tslint-immutable #54](https://github.com/jonaskello/tslint-immutable/issues/54). +For more background see this [blog post](https://hackernoon.com/rethinking-javascript-the-if-statement-b158a61cd6cb) +and discussion in [tslint-immutable #54](https://github.com/jonaskello/tslint-immutable/issues/54). ### ❌ Incorrect @@ -97,8 +105,8 @@ function foo(error, data) { #### `"ifExhaustive"` -This will only allow conditional statements to exist if every case is taken into account and each has a return statement or other terminal. -In other words, every `if` must have an `else` and every `switch` must have a default case. +This will only allow conditional statements to exist if every case is taken into account and each has a return statement +or other terminal. In other words, every `if` must have an `else` and every `switch` must have a default case. This allows conditional statements to be used like [do expressions](https://github.com/tc39/proposal-do-expressions). ```js @@ -114,4 +122,5 @@ const x = (() => { })(); ``` -Note: Currently this option is not useable with the [no-else-return](https://eslint.org/docs/rules/no-else-return) rule; `else` statements must contain a return statement. +Note: Currently this option is not useable with the [no-else-return](https://eslint.org/docs/rules/no-else-return) rule; +`else` statements must contain a return statement. diff --git a/docs/rules/no-expression-statements.md b/docs/rules/no-expression-statements.md index 7bb180b84..8dfaf8136 100644 --- a/docs/rules/no-expression-statements.md +++ b/docs/rules/no-expression-statements.md @@ -1,12 +1,18 @@ + + + # Disallow expression statements (`functional/no-expression-statements`) -πŸ’ΌπŸš« This rule is enabled in the following configs: `no-statements`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the β˜‘οΈ `lite` config. +πŸ’ΌπŸš« This rule is enabled in the following configs: `noStatements`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: `disableTypeChecked`, β˜‘οΈ `lite`. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + -This rule checks that the value of an expression is assigned to a variable and thus helps promote side-effect free (pure) functions. +This rule checks that the value of an expression is assigned to a variable and thus helps promote side-effect free +(pure) functions. ## Rule Details @@ -46,8 +52,6 @@ foo(bar); const baz = foo(bar); ``` - - ```js /* eslint functional/no-expression-statements: ["error", { "ignoreVoid": true }] */ @@ -83,7 +87,8 @@ When enabled, expression of type void are not flagged as violations. This option Like `ignoreVoid` but instead does not flag function calls that always only return `this`. -Limitation: The function declaration must explicitly use `return this`; equivalents (such as assign this to a variable first, that is then returned) won't be considered valid. +Limitation: The function declaration must explicitly use `return this`; equivalents +(such as assign this to a variable first, that is then returned) won't be considered valid. ### `ignoreCodePattern` diff --git a/docs/rules/no-let.md b/docs/rules/no-let.md index 100c85fd5..9ab716f57 100644 --- a/docs/rules/no-let.md +++ b/docs/rules/no-let.md @@ -1,8 +1,13 @@ + + + # Disallow mutable variables (`functional/no-let`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-mutations`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `noMutations`, βœ… `recommended`, πŸ”’ `strict`. + + This rule should be combined with ESLint's built-in `no-var` rule to enforce that all variables are declared as `const`. @@ -82,36 +87,37 @@ const recommendedAndLiteOptions = { ### `allowInForLoopInit` -If set, `let`s inside of for a loop initializer are allowed. This does not include for...of or for...in loops as they should use `const` instead. +If set, `let`s inside of for a loop initializer are allowed. This does not include for...of or for...in loops as they +should use `const` instead. -#### βœ… Correct +#### ❌ Incorrect - + ```js /* eslint functional/no-let: ["error", { "allowInForLoopInit": true } ] */ -for (let i = 0; i < array.length; i++) {} +for (let element of array) { +} ``` -#### ❌ Incorrect - ```js -/* eslint functional/no-let: "error" */ +/* eslint functional/no-let: ["error", { "allowInForLoopInit": true } ] */ -for (let element of array) { +for (let [index, element] of array.entries()) { } ``` - +#### βœ… Correct + + ```js -/* eslint functional/no-let: "error" */ +/* eslint functional/no-let: ["error", { "allowInForLoopInit": true } ] */ -for (let [index, element] of array.entries()) { -} +for (let i = 0; i < array.length; i++) {} ``` ### `allowInFunctions` diff --git a/docs/rules/no-loop-statements.md b/docs/rules/no-loop-statements.md index d36ed693a..dcab048ae 100644 --- a/docs/rules/no-loop-statements.md +++ b/docs/rules/no-loop-statements.md @@ -1,8 +1,13 @@ + + + # Disallow imperative loops (`functional/no-loop-statements`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-statements`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `noStatements`, βœ… `recommended`, πŸ”’ `strict`. + + This rule disallows for loop statements, including `for`, `for...of`, `for...in`, `while`, and `do...while`. @@ -11,7 +16,9 @@ This rule disallows for loop statements, including `for`, `for...of`, `for...in` In functional programming we want everything to be an expression that returns a value. Loops in JavaScript are statements so they are not a good fit for a functional programming style. Instead consider using `map`, `reduce` or similar. -For more background see this [blog post](https://hackernoon.com/rethinking-javascript-death-of-the-for-loop-c431564c84a8) and discussion in [tslint-immutable #54](https://github.com/jonaskello/tslint-immutable/issues/54). +For more background see this +[blog post](https://hackernoon.com/rethinking-javascript-death-of-the-for-loop-c431564c84a8) and discussion in +[tslint-immutable #54](https://github.com/jonaskello/tslint-immutable/issues/54). ### ❌ Incorrect diff --git a/docs/rules/no-mixed-types.md b/docs/rules/no-mixed-types.md index d060823b3..d6518ead8 100644 --- a/docs/rules/no-mixed-types.md +++ b/docs/rules/no-mixed-types.md @@ -1,12 +1,18 @@ + + + # Restrict types so that only members of the same kind are allowed in them (`functional/no-mixed-types`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-other-paradigms`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’ΌπŸš« This rule is enabled in the following configs: β˜‘οΈ `lite`, `noOtherParadigms`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the `disableTypeChecked` config. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + -This rule enforces that an aliased type literal or an interface only has one type of members, eg. only data properties or only functions. +This rule enforces that an aliased type literal or an interface only has one type of members, eg. only data properties +or only functions. ## Rule Details @@ -27,8 +33,6 @@ type Foo = { ### βœ… Correct - - ```ts /* eslint functional/no-mixed-types: "error" */ @@ -38,7 +42,7 @@ type Foo = { }; ``` - + ```ts /* eslint functional/no-mixed-types: "error" */ diff --git a/docs/rules/no-promise-reject.md b/docs/rules/no-promise-reject.md index 9501d95c7..bd4312cff 100644 --- a/docs/rules/no-promise-reject.md +++ b/docs/rules/no-promise-reject.md @@ -1,6 +1,11 @@ + + + # Disallow rejecting promises (`functional/no-promise-reject`) + + This rule disallows rejecting promises. diff --git a/docs/rules/no-return-void.md b/docs/rules/no-return-void.md index 8cb51a5cd..49a05ed5c 100644 --- a/docs/rules/no-return-void.md +++ b/docs/rules/no-return-void.md @@ -1,10 +1,15 @@ + + + # Disallow functions that don't return anything (`functional/no-return-void`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-statements`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’ΌπŸš« This rule is enabled in the following configs: β˜‘οΈ `lite`, `noStatements`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the `disableTypeChecked` config. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + Disallow functions that are declared as returning nothing. @@ -15,7 +20,9 @@ In functional programming functions must return something, they cannot return no By default, this rule allows function to return `undefined` and `null`. Note: For performance reasons, this rule does not check implicit return types. -We recommend using the rule [@typescript-eslint/explicit-function-return-type](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/explicit-function-return-type.md) in conjunction with this rule. +We recommend using the rule +[@typescript-eslint/explicit-function-return-type](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/explicit-function-return-type.md) +in conjunction with this rule. ### ❌ Incorrect diff --git a/docs/rules/no-this-expressions.md b/docs/rules/no-this-expressions.md index 865699999..792bf0ec8 100644 --- a/docs/rules/no-this-expressions.md +++ b/docs/rules/no-this-expressions.md @@ -1,8 +1,13 @@ + + + # Disallow this access (`functional/no-this-expressions`) -πŸ’ΌπŸš« This rule is enabled in the following configs: `no-other-paradigms`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: β˜‘οΈ `lite`, βœ… `recommended`. +πŸ’ΌπŸš« This rule is enabled in the following configs: `noOtherParadigms`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: β˜‘οΈ `lite`, βœ… `recommended`. + + ## Rule Details diff --git a/docs/rules/no-throw-statements.md b/docs/rules/no-throw-statements.md index aed2fb89d..40b8c48b7 100644 --- a/docs/rules/no-throw-statements.md +++ b/docs/rules/no-throw-statements.md @@ -1,8 +1,13 @@ + + + # Disallow throwing exceptions (`functional/no-throw-statements`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-exceptions`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `noExceptions`, βœ… `recommended`, πŸ”’ `strict`. + + This rule disallows the `throw` keyword. @@ -23,6 +28,8 @@ throw new Error("Something went wrong."); ### βœ… Correct + + ```js /* eslint functional/no-throw-statements: "error" */ @@ -31,6 +38,8 @@ function divide(x, y) { } ``` + + ```js /* eslint functional/no-throw-statements: "error" */ diff --git a/docs/rules/no-try-statements.md b/docs/rules/no-try-statements.md index e7dd4c3bc..a08d1f289 100644 --- a/docs/rules/no-try-statements.md +++ b/docs/rules/no-try-statements.md @@ -1,8 +1,13 @@ + + + # Disallow try-catch[-finally] and try-finally patterns (`functional/no-try-statements`) -πŸ’ΌπŸš« This rule is enabled in the following configs: `no-exceptions`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: β˜‘οΈ `lite`, βœ… `recommended`. +πŸ’ΌπŸš« This rule is enabled in the following configs: `noExceptions`, πŸ”’ `strict`. This rule is _disabled_ in the following configs: β˜‘οΈ `lite`, βœ… `recommended`. + + This rule disallows the `try` keyword. diff --git a/docs/rules/prefer-immutable-types.md b/docs/rules/prefer-immutable-types.md index 6e8bdb77e..e61dc9dff 100644 --- a/docs/rules/prefer-immutable-types.md +++ b/docs/rules/prefer-immutable-types.md @@ -1,12 +1,16 @@ + + + # Require function parameters to be typed as certain immutability (`functional/prefer-immutable-types`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-mutations`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’ΌπŸš« This rule is enabled in the following configs: β˜‘οΈ `lite`, `noMutations`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the `disableTypeChecked` config. πŸ”§πŸ’‘ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix) and manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions). πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + ## Rule Details @@ -118,6 +122,7 @@ interface Foo4 { ### βœ… Correct + ```ts /* eslint functional/prefer-immutable-types: "error" */ @@ -372,8 +377,6 @@ callback's parameters is undesirable. A boolean to specify if checking classes should be ignored. `false` by default. - - #### ❌ Incorrect @@ -403,8 +406,6 @@ export const acceptsCallback: AcceptsCallback; #### βœ… Correct - - ```ts /* eslint functional/prefer-immutable-types: ["error", { "ignoreInferredTypes": true }] */ @@ -428,8 +429,6 @@ export const acceptsCallback: AcceptsCallback;
- - ### `parameters.*`, `returnTypes.*`, `variables.*` Override the options specifically for the given type of types. @@ -456,8 +455,11 @@ If set to `false`, the no suggestions will be enabled. Configure how the suggestion should fix issue of each of the different enforcement levels. -By default we only configure the suggestions to correct shallow readonly violations as TypeScript itself provides a utility type for this. -If you have access to other utility types (such as [type-fest's `ReadonlyDeep`](https://github.com/sindresorhus/type-fest#:~:text=set%20to%20optional.-,ReadonlyDeep,-%2D%20Create%20a%20deeply)), you can configure the fixer to use them with this option. +By default we only configure the suggestions to correct shallow readonly violations as TypeScript itself provides a +utility type for this. +If you have access to other utility types (such as +[type-fest's `ReadonlyDeep`](https://github.com/sindresorhus/type-fest#:~:text=set%20to%20optional.-,ReadonlyDeep,-%2D%20Create%20a%20deeply) +), you can configure the fixer to use them with this option. Example using `ReadonlyDeep` instead of `Readonly`: diff --git a/docs/rules/prefer-property-signatures.md b/docs/rules/prefer-property-signatures.md index 967d652fc..9103278b4 100644 --- a/docs/rules/prefer-property-signatures.md +++ b/docs/rules/prefer-property-signatures.md @@ -1,16 +1,22 @@ + + + # Prefer property signatures over method signatures (`functional/prefer-property-signatures`) -πŸ’Ό This rule is enabled in the 🎨 `stylistic` config. +πŸ’ΌπŸš« This rule is enabled in the 🎨 `stylistic` config. This rule is _disabled_ in the `disableTypeChecked` config. πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + ## Rule Details There are two ways function members can be declared in interfaces and type aliases; `MethodSignature` and `PropertySignature`. -The `MethodSignature` and the `PropertySignature` forms seem equivalent, but only the `PropertySignature` form can have a `readonly` modifier. +The `MethodSignature` and the `PropertySignature` forms seem equivalent, but only the `PropertySignature` form can have +a `readonly` modifier. Because of this any `MethodSignature` will be mutable unless wrapped in the `Readonly` type. It should be noted however that the `PropertySignature` form does not support overloading. @@ -29,7 +35,7 @@ type Foo = { ### βœ… Correct - + ```ts /* eslint functional/prefer-property-signatures: "error" */ diff --git a/docs/rules/prefer-readonly-type.md b/docs/rules/prefer-readonly-type.md index f0f2e4ac2..064500657 100644 --- a/docs/rules/prefer-readonly-type.md +++ b/docs/rules/prefer-readonly-type.md @@ -1,12 +1,19 @@ + + + # Prefer readonly types over mutable types (`functional/prefer-readonly-type`) ❌ This rule is deprecated. It was replaced by [`functional/prefer-immutable-types`](prefer-immutable-types.md),[`functional/type-declaration-immutability`](type-declaration-immutability.md). +🚫 This rule is _disabled_ in the `disableTypeChecked` config. + πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + This rule has been replaced by [prefer-immutable-parameter-types](./prefer-immutable-parameter-types.md) and @@ -61,11 +68,12 @@ const transformedPoint = { ...point, x: 99 }; A variable declared as `const` can not be reassigned, however what's in the variable can be mutated. This is why the `readonly` modifier exists. It prevents you from assigning a value to the result of a member expression. -This is just as effective as using `Object.freeze()` to prevent mutations. However the `readonly` modifier has **no run-time cost**, and is enforced at **compile time**. +This is just as effective as using `Object.freeze()` to prevent mutations. +However the `readonly` modifier has **no run-time cost**, and is enforced at **compile time**. The `readonly` modifier also works on indexers: - + ```ts const foo: { readonly [key: string]: number } = { a: 1, b: 2 }; @@ -142,7 +150,7 @@ Doesn't check the return type of functions. A boolean to specify if checking for `readonly` should apply to classes. `false` by default. -Examples of **incorrect** code for the `{ "ignoreClass": false }` option: +#### ❌ Incorrect @@ -154,7 +162,7 @@ class { } ``` -Examples of **correct** code for the `{ "ignoreClass": true }` option: +#### βœ… Correct ```ts /* eslint functional/prefer-readonly-type: ["error", { "ignoreClass": true }] */ @@ -168,7 +176,7 @@ class C { A boolean to specify if checking for `readonly` should apply to interfaces. `false` by default. -Examples of **incorrect** code for the `{ "ignoreInterface": false }` option: +#### ❌ Incorrect @@ -180,7 +188,7 @@ interface I { } ``` -Examples of **correct** code for the `{ "ignoreInterface": true }` option: +#### βœ… Correct ```ts /* eslint functional/prefer-readonly-type: ["error", { "ignoreInterface": true }] */ @@ -192,9 +200,10 @@ interface I { ### `ignoreCollections` -A boolean to specify if checking for `readonly` should apply to mutable collections (Array, Tuple, Set, and Map). Helpful for migrating from tslint-immutable to this plugin. `false` by default. +A boolean to specify if checking for `readonly` should apply to mutable collections (Array, Tuple, Set, and Map). +Helpful for migrating from tslint-immutable to this plugin. `false` by default. -Examples of **incorrect** code for the `{ "ignoreCollections": false }` option: +#### ❌ Incorrect @@ -207,7 +216,7 @@ const baz: Set = new Set(); const qux: Map = new Map(); ``` -Examples of **correct** code for the `{ "ignoreCollections": true }` option: +#### βœ… Correct ```ts /* eslint functional/prefer-readonly-type: ["error", { "ignoreCollections": true }] */ diff --git a/docs/rules/prefer-tacit.md b/docs/rules/prefer-tacit.md index 7b2580018..95f0f0aa8 100644 --- a/docs/rules/prefer-tacit.md +++ b/docs/rules/prefer-tacit.md @@ -1,12 +1,17 @@ + + + # Replaces `x => f(x)` with just `f` (`functional/prefer-tacit`) -⚠️ This rule _warns_ in the 🎨 `stylistic` config. +⚠️🚫 This rule _warns_ in the 🎨 `stylistic` config. This rule is _disabled_ in the `disableTypeChecked` config. πŸ’‘ This rule is manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions). πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + This rule enforces using functions directly if they can be without wrapping them. diff --git a/docs/rules/readonly-type.md b/docs/rules/readonly-type.md index baa765d9b..1b1311af3 100644 --- a/docs/rules/readonly-type.md +++ b/docs/rules/readonly-type.md @@ -1,12 +1,17 @@ + + + # Require consistently using either `readonly` keywords or `Readonly` (`functional/readonly-type`) -πŸ’Ό This rule is enabled in the 🎨 `stylistic` config. +πŸ’ΌπŸš« This rule is enabled in the 🎨 `stylistic` config. This rule is _disabled_ in the `disableTypeChecked` config. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + This rule enforces consistently using either `readonly` keywords or `Readonly`. diff --git a/docs/rules/settings/immutability.md b/docs/rules/settings/immutability.md index 35de20ea8..8a98f5617 100644 --- a/docs/rules/settings/immutability.md +++ b/docs/rules/settings/immutability.md @@ -32,13 +32,13 @@ readonly, then no override will be applied. "name": "ReadonlyArray", }, "to": "Immutable", - "from": "ReadonlyDeep" - } - ] - } + "from": "ReadonlyDeep", + }, + ], + }, }, "rules": { // ... - } + }, } ``` diff --git a/docs/rules/type-declaration-immutability.md b/docs/rules/type-declaration-immutability.md index 0c0dffed4..07d8f06df 100644 --- a/docs/rules/type-declaration-immutability.md +++ b/docs/rules/type-declaration-immutability.md @@ -1,12 +1,17 @@ + + + # Enforce the immutability of types based on patterns (`functional/type-declaration-immutability`) -πŸ’Ό This rule is enabled in the following configs: β˜‘οΈ `lite`, `no-mutations`, βœ… `recommended`, πŸ”’ `strict`. +πŸ’ΌπŸš« This rule is enabled in the following configs: β˜‘οΈ `lite`, `noMutations`, βœ… `recommended`, πŸ”’ `strict`. This rule is _disabled_ in the `disableTypeChecked` config. πŸ”§πŸ’‘ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix) and manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions). πŸ’­ This rule requires [type information](https://typescript-eslint.io/linting/typed-linting). + + Require type alias declarations and interfaces that imply some level of immutability to comply to it. @@ -45,8 +50,6 @@ type MutableElement = Readonly<{ ### βœ… Correct - - ```ts /* eslint functional/type-declaration-immutability: "error" */ diff --git a/docs/user-guide/migrating-from-tslint.md b/docs/user-guide/migrating-from-tslint.md index f36977966..5b9019536 100644 --- a/docs/user-guide/migrating-from-tslint.md +++ b/docs/user-guide/migrating-from-tslint.md @@ -8,10 +8,12 @@ This guide is intended to help those who are using tslint-immutable to migrate t The ESLint version of `tslint.json` (the configuration file) is `.eslintrc`. See [ESLint's docs](https://eslint.org/docs/user-guide/configuring) for more information on this file. -Out of the box, ESLint does not understand TypeScript. To get ESLint to understand it we need to change the default parser to one that understands it. -This is where [@typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) comes in. -In the config file, we can specify the parser to be used with the "parser" key. Any extra parser configuration can then be specified under the "parserOptions" key. -In order for the parser to have access to type information, it needs access to your `tsconfig.json`; you'll need to specify this under "parserOptions" -> "project". +Out of the box, ESLint does not understand TypeScript. To get ESLint to understand it we need to change the default +parser to one that understands it. This is where +[@typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) comes in. In the config file, we can +specify the parser to be used with the "parser" key. Any extra parser configuration can then be specified under the +"parserOptions" key. In order for the parser to have access to type information, it needs access to your +`tsconfig.json`; you'll need to specify this under "parserOptions" -> "project". ### Example config @@ -22,17 +24,13 @@ In order for the parser to have access to type information, it needs access to y "parserOptions": { "ecmaVersion": 10, "project": "./tsconfig.json", - "sourceType": "module" + "sourceType": "module", }, - "plugins": [ - "functional" - ], + "plugins": ["functional"], "env": { - "es6": true + "es6": true, }, - "extends": [ - "plugin:functional/recommended" - ], + "extends": ["plugin:functional/recommended"], "rules": { // These rules will be applied to all linted file. }, @@ -41,9 +39,9 @@ In order for the parser to have access to type information, it needs access to y "files": ["*.ts", "*.tsx"], "rules": { // These rules will only be applied to ts file. - } - } - ] + }, + }, + ], } ``` diff --git a/eslint-doc-generator.config.ts b/eslint-doc-generator.config.ts index 655eab6b5..98676284b 100644 --- a/eslint-doc-generator.config.ts +++ b/eslint-doc-generator.config.ts @@ -1,27 +1,9 @@ -import { type GenerateOptions } from "eslint-doc-generator"; +import type { GenerateOptions } from "eslint-doc-generator"; import { format, resolveConfig } from "prettier"; export default { configEmoji: [["lite", "β˜‘οΈ"]], - ignoreConfig: [ - "all", - "off", - "disable-type-checked", - "flat/all", - "flat/currying", - "flat/disable-type-checked", - "flat/external-typescript-recommended", - "flat/external-vanilla-recommended", - "flat/lite", - "flat/no-exceptions", - "flat/no-mutations", - "flat/no-other-paradigms", - "flat/no-statements", - "flat/off", - "flat/recommended", - "flat/strict", - "flat/stylistic", - ], + ignoreConfig: ["all", "off", "disable-type-checked"], ruleDocSectionInclude: ["Rule Details"], ruleListSplit: "meta.docs.category", postprocess: (doc) => diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..c7b5711d4 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,138 @@ +// @ts-check +import rsEslint from "@rebeccastevens/eslint-config"; +// @ts-expect-error - Untyped. +import pluginEslint from "eslint-plugin-eslint-plugin"; +import glob from "fast-glob"; +import { tsImport } from "tsx/esm/api"; + +const local = await tsImport("./src/index.ts", import.meta.url).then( + (r) => r.default, +); + +export default rsEslint( + { + projectRoot: import.meta.dirname, + mode: "library", + typescript: { + unsafe: "off", + parserOptions: { + tsconfigRootDir: import.meta.dirname, + projectService: { + defaultProject: "./tsconfig.json", + allowDefaultProject: glob + .sync("./**/*.md", { + cwd: import.meta.dirname, + ignore: [ + "**/node_modules/**", + "**/coverage/**", + "**/tests-compiled/**", + ], + }) + .map((file) => `${file}/*`), + maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING: 1000, + }, + }, + }, + formatters: true, + functional: "lite", + jsonc: true, + markdown: { + enableTypeRequiredRules: true, + overrides: { + "functional/immutable-data": "off", + "functional/no-loop-statements": "off", + "functional/readonly-type": "off", + }, + }, + stylistic: true, + yaml: true, + }, + { + plugins: { + eslint: pluginEslint, + }, + rules: { + // Some types say they have nonnullable properties, but they don't always. + "ts/no-unnecessary-condition": "off", + + // Temp + "functional/prefer-immutable-types": "off", + "functional/no-throw-statements": "off", + }, + }, + { + files: ["src/**/*"], + rules: { + "eslint/fixer-return": "error", + "eslint/meta-property-ordering": "error", + "eslint/no-deprecated-context-methods": "error", + "eslint/no-deprecated-report-api": "error", + "eslint/no-missing-message-ids": "error", + "eslint/no-missing-placeholders": "error", + "eslint/no-property-in-node": "error", + "eslint/no-unused-message-ids": "error", + "eslint/no-unused-placeholders": "error", + "eslint/no-useless-token-range": "error", + "eslint/prefer-message-ids": "error", + "eslint/prefer-object-rule": "error", + "eslint/prefer-placeholders": "error", + "eslint/prefer-replace-text": "error", + "eslint/report-message-format": "error", + "eslint/require-meta-docs-description": "error", + "eslint/require-meta-docs-url": "error", + "eslint/require-meta-fixable": "error", + "eslint/require-meta-has-suggestions": "error", + "eslint/require-meta-schema": "error", + "eslint/require-meta-type": "error", + "eslint/consistent-output": "error", + "eslint/no-identical-tests": "error", + "eslint/no-only-tests": "error", + "eslint/prefer-output-null": "error", + "eslint/test-case-property-ordering": "error", + "eslint/test-case-shorthand-strings": "error", + }, + }, + { + files: ["src/configs/**/*", "src/index.ts"], + rules: { + "ts/naming-convention": "off", + }, + }, + { + files: ["src/utils/type-guards.ts", "src/utils/node-types.ts"], + rules: { + "jsdoc/require-jsdoc": "off", + }, + }, + { + files: ["src/utils/conditional-imports/**/*"], + rules: { + "@typescript-eslint/no-var-requires": "off", + "functional/functional-parameters": "off", + "functional/no-try-statements": "off", + "import/no-extraneous-dependencies": [ + "error", + { + peerDependencies: true, + }, + ], + "unicorn/prefer-module": "off", + }, + }, + { + files: ["tests/**/*"], + rules: { + "functional/no-return-void": "off", + "jsdoc/require-jsdoc": "off", + }, + }, +) + // Use our local version of the plugin. + .onResolved((configs) => { + // eslint-disable-next-line functional/no-loop-statements + for (const config of configs) { + if (config?.plugins?.["functional"] !== undefined) { + config.plugins["functional"] = local; + } + } + }); diff --git a/knip.jsonc b/knip.jsonc index 2b0bc130a..3d074cb41 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -1,11 +1,17 @@ { "$schema": "node_modules/knip/schema-jsonc.json", - "entry": [ - "src/flat.ts!", - "src/classic.ts!", - "tests/**/*.test.ts", + "entry": ["src/index.ts!", "tests/**/*.test.ts"], + "project": ["src/**/*.ts!", "tests/**/*.{js,ts}"], + "ignore": ["lib/**", "tests/fixture/file.ts"], + "ignoreDependencies": [ + // Unknown reason for issue. + "@vitest/coverage-istanbul", + "@vitest/coverage-v8", + + // Lint staged + "tsc-files", + + // Eslint + "@eslint/compat" ], - "project": ["src/**/*.ts!", "tests/**/*.ts"], - "ignore": ["tests/fixture/file.ts", "src/utils/conditional-imports/esm/**/*"], - "ignoreDependencies": ["@types/eslint", "@vitest/coverage-istanbul"], } diff --git a/package.json b/package.json index 2670c23f5..d39eb01cb 100644 --- a/package.json +++ b/package.json @@ -30,145 +30,134 @@ "name": "Rebecca Stevens", "email": "rebecca.stevens@outlook.co.nz" }, - "contributors": [ - "Jonas Kello" - ], + "contributors": ["Jonas Kello"], + "type": "module", "exports": { - ".": { - "types": { - "import": "./lib/classic.d.mts", - "require": "./lib/classic.d.cts" - }, - "import": "./lib/classic.mjs", - "require": "./lib/classic.cjs" - }, - "./flat": { - "types": { - "import": "./lib/flat.d.mts", - "require": "./lib/flat.d.cts" - }, - "import": "./lib/flat.mjs", - "require": "./lib/flat.cjs" - } + "types": "./lib/index.d.ts", + "default": "./lib/index.js" }, - "main": "lib/classic.cjs", - "types": "lib/classic.d.cts", - "files": [ - "lib/", - "package.json", - "LICENSE", - "README.md" - ], + "files": ["lib/", "package.json", "LICENSE", "README.md"], "scripts": { "build": "pnpm run build:node && pnpm run build:docs", "build-tests": "rimraf tests-compiled && tsc -p tsconfig.tests-compiled.json && tsc-alias -p tsconfig.tests-compiled.json", "build:docs": "eslint-doc-generator", "build:node": "rimraf lib && rollup -c rollup.config.ts --configPlugin rollup-plugin-ts", - "lint": "pnpm run build:node && pnpm run lint:js && pnpm run lint:md && pnpm lint:eslint-docs && pnpm run lint:prettier && pnpm run lint:knip && pnpm run lint:spelling && pnpm run lint:packages", - "lint-fix": "pnpm run build:node && pnpm run lint:js-fix && pnpm lint:eslint-docs-fix && pnpm run lint:prettier-fix && pnpm run lint:packages-fix", + "lint": "eslint && pnpm run lint:md && pnpm lint:eslint-docs && pnpm run lint:spelling && pnpm run lint:knip && pnpm run lint:packages", + "lint-fix": "pnpm run build && eslint --fix && pnpm run lint:md-fix && pnpm run lint:packages-fix", "lint:eslint-docs": "eslint-doc-generator --check", "lint:eslint-docs-fix": "pnpm build:docs", - "lint:js": "eslint .", - "lint:js-fix": "eslint . --fix", + "lint:js": "eslint \"**/*.?([cm])[jt]s?(x)\"", + "lint:js-fix": "eslint \"**/*.?([cm])[jt]s?(x)\" --fix", "lint:knip": "pnpm run lint:knip:development && pnpm run lint:knip:production", "lint:knip:development": "knip --exclude exports,nsExports,types,nsTypes", "lint:knip:production": "knip --production --strict --exclude exports,nsExports,types,nsTypes", - "lint:md": "markdownlint \"**/*.md\" --config=.markdownlint.json --ignore-path=.markdownlintignore", + "lint:md": "markdownlint-cli2", + "lint:md-fix": "markdownlint-cli2 --fix", + "lint:md-full": "pnpm run lint:md && eslint \"**/*.md\"", + "lint:md-full-fix": "pnpm run lint:md-fix && eslint \"**/*.md\" --fix", "lint:packages": "pnpm dedupe --check", "lint:packages-fix": "pnpm dedupe", - "lint:prettier": "prettier \"**/*\" --ignore-unknown --list-different", - "lint:prettier-fix": "prettier \"**/*\" --ignore-unknown --write", "lint:spelling": "cspell \"**\" \".github/**/*\"", + "lint:yaml": "eslint \"**/*.y?(a)ml\"", + "lint:yaml-fix": "eslint \"**/*.y?(a)ml\" --fix", "prepare": "husky", "release": "semantic-release", "test": "pnpm run test:js", "test-compiled": "USE_COMPILED_TESTS=1 vitest run --coverage", "test-work": "vitest", "test:js": "vitest --coverage", - "type-check": "tsc -p tsconfig.build.json --noEmit", - "verify": "pnpm run lint && pnpm run type-check && pnpm run build-tests && pnpm run test-compiled" + "typecheck": "tsc -p tsconfig.build.json --noEmit", + "verify": "pnpm run lint && pnpm run typecheck && pnpm run build-tests && pnpm run test-compiled" + }, + "overrides": { + "eslint-plugin-functional": "link:." }, "dependencies": { - "@typescript-eslint/utils": "^7.3.1", - "deepmerge-ts": "^5.1.0", - "escape-string-regexp": "^4.0.0", - "is-immutable-type": "^4.0.0", - "semver": "^7.6.0", + "@typescript-eslint/utils": "^8.0.0", + "deepmerge-ts": "^7.1.0", + "escape-string-regexp": "^5.0.0", + "is-immutable-type": "^5.0.0", "ts-api-utils": "^1.3.0" }, "devDependencies": { "@babel/eslint-parser": "7.25.1", "@cspell/dict-cryptocurrencies": "5.0.0", - "@rebeccastevens/eslint-config": "2.0.11", + "@eslint/compat": "1.1.1", + "@rebeccastevens/eslint-config": "3.0.0", "@semantic-release/changelog": "6.0.3", "@semantic-release/commit-analyzer": "13.0.0", "@semantic-release/git": "10.0.1", "@semantic-release/github": "10.1.3", "@semantic-release/npm": "12.0.1", "@semantic-release/release-notes-generator": "14.0.1", + "@stylistic/eslint-plugin": "2.6.1", "@types/dedent": "0.7.2", - "@types/eslint": "9.6.0", - "@types/node": "16.18.93", - "@types/rollup-plugin-auto-external": "2.0.5", - "@types/semver": "7.5.8", - "@typescript-eslint/eslint-plugin": "7.4.0", - "@typescript-eslint/parser": "7.4.0", - "@typescript-eslint/rule-tester": "7.4.0", + "@types/espree": "10.1.0", + "@types/node": "18.18.0", + "@typescript-eslint/eslint-plugin": "8.0.0", + "@typescript-eslint/parser": "8.0.0", + "@typescript-eslint/rule-tester": "8.0.0", "@vitest/coverage-istanbul": "2.0.5", "@vitest/coverage-v8": "2.0.5", - "commitizen": "4.3.0", - "conventional-commit-types": "3.0.0", - "cspell": "8.13.0", + "cspell": "8.13.1", "deassert": "1.0.2", - "dedent": "1.5.1", - "eslint": "8.57.0", + "dedent": "1.5.3", + "eslint": "9.8.0", "eslint-config-prettier": "9.1.0", - "eslint-doc-generator": "1.7.0", + "eslint-doc-generator": "1.7.1", + "eslint-flat-config-utils": "0.3.0", "eslint-import-resolver-typescript": "3.6.1", + "eslint-merge-processors": "0.1.0", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-eslint-plugin": "6.1.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.2", - "eslint-plugin-markdown": "3.0.1", - "eslint-plugin-n": "17.9.0", + "eslint-plugin-eslint-plugin": "6.2.0", + "eslint-plugin-format": "0.1.2", + "eslint-plugin-functional": "link:.", + "eslint-plugin-import-x": "3.1.0", + "eslint-plugin-jsdoc": "48.11.0", + "eslint-plugin-jsonc": "2.16.0", + "eslint-plugin-markdown": "5.1.0", + "eslint-plugin-n": "17.10.2", + "eslint-plugin-no-only-tests": "3.1.0", "eslint-plugin-optimize-regex": "1.2.1", - "eslint-plugin-prettier": "5.1.3", "eslint-plugin-promise": "7.0.0", - "eslint-plugin-sonarjs": "0.25.0", - "eslint-plugin-unicorn": "51.0.1", - "eslint-plugin-vitest": "0.4.1", - "espree": "10.0.1", - "husky": "9.0.11", - "knip": "5.7.0", - "lint-staged": "15.2.2", - "markdownlint": "0.34.0", - "markdownlint-cli": "0.39.0", - "prettier": "3.2.5", - "prettier-plugin-multiline-arrays": "3.0.4", - "prettier-plugin-packagejson": "2.4.14", + "eslint-plugin-regexp": "2.6.0", + "eslint-plugin-sonarjs": "1.0.4", + "eslint-plugin-unicorn": "55.0.0", + "eslint-plugin-vitest": "0.5.4", + "eslint-plugin-yml": "1.14.0", + "espree": "10.1.0", + "fast-glob": "3.3.2", + "husky": "9.1.4", + "jsonc-eslint-parser": "2.4.0", + "knip": "5.27.0", + "lint-staged": "15.2.8", + "markdownlint-cli2": "0.13.0", + "prettier": "3.3.3", + "prettier-plugin-packagejson": "2.5.1", "rimraf": "6.0.1", - "rollup": "4.13.2", - "rollup-plugin-auto-external": "2.0.0", + "rollup": "4.20.0", "rollup-plugin-ts": "3.4.5", "semantic-release": "24.0.0", "semantic-release-replace-plugin": "1.2.7", + "tsc-alias": "1.8.10", "tsc-files": "1.1.4", - "tsconfig-paths": "4.2.0", - "typescript": "5.4.3", + "tsx": "4.16.5", + "typescript": "5.5.4", "vite-tsconfig-paths": "4.3.2", - "vitest": "2.0.5" + "vitest": "2.0.5", + "yaml-eslint-parser": "1.2.3" }, "peerDependencies": { - "eslint": "^8.0.0 || ^9.0.0", - "typescript": ">=4.3.5" + "eslint": "^9.0.0", + "typescript": ">=4.7.4" }, "peerDependenciesMeta": { "typescript": { "optional": true } }, - "packageManager": "pnpm@8.15.5", + "packageManager": "pnpm@9.6.0", "engines": { - "node": ">=16.10.0" + "node": ">=v18.18.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc19d7f9a..88581f24f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,29 +1,9 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - '@typescript-eslint/utils': - specifier: ^7.3.1 - version: 7.4.0(eslint@8.57.0)(typescript@5.4.3) - deepmerge-ts: - specifier: ^5.1.0 - version: 5.1.0 - escape-string-regexp: - specifier: ^4.0.0 - version: 4.0.0 - is-immutable-type: - specifier: ^4.0.0 - version: 4.0.0(eslint@8.57.0)(typescript@5.4.3) - semver: - specifier: ^7.6.0 - version: 7.6.3 - ts-api-utils: - specifier: ^1.3.0 - version: 1.3.0(typescript@5.4.3) - devDependencies: '@babel/eslint-parser': specifier: 7.25.1 @@ -206,1398 +186,944 @@ devDependencies: specifier: 2.0.5 version: 2.0.5(@types/node@16.18.93) -packages: +importers: + + .: + dependencies: + '@typescript-eslint/utils': + specifier: ^8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.5.4) + deepmerge-ts: + specifier: ^7.1.0 + version: 7.1.0 + escape-string-regexp: + specifier: ^5.0.0 + version: 5.0.0 + is-immutable-type: + specifier: ^5.0.0 + version: 5.0.0(eslint@9.8.0)(typescript@5.5.4) + ts-api-utils: + specifier: ^1.3.0 + version: 1.3.0(typescript@5.5.4) + devDependencies: + '@babel/eslint-parser': + specifier: 7.25.1 + version: 7.25.1(@babel/core@7.25.2)(eslint@9.8.0) + '@cspell/dict-cryptocurrencies': + specifier: 5.0.0 + version: 5.0.0 + '@eslint/compat': + specifier: 1.1.1 + version: 1.1.1 + '@rebeccastevens/eslint-config': + specifier: 3.0.0 + version: 3.0.0(slk7l3v5xqm5dbewk3i557mzmu) + '@semantic-release/changelog': + specifier: 6.0.3 + version: 6.0.3(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/commit-analyzer': + specifier: 13.0.0 + version: 13.0.0(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/git': + specifier: 10.0.1 + version: 10.0.1(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/github': + specifier: 10.1.3 + version: 10.1.3(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/npm': + specifier: 12.0.1 + version: 12.0.1(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/release-notes-generator': + specifier: 14.0.1 + version: 14.0.1(semantic-release@24.0.0(typescript@5.5.4)) + '@stylistic/eslint-plugin': + specifier: 2.6.1 + version: 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@types/dedent': + specifier: 0.7.2 + version: 0.7.2 + '@types/espree': + specifier: 10.1.0 + version: 10.1.0 + '@types/node': + specifier: 18.18.0 + version: 18.18.0 + '@typescript-eslint/eslint-plugin': + specifier: 8.0.0 + version: 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/parser': + specifier: 8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/rule-tester': + specifier: 8.0.0 + version: 8.0.0(@eslint/eslintrc@3.1.0)(eslint@9.8.0)(typescript@5.5.4) + '@vitest/coverage-istanbul': + specifier: 2.0.5 + version: 2.0.5(vitest@2.0.5(@types/node@18.18.0)) + '@vitest/coverage-v8': + specifier: 2.0.5 + version: 2.0.5(vitest@2.0.5(@types/node@18.18.0)) + cspell: + specifier: 8.13.1 + version: 8.13.1 + deassert: + specifier: 1.0.2 + version: 1.0.2(rollup@4.20.0) + dedent: + specifier: 1.5.3 + version: 1.5.3 + eslint: + specifier: 9.8.0 + version: 9.8.0 + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@9.8.0) + eslint-doc-generator: + specifier: 1.7.1 + version: 1.7.1(eslint@9.8.0)(typescript@5.5.4) + eslint-flat-config-utils: + specifier: 0.3.0 + version: 0.3.0 + eslint-import-resolver-typescript: + specifier: 3.6.1 + version: 3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0) + eslint-merge-processors: + specifier: 0.1.0 + version: 0.1.0(eslint@9.8.0) + eslint-plugin-eslint-comments: + specifier: 3.2.0 + version: 3.2.0(eslint@9.8.0) + eslint-plugin-eslint-plugin: + specifier: 6.2.0 + version: 6.2.0(eslint@9.8.0) + eslint-plugin-format: + specifier: 0.1.2 + version: 0.1.2(eslint@9.8.0) + eslint-plugin-functional: + specifier: link:. + version: 'link:' + eslint-plugin-import-x: + specifier: 3.1.0 + version: 3.1.0(eslint@9.8.0)(typescript@5.5.4) + eslint-plugin-jsdoc: + specifier: 48.11.0 + version: 48.11.0(eslint@9.8.0) + eslint-plugin-jsonc: + specifier: 2.16.0 + version: 2.16.0(eslint@9.8.0) + eslint-plugin-markdown: + specifier: 5.1.0 + version: 5.1.0(eslint@9.8.0) + eslint-plugin-n: + specifier: 17.10.2 + version: 17.10.2(eslint@9.8.0) + eslint-plugin-no-only-tests: + specifier: 3.1.0 + version: 3.1.0 + eslint-plugin-optimize-regex: + specifier: 1.2.1 + version: 1.2.1 + eslint-plugin-promise: + specifier: 7.0.0 + version: 7.0.0(eslint@9.8.0) + eslint-plugin-regexp: + specifier: 2.6.0 + version: 2.6.0(eslint@9.8.0) + eslint-plugin-sonarjs: + specifier: 1.0.4 + version: 1.0.4(eslint@9.8.0) + eslint-plugin-unicorn: + specifier: 55.0.0 + version: 55.0.0(eslint@9.8.0) + eslint-plugin-vitest: + specifier: 0.5.4 + version: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@18.18.0)) + eslint-plugin-yml: + specifier: 1.14.0 + version: 1.14.0(eslint@9.8.0) + espree: + specifier: 10.1.0 + version: 10.1.0 + fast-glob: + specifier: 3.3.2 + version: 3.3.2 + husky: + specifier: 9.1.4 + version: 9.1.4 + jsonc-eslint-parser: + specifier: 2.4.0 + version: 2.4.0 + knip: + specifier: 5.27.0 + version: 5.27.0(@types/node@18.18.0)(typescript@5.5.4) + lint-staged: + specifier: 15.2.8 + version: 15.2.8 + markdownlint-cli2: + specifier: 0.13.0 + version: 0.13.0 + prettier: + specifier: 3.3.3 + version: 3.3.3 + prettier-plugin-packagejson: + specifier: 2.5.1 + version: 2.5.1(prettier@3.3.3) + rimraf: + specifier: 6.0.1 + version: 6.0.1 + rollup: + specifier: 4.20.0 + version: 4.20.0 + rollup-plugin-ts: + specifier: 3.4.5 + version: 3.4.5(@babel/core@7.25.2)(rollup@4.20.0)(typescript@5.5.4) + semantic-release: + specifier: 24.0.0 + version: 24.0.0(typescript@5.5.4) + semantic-release-replace-plugin: + specifier: 1.2.7 + version: 1.2.7(semantic-release@24.0.0(typescript@5.5.4)) + tsc-alias: + specifier: 1.8.10 + version: 1.8.10 + tsc-files: + specifier: 1.1.4 + version: 1.1.4(typescript@5.5.4) + tsx: + specifier: 4.16.5 + version: 4.16.5 + typescript: + specifier: 5.5.4 + version: 5.5.4 + vite-tsconfig-paths: + specifier: 4.3.2 + version: 4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@18.18.0)) + vitest: + specifier: 2.0.5 + version: 2.0.5(@types/node@18.18.0) + yaml-eslint-parser: + specifier: 1.2.3 + version: 1.2.3 - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} +packages: - /@ampproject/remapping@2.3.0: + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@augment-vir/common@23.4.0: - resolution: {integrity: sha512-QIrJ1doD00TNbOzeVrk9KgPTzRlIjayxERnhtbQjK/AFPj5yElcB03GbnGdQZPzws/R+5gfMM5cZiH7QyBP+Kg==} - dependencies: - browser-or-node: 2.1.1 - run-time-assertions: 1.2.0 - type-fest: 4.13.1 - dev: true - /@augment-vir/common@26.2.1: - resolution: {integrity: sha512-NoVW3K3MB6ndMspsxbdFiQZ3Fc6mapXphyOUZKlQbWTMNGF7RaVEcnP1m8Un1fXTUBblBcdUZWwP95Z51mg/RQ==} - dependencies: - browser-or-node: 2.1.1 - run-time-assertions: 1.2.0 - type-fest: 4.13.1 - dev: true + '@antfu/install-pkg@0.3.3': + resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==} - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - dev: true - /@babel/compat-data@7.24.1: - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + '@babel/compat-data@7.25.2': + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/core@7.24.1: - resolution: {integrity: sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.1) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.25.3 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.25.2 - convert-source-map: 2.0.0 - debug: 4.3.6 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/eslint-parser@7.25.1(@babel/core@7.24.1)(eslint@8.57.0): + '@babel/eslint-parser@7.25.1': resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - dependencies: - '@babel/core': 7.24.1 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - dev: true - - /@babel/generator@7.24.1: - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.2 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - dev: true - - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.24.1 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + '@babel/generator@7.25.0': + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.25.2 - dev: true - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.2 - dev: true - /@babel/helper-module-imports@7.24.1: - resolution: {integrity: sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.2 - dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.1): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.1 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.1 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.24.7 - dev: true - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.2 - dev: true - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.2 - dev: true - /@babel/helper-string-parser@7.24.8: + '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.24.7: + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helpers@7.24.1: - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + '@babel/helpers@7.25.0': + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - dev: true - /@babel/parser@7.25.3: + '@babel/parser@7.25.3': resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.25.2 - dev: true - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 - dev: true - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + '@babel/traverse@7.25.3': + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 - '@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.25.3 - '@babel/types': 7.25.2 - debug: 4.3.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/types@7.25.2: + '@babel/types@7.25.2': resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - dev: true - /@bcoe/v8-coverage@0.2.3: + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - - /@commitlint/config-validator@19.0.3: - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/types': 19.0.3 - ajv: 8.12.0 - dev: true - optional: true - /@commitlint/execute-rule@19.0.0: - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} - engines: {node: '>=v18'} - requiresBuild: true - dev: true - optional: true - - /@commitlint/load@19.2.0(@types/node@16.18.93)(typescript@5.4.3): - resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.1.0 - '@commitlint/types': 19.0.3 - chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.4.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@16.18.93)(cosmiconfig@9.0.0)(typescript@5.4.3) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: true - optional: true + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} - /@commitlint/resolve-extends@19.1.0: - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/types': 19.0.3 - global-directory: 4.0.1 - import-meta-resolve: 4.1.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - dev: true - optional: true + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported - /@commitlint/types@19.0.3: - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 - dev: true - optional: true + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} - /@cspell/cspell-bundled-dicts@8.13.0: - resolution: {integrity: sha512-vtABTJeicWtd1bO74OB1IYSY/+nhK7S5yyW2GRcq1c9dEqRkgJNcYm8SUCm4EOH2oNGzeptjjGgR8emnvCiTfQ==} + '@cspell/cspell-bundled-dicts@8.13.1': + resolution: {integrity: sha512-ylAwnIdxBMJ9v6BHpFAQFZM+5zbybLtqVQJG7zQePts4e0/Qr2xjYFbC3F+fovZqyXPIx24BR+S6gFJNO1OdAw==} engines: {node: '>=18'} - dependencies: - '@cspell/dict-ada': 4.0.2 - '@cspell/dict-aws': 4.0.3 - '@cspell/dict-bash': 4.1.3 - '@cspell/dict-companies': 3.1.3 - '@cspell/dict-cpp': 5.1.12 - '@cspell/dict-cryptocurrencies': 5.0.0 - '@cspell/dict-csharp': 4.0.2 - '@cspell/dict-css': 4.0.12 - '@cspell/dict-dart': 2.0.3 - '@cspell/dict-django': 4.1.0 - '@cspell/dict-docker': 1.1.7 - '@cspell/dict-dotnet': 5.0.2 - '@cspell/dict-elixir': 4.0.3 - '@cspell/dict-en-common-misspellings': 2.0.3 - '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.23 - '@cspell/dict-filetypes': 3.0.4 - '@cspell/dict-fonts': 4.0.0 - '@cspell/dict-fsharp': 1.0.1 - '@cspell/dict-fullstack': 3.2.0 - '@cspell/dict-gaming-terms': 1.0.5 - '@cspell/dict-git': 3.0.0 - '@cspell/dict-golang': 6.0.9 - '@cspell/dict-google': 1.0.1 - '@cspell/dict-haskell': 4.0.1 - '@cspell/dict-html': 4.0.5 - '@cspell/dict-html-symbol-entities': 4.0.0 - '@cspell/dict-java': 5.0.7 - '@cspell/dict-julia': 1.0.1 - '@cspell/dict-k8s': 1.0.6 - '@cspell/dict-latex': 4.0.0 - '@cspell/dict-lorem-ipsum': 4.0.0 - '@cspell/dict-lua': 4.0.3 - '@cspell/dict-makefile': 1.0.0 - '@cspell/dict-monkeyc': 1.0.6 - '@cspell/dict-node': 5.0.1 - '@cspell/dict-npm': 5.0.18 - '@cspell/dict-php': 4.0.8 - '@cspell/dict-powershell': 5.0.5 - '@cspell/dict-public-licenses': 2.0.7 - '@cspell/dict-python': 4.2.3 - '@cspell/dict-r': 2.0.1 - '@cspell/dict-ruby': 5.0.2 - '@cspell/dict-rust': 4.0.5 - '@cspell/dict-scala': 5.0.3 - '@cspell/dict-software-terms': 4.0.3 - '@cspell/dict-sql': 2.1.3 - '@cspell/dict-svelte': 1.0.2 - '@cspell/dict-swift': 2.0.1 - '@cspell/dict-terraform': 1.0.0 - '@cspell/dict-typescript': 3.1.6 - '@cspell/dict-vue': 3.0.0 - dev: true - /@cspell/cspell-json-reporter@8.13.0: - resolution: {integrity: sha512-OR6+gxWImIOegn9Zi9zlnPZtZMWFToFD8l5bDbHMaScTDygB0IJNg9ZGxWGpxpbMXLNMiefAo5inJwF6LW9F3w==} + '@cspell/cspell-json-reporter@8.13.1': + resolution: {integrity: sha512-vYZTBRkYjpNBifGNbYQsgIXesDEdUa9QAwllDcLZGKbhh5mY/C1ygPnAVpYDYiJNt1WCeIqW286DUyjRjkmHeA==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-types': 8.13.0 - dev: true - /@cspell/cspell-pipe@8.13.0: - resolution: {integrity: sha512-YukXZSSUUD5OqzThpyUUusXH7E+z2YViCVUwTb6bQ/DIHHEUIlTPSF8n/xGUmOR6XeQDBxqgNasTDB5AeRXPJg==} + '@cspell/cspell-pipe@8.13.1': + resolution: {integrity: sha512-acLWTQv3yWfeWXMds/cfQKZapslOrLHVL4VDp4rFyL/EnfgaCr7Ew9hQ7zAIARY3r/n0dByqWbOt2HKthdhx/g==} engines: {node: '>=18'} - dev: true - /@cspell/cspell-resolver@8.13.0: - resolution: {integrity: sha512-smUDfAQDrO5iodDe/7OL1i/fZhu8YrxNfbMCiazqLIYBhw2wrvS6LerBaM7HVUPZ8ZrdeYzIQ1wvEolsrJzuWw==} + '@cspell/cspell-resolver@8.13.1': + resolution: {integrity: sha512-EGdb7KLYCklV3sLxf/895b7s6sExh8DCHZFpDos2hjKwMt+F4ynsu1+ceybQtqoUF/MsyLoJXrrmPvV2uGVmUQ==} engines: {node: '>=18'} - dependencies: - global-directory: 4.0.1 - dev: true - /@cspell/cspell-service-bus@8.13.0: - resolution: {integrity: sha512-370hfBsAFJQ5AJkD/aJF0NITu0kbABGpEkTvutkHAwoIedLp0vNMvlWja7CnFgXxAJOABROSwMXDjG8hLBkXOQ==} + '@cspell/cspell-service-bus@8.13.1': + resolution: {integrity: sha512-oLFJfxuB1rwGXn3eD5qSF9nf0lHu6YjO0JcrjWhAZQ0r3AsO97gsX50wwCFCw6szVU3rd1cTUktW0KYEZUY6dA==} engines: {node: '>=18'} - dev: true - /@cspell/cspell-types@8.13.0: - resolution: {integrity: sha512-BnNPwycI/4v/9jFrMofUrUsYmI/Q5ZCE+HL0Yif+mS3r+twaE6Qpmtc9AnpBkLeXlUcY1aeQTASTD9smgGuxsQ==} + '@cspell/cspell-types@8.13.1': + resolution: {integrity: sha512-9dJdmyXLXJVesCJa/DWgwKsEC9p2RRFc6KORcLhNvtm1tE9TvCXiu5jV47sOmYXd6Hwan8IurBXXTz82CLVjPQ==} engines: {node: '>=18'} - dev: true - /@cspell/dict-ada@4.0.2: + '@cspell/dict-ada@4.0.2': resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} - dev: true - /@cspell/dict-aws@4.0.3: + '@cspell/dict-aws@4.0.3': resolution: {integrity: sha512-0C0RQ4EM29fH0tIYv+EgDQEum0QI6OrmjENC9u98pB8UcnYxGG/SqinuPxo+TgcEuInj0Q73MsBpJ1l5xUnrsw==} - dev: true - /@cspell/dict-bash@4.1.3: + '@cspell/dict-bash@4.1.3': resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} - dev: true - /@cspell/dict-companies@3.1.3: + '@cspell/dict-companies@3.1.3': resolution: {integrity: sha512-qaAmfKtQLA7Sbe9zfFVpcwyG92cx6+EiWIpPURv11Ng2QMv2PKhYcterUJBooAvgqD0/qq+AsLN8MREloY5Mdw==} - dev: true - /@cspell/dict-cpp@5.1.12: + '@cspell/dict-cpp@5.1.12': resolution: {integrity: sha512-6lXLOFIa+k/qBcu0bjaE/Kc6v3sh9VhsDOXD1Dalm3zgd0QIMjp5XBmkpSdCAK3pWCPV0Se7ysVLDfCea1BuXg==} - dev: true - /@cspell/dict-cryptocurrencies@5.0.0: + '@cspell/dict-cryptocurrencies@5.0.0': resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} - dev: true - /@cspell/dict-csharp@4.0.2: + '@cspell/dict-csharp@4.0.2': resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==} - dev: true - /@cspell/dict-css@4.0.12: + '@cspell/dict-css@4.0.12': resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==} - dev: true - /@cspell/dict-dart@2.0.3: + '@cspell/dict-dart@2.0.3': resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} - dev: true - /@cspell/dict-data-science@2.0.1: + '@cspell/dict-data-science@2.0.1': resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==} - dev: true - /@cspell/dict-django@4.1.0: + '@cspell/dict-django@4.1.0': resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} - dev: true - /@cspell/dict-docker@1.1.7: + '@cspell/dict-docker@1.1.7': resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==} - dev: true - /@cspell/dict-dotnet@5.0.2: + '@cspell/dict-dotnet@5.0.2': resolution: {integrity: sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==} - dev: true - /@cspell/dict-elixir@4.0.3: + '@cspell/dict-elixir@4.0.3': resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} - dev: true - /@cspell/dict-en-common-misspellings@2.0.3: + '@cspell/dict-en-common-misspellings@2.0.3': resolution: {integrity: sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw==} - dev: true - /@cspell/dict-en-gb@1.1.33: + '@cspell/dict-en-gb@1.1.33': resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - dev: true - /@cspell/dict-en_us@4.3.23: + '@cspell/dict-en_us@4.3.23': resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==} - dev: true - /@cspell/dict-filetypes@3.0.4: + '@cspell/dict-filetypes@3.0.4': resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==} - dev: true - /@cspell/dict-fonts@4.0.0: + '@cspell/dict-fonts@4.0.0': resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==} - dev: true - /@cspell/dict-fsharp@1.0.1: + '@cspell/dict-fsharp@1.0.1': resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} - dev: true - /@cspell/dict-fullstack@3.2.0: + '@cspell/dict-fullstack@3.2.0': resolution: {integrity: sha512-sIGQwU6G3rLTo+nx0GKyirR5dQSFeTIzFTOrURw51ISf+jKG9a3OmvsVtc2OANfvEAOLOC9Wfd8WYhmsO8KRDQ==} - dev: true - /@cspell/dict-gaming-terms@1.0.5: + '@cspell/dict-gaming-terms@1.0.5': resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} - dev: true - /@cspell/dict-git@3.0.0: + '@cspell/dict-git@3.0.0': resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} - dev: true - /@cspell/dict-golang@6.0.9: + '@cspell/dict-golang@6.0.9': resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==} - dev: true - /@cspell/dict-google@1.0.1: + '@cspell/dict-google@1.0.1': resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==} - dev: true - /@cspell/dict-haskell@4.0.1: + '@cspell/dict-haskell@4.0.1': resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} - dev: true - /@cspell/dict-html-symbol-entities@4.0.0: + '@cspell/dict-html-symbol-entities@4.0.0': resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} - dev: true - /@cspell/dict-html@4.0.5: + '@cspell/dict-html@4.0.5': resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} - dev: true - /@cspell/dict-java@5.0.7: + '@cspell/dict-java@5.0.7': resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==} - dev: true - /@cspell/dict-julia@1.0.1: + '@cspell/dict-julia@1.0.1': resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} - dev: true - /@cspell/dict-k8s@1.0.6: + '@cspell/dict-k8s@1.0.6': resolution: {integrity: sha512-srhVDtwrd799uxMpsPOQqeDJY+gEocgZpoK06EFrb4GRYGhv7lXo9Fb+xQMyQytzOW9dw4DNOEck++nacDuymg==} - dev: true - /@cspell/dict-latex@4.0.0: + '@cspell/dict-latex@4.0.0': resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} - dev: true - /@cspell/dict-lorem-ipsum@4.0.0: + '@cspell/dict-lorem-ipsum@4.0.0': resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==} - dev: true - /@cspell/dict-lua@4.0.3: + '@cspell/dict-lua@4.0.3': resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==} - dev: true - /@cspell/dict-makefile@1.0.0: + '@cspell/dict-makefile@1.0.0': resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==} - dev: true - /@cspell/dict-monkeyc@1.0.6: + '@cspell/dict-monkeyc@1.0.6': resolution: {integrity: sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==} - dev: true - /@cspell/dict-node@5.0.1: + '@cspell/dict-node@5.0.1': resolution: {integrity: sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==} - dev: true - /@cspell/dict-npm@5.0.18: + '@cspell/dict-npm@5.0.18': resolution: {integrity: sha512-weMTyxWpzz19q4wv9n183BtFvdD5fCjtze+bFKpl+4rO/YlPhHL2cXLAeexJz/VDSBecwX4ybTZYoknd1h2J4w==} - dev: true - /@cspell/dict-php@4.0.8: + '@cspell/dict-php@4.0.8': resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==} - dev: true - /@cspell/dict-powershell@5.0.5: + '@cspell/dict-powershell@5.0.5': resolution: {integrity: sha512-3JVyvMoDJesAATYGOxcUWPbQPUvpZmkinV3m8HL1w1RrjeMVXXuK7U1jhopSneBtLhkU+9HKFwgh9l9xL9mY2Q==} - dev: true - /@cspell/dict-public-licenses@2.0.7: + '@cspell/dict-public-licenses@2.0.7': resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==} - dev: true - /@cspell/dict-python@4.2.3: + '@cspell/dict-python@4.2.3': resolution: {integrity: sha512-C1CPX9wwEGgcHv/p7KfjuIOp1G6KNyx5gWYweAd6/KPv+ZpeM1v572zFUTmpO8WDuAfKFf00nqYL8/GmCENWBw==} - dependencies: - '@cspell/dict-data-science': 2.0.1 - dev: true - /@cspell/dict-r@2.0.1: + '@cspell/dict-r@2.0.1': resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} - dev: true - /@cspell/dict-ruby@5.0.2: + '@cspell/dict-ruby@5.0.2': resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} - dev: true - /@cspell/dict-rust@4.0.5: + '@cspell/dict-rust@4.0.5': resolution: {integrity: sha512-DIvlPRDemjKQy8rCqftAgGNZxY5Bg+Ps7qAIJjxkSjmMETyDgl0KTVuaJPt7EK4jJt6uCZ4ILy96npsHDPwoXA==} - dev: true - /@cspell/dict-scala@5.0.3: + '@cspell/dict-scala@5.0.3': resolution: {integrity: sha512-4yGb4AInT99rqprxVNT9TYb1YSpq58Owzq7zi3ZS5T0u899Y4VsxsBiOgHnQ/4W+ygi+sp+oqef8w8nABR2lkg==} - dev: true - /@cspell/dict-software-terms@4.0.3: + '@cspell/dict-software-terms@4.0.3': resolution: {integrity: sha512-65QAVMc3YlcI7PcqWRY5ox53tTWC8aktUZdJYCVs4VDBPUCTSDnTSmSreeg4F5Z468clv9KF/S0PkxbLjgW72A==} - dev: true - /@cspell/dict-sql@2.1.3: + '@cspell/dict-sql@2.1.3': resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==} - dev: true - /@cspell/dict-svelte@1.0.2: + '@cspell/dict-svelte@1.0.2': resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==} - dev: true - /@cspell/dict-swift@2.0.1: + '@cspell/dict-swift@2.0.1': resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} - dev: true - /@cspell/dict-terraform@1.0.0: + '@cspell/dict-terraform@1.0.0': resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} - dev: true - /@cspell/dict-typescript@3.1.6: + '@cspell/dict-typescript@3.1.6': resolution: {integrity: sha512-1beC6O4P/j23VuxX+i0+F7XqPVc3hhiAzGJHEKqnWf5cWAXQtg0xz3xQJ5MvYx2a7iLaSa+lu7+05vG9UHyu9Q==} - dev: true - /@cspell/dict-vue@3.0.0: + '@cspell/dict-vue@3.0.0': resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} - dev: true - /@cspell/dynamic-import@8.13.0: - resolution: {integrity: sha512-M1cIy6rqWs36M8HFghKsGz/m/WPpK7IIICBptCKoSc5F9VWCjq69UJKrhDMaMOAfJevrmomW5NqF4uhYxg7lNQ==} + '@cspell/dynamic-import@8.13.1': + resolution: {integrity: sha512-jMqJHWmQy+in99JMSFlaGV9P033gCx7DCZvGO/ZSeZ2EatrUTanJk3oTG1TZknZydb0nnxr1mgTWXN7PCAAXDg==} engines: {node: '>=18.0'} - dependencies: - import-meta-resolve: 4.1.0 - dev: true - /@cspell/strong-weak-map@8.13.0: - resolution: {integrity: sha512-+SvzzupsnKm6+OfK8t2KL2uY0RzTDhjTVEaEIug8IgwlHSf4waYgQ2MJ4ZJPww7OvNEcBmUAeh6Z1+cwiqMycQ==} + '@cspell/strong-weak-map@8.13.1': + resolution: {integrity: sha512-ga1ibI9ZLJWNszfP7e6qQ8gnoQOP9rE/clALMAim9ssO6cmMhEEm+i1ROH4nsDfThd6sVlUJ0IOtx5dEqPmWxw==} engines: {node: '>=18'} - dev: true - /@cspell/url@8.13.0: - resolution: {integrity: sha512-+MEFtLb/VJK5WEwmtLCqfghkDBnPNK5XdUNt24tKfwinAlf4VSMxCmplqPwRjXVIbT5C4stSUY/ZrPadEWjw8Q==} + '@cspell/url@8.13.1': + resolution: {integrity: sha512-cCyojz5ovgGCexhez2urle4Q1UOEsp96lvl4pDmWNDHa/6n8dqiIn60SVzQIsAHzJ4yEV077RSaIrTlq/T+oSQ==} engines: {node: '>=18.0'} - dev: true - /@ericcornelissen/bash-parser@0.5.2: - resolution: {integrity: sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ==} - engines: {node: '>=4'} - dependencies: - array-last: 1.3.0 - babylon: 6.18.0 - compose-function: 3.0.3 - deep-freeze: 0.0.1 - filter-iterator: 0.0.1 - filter-obj: 1.1.0 - has-own-property: 0.1.0 - identity-function: 1.0.0 - is-iterable: 1.1.1 - iterable-lookahead: 1.0.0 - lodash.curry: 4.1.1 - magic-string: 0.16.0 - map-obj: 2.0.0 - object-pairs: 0.1.0 - object-values: 1.0.0 - reverse-arguments: 1.0.0 - shell-quote-word: 1.0.1 - to-pascal-case: 1.0.0 - unescape-js: 1.1.4 - dev: true - - /@es-joy/jsdoccomment@0.42.0: - resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} + '@dprint/formatter@0.3.0': + resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==} + + '@dprint/markdown@0.17.2': + resolution: {integrity: sha512-isz8iOgA9RezXb0bkHWfJZBp59j1wKUS/lpUTNL8bBelp1Ng1/NPUPG3/WscoSlI5VO+1rSN/itOOjPAfM4Jhg==} + + '@dprint/toml@0.6.2': + resolution: {integrity: sha512-Mk5unEANsL/L+WHYU3NpDXt1ARU5bNU5k5OZELxaJodDycKG6RoRnSlZXpW6+7UN2PSnETAFVUdKrh937ZwtHA==} + + '@es-joy/jsdoccomment@0.46.0': + resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} engines: {node: '>=16'} - dependencies: - comment-parser: 1.4.1 - esquery: 1.5.0 - jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@eslint/compat@1.1.1': + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-array@0.17.1': + resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@eslint/eslintrc@3.1.0: + '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 10.0.1 - globals: 14.0.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.8.0': + resolution: {integrity: sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@humanwhocodes/module-importer@1.0.1: + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/object-schema@2.0.3: - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} - /@isaacs/cliui@8.0.2: + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@istanbuljs/schema@0.1.3: + '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - dev: true - /@jest/schemas@29.6.3: + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jridgewell/gen-mapping@0.3.5: + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - /@jridgewell/resolve-uri@3.1.2: + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/set-array@1.2.1: + '@jridgewell/set-array@1.2.1': resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/sourcemap-codec@1.5.0: + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - dev: true - /@jridgewell/trace-mapping@0.3.25: + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: true - /@mdn/browser-compat-data@5.5.16: - resolution: {integrity: sha512-za4DOflM2h73Rs2ORnhS2IU73sVRjrN4x5ZmOZ8WgLCSOVuZ1+y1K0NQKy8xqaPW52ezN+ni2N2RBUKt532ULA==} - dev: true + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + + '@mdn/browser-compat-data@5.5.43': + resolution: {integrity: sha512-tnAfo9j9tCOyjHB9nTkDcTHtpwMT+oBUSL7sBsGHxpZ/wQ2uRByHawaFcNgqFVogN20V9LsSfsGQ9EB5Px13rg==} - /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - dependencies: - eslint-scope: 5.1.1 - dev: true - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - /@nodelib/fs.scandir@3.0.0: - resolution: {integrity: sha512-ktI9+PxfHYtKjF3cLTUAh2N+b8MijCRPNwKJNqTVdL0gB0QxLU2rIRaZ1t71oEa3YBDE6bukH1sR0+CDnpp/Mg==} - engines: {node: '>=16.14.0'} - dependencies: - '@nodelib/fs.stat': 3.0.0 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - /@nodelib/fs.stat@3.0.0: - resolution: {integrity: sha512-2tQOI38s19P9i7X/Drt0v8iMA+KMsgdhB/dyPER+e+2Y8L1Z7QvnuRdW/uLuf5YRFUYmnj4bMA6qCuZHFI1GDQ==} - engines: {node: '>=16.14.0'} - dev: true - - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - /@nodelib/fs.walk@2.0.0: - resolution: {integrity: sha512-54voNDBobGdMl3BUXSu7UaDh1P85PGHWlJ5e0XhPugo1JulOyCtp2I+5ri4wplGDJ8QGwPEQW7/x3yTLU7yF1A==} - engines: {node: '>=16.14.0'} - dependencies: - '@nodelib/fs.scandir': 3.0.0 - fastq: 1.17.1 - dev: true - - /@npmcli/git@5.0.4: - resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 - npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.6.3 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - dev: true - - /@npmcli/map-workspaces@3.0.4: - resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.5 - minimatch: 9.0.5 - read-package-json-fast: 3.0.2 - dev: true - - /@npmcli/name-from-folder@2.0.0: - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /@npmcli/package-json@5.0.0: - resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/git': 5.0.4 - glob: 10.4.5 - hosted-git-info: 7.0.1 - json-parse-even-better-errors: 3.0.1 - normalize-package-data: 6.0.0 - proc-log: 3.0.0 - semver: 7.6.3 - transitivePeerDependencies: - - bluebird - dev: true - /@npmcli/promise-spawn@7.0.1: - resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - which: 4.0.0 - dev: true - - /@octokit/auth-token@5.0.1: - resolution: {integrity: sha512-RTmWsLfig8SBoiSdgvCht4BXl1CHU89Co5xiQ5JF19my/sIRDFCQ1RPrmK0exgqUZuNm39C/bV8+/83+MJEjGg==} + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} - dev: true - /@octokit/core@6.0.1: - resolution: {integrity: sha512-MIpPQXu8Y8GjHwXM81JLveiV+DHJZtLMcB5nKekBGOl3iAtk0HT3i12Xl8Biybu+bCS1+k4qbuKEq5d0RxNRnQ==} + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} engines: {node: '>= 18'} - dependencies: - '@octokit/auth-token': 5.0.1 - '@octokit/graphql': 8.0.1 - '@octokit/request': 9.0.1 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 - before-after-hook: 3.0.2 - universal-user-agent: 7.0.2 - dev: true - /@octokit/endpoint@10.0.0: - resolution: {integrity: sha512-emBcNDxBdC1y3+knJonS5zhUB/CG6TihubxM2U1/pG/Z1y3a4oV0Gzz3lmkCvWWQI6h3tqBAX9MgCBFp+M68Jw==} + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} engines: {node: '>= 18'} - dependencies: - '@octokit/types': 12.6.0 - universal-user-agent: 7.0.2 - dev: true - /@octokit/graphql@8.0.1: - resolution: {integrity: sha512-lLDb6LhC1gBj2CxEDa5Xk10+H/boonhs+3Mi6jpRyetskDKNHe6crMeKmUE2efoLofMP8ruannLlCUgpTFmVzQ==} + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} engines: {node: '>= 18'} - dependencies: - '@octokit/request': 9.0.1 - '@octokit/types': 12.6.0 - universal-user-agent: 7.0.2 - dev: true - /@octokit/openapi-types@20.0.0: - resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - dev: true - - /@octokit/openapi-types@22.2.0: + '@octokit/openapi-types@22.2.0': resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} - dev: true - /@octokit/plugin-paginate-rest@11.3.0(@octokit/core@6.0.1): - resolution: {integrity: sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==} + '@octokit/plugin-paginate-rest@11.3.3': + resolution: {integrity: sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' - dependencies: - '@octokit/core': 6.0.1 - '@octokit/types': 13.5.0 - dev: true - /@octokit/plugin-retry@7.0.3(@octokit/core@6.0.1): - resolution: {integrity: sha512-T9l5Z7XnDZ7dkyNmhJPSUq0YjbqUT/xn4yQbhcSuv4WGC/LqM73/mKwkl68VDPoLw20e8oz4L7qQopWt9v6sow==} + '@octokit/plugin-retry@7.1.1': + resolution: {integrity: sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' - dependencies: - '@octokit/core': 6.0.1 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 - bottleneck: 2.19.5 - dev: true - /@octokit/plugin-throttling@9.0.3(@octokit/core@6.0.1): - resolution: {integrity: sha512-DReKamrLBJOzld73dmmxV2H137QKJfsxszAczEZXeAJQ/Po6bzQacKajPdodA6T1jfmP9+waImus+d/R2j+R7Q==} + '@octokit/plugin-throttling@9.3.1': + resolution: {integrity: sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^6.0.0 - dependencies: - '@octokit/core': 6.0.1 - '@octokit/types': 12.6.0 - bottleneck: 2.19.5 - dev: true - /@octokit/request-error@6.0.2: - resolution: {integrity: sha512-WtRVpoHcNXs84+s9s/wqfHaxM68NGMg8Av7h59B50OVO0PwwMx+2GgQ/OliUd0iQBSNWgR6N8afi/KjSHbXHWw==} + '@octokit/request-error@6.1.4': + resolution: {integrity: sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==} engines: {node: '>= 18'} - dependencies: - '@octokit/types': 12.6.0 - dev: true - /@octokit/request@9.0.1: - resolution: {integrity: sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} engines: {node: '>= 18'} - dependencies: - '@octokit/endpoint': 10.0.0 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 - universal-user-agent: 7.0.2 - dev: true - /@octokit/types@12.6.0: - resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - dependencies: - '@octokit/openapi-types': 20.0.0 - dev: true - - /@octokit/types@13.5.0: + '@octokit/types@13.5.0': resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} - dependencies: - '@octokit/openapi-types': 22.2.0 - dev: true - /@pkgjs/parseargs@0.11.0: + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - /@pkgr/core@0.1.1: + '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: true - /@pnpm/config.env-replace@1.1.0: + '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} - dev: true - - /@pnpm/constants@7.1.1: - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - dev: true - - /@pnpm/core-loggers@9.0.6(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-iK67SGbp+06bA/elpg51wygPFjNA7JKHtKkpLxqXXHw+AjFFBC3f2OznJsCIuDK6HdGi5UhHLYqo5QxJ2gMqJQ==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - dependencies: - '@pnpm/logger': 5.0.0 - '@pnpm/types': 9.4.2 - dev: true - - /@pnpm/error@5.0.3: - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} - dependencies: - '@pnpm/constants': 7.1.1 - dev: true - - /@pnpm/fetching-types@5.0.0: - resolution: {integrity: sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q==} - engines: {node: '>=16.14'} - dependencies: - '@zkochan/retry': 0.2.0 - node-fetch: 3.0.0-beta.9 - transitivePeerDependencies: - - domexception - dev: true - - /@pnpm/graceful-fs@3.2.0: - resolution: {integrity: sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA==} - engines: {node: '>=16.14'} - dependencies: - graceful-fs: 4.2.11 - dev: true - - /@pnpm/logger@5.0.0: - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} - dependencies: - bole: 5.0.11 - ndjson: 2.0.0 - dev: true - /@pnpm/network.ca-file@1.0.2: + '@pnpm/network.ca-file@1.0.2': resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - dependencies: - graceful-fs: 4.2.10 - dev: true - /@pnpm/npm-conf@2.2.2: + '@pnpm/npm-conf@2.2.2': resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} engines: {node: '>=12'} - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - dev: true - - /@pnpm/npm-package-arg@1.0.0: - resolution: {integrity: sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==} - engines: {node: '>=14.6'} - dependencies: - hosted-git-info: 4.1.0 - semver: 7.6.3 - validate-npm-package-name: 4.0.0 - dev: true - - /@pnpm/npm-resolver@18.1.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-NptzncmMD5ZMimbjWkGpMzuBRhlCY+sh7mzypPdBOTNlh5hmEQe/VaRKjNK4V9/b0C/llElkvIePL6acybu86w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - dependencies: - '@pnpm/core-loggers': 9.0.6(@pnpm/logger@5.0.0) - '@pnpm/error': 5.0.3 - '@pnpm/fetching-types': 5.0.0 - '@pnpm/graceful-fs': 3.2.0 - '@pnpm/logger': 5.0.0 - '@pnpm/resolve-workspace-range': 5.0.1 - '@pnpm/resolver-base': 11.1.0 - '@pnpm/types': 9.4.2 - '@zkochan/retry': 0.2.0 - encode-registry: 3.0.1 - load-json-file: 6.2.0 - lru-cache: 10.2.0 - normalize-path: 3.0.0 - p-limit: 3.1.0 - p-memoize: 4.0.1 - parse-npm-tarball-url: 3.0.0 - path-temp: 2.1.0 - ramda: /@pnpm/ramda@0.28.1 - rename-overwrite: 5.0.0 - semver: 7.6.3 - ssri: 10.0.5 - version-selector-type: 3.0.0 - transitivePeerDependencies: - - domexception - dev: true - - /@pnpm/ramda@0.28.1: - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - dev: true - - /@pnpm/resolve-workspace-range@5.0.1: - resolution: {integrity: sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg==} - engines: {node: '>=16.14'} - dependencies: - semver: 7.6.3 - dev: true - - /@pnpm/resolver-base@11.1.0: - resolution: {integrity: sha512-y2qKaj18pwe1VWc3YXEitdYFo+WqOOt60aqTUuOVkJAirUzz0DzuYh3Ifct4znYWPdgUXHaN5DMphNF5iL85rA==} - engines: {node: '>=16.14'} - dependencies: - '@pnpm/types': 9.4.2 - dev: true - /@pnpm/types@9.4.2: - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - dev: true - - /@pnpm/workspace.pkgs-graph@2.0.15(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-Txxd5FzzVfBfGCTngISaxFlJzZhzdS8BUrCEtAWJfZOFbQzpWy27rzkaS7TaWW2dHiFcCVYzPI/2vgxfeRansA==} - engines: {node: '>=16.14'} - dependencies: - '@pnpm/npm-package-arg': 1.0.0 - '@pnpm/npm-resolver': 18.1.1(@pnpm/logger@5.0.0) - '@pnpm/resolve-workspace-range': 5.0.1 - ramda: /@pnpm/ramda@0.28.1 - transitivePeerDependencies: - - '@pnpm/logger' - - domexception - dev: true - - /@rebeccastevens/eslint-config@2.0.11(@typescript-eslint/eslint-plugin@7.4.0)(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint-plugin-eslint-comments@3.2.0)(eslint-plugin-functional@6.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-jsdoc@48.2.2)(eslint-plugin-markdown@3.0.1)(eslint-plugin-n@17.9.0)(eslint-plugin-optimize-regex@1.2.1)(eslint-plugin-promise@7.0.0)(eslint-plugin-sonarjs@0.25.0)(eslint-plugin-unicorn@51.0.1)(eslint@8.57.0): - resolution: {integrity: sha512-I5hulFEN1YHrC3f7Ah/j/4CgHPrZeyXKTevilmgOjNe3S7sOqA8l9tjnEj7l0v9H9RDufQ+bQu24QZHnp+G6yw==} - engines: {node: '>=18.12.1'} + '@rebeccastevens/eslint-config@3.0.0': + resolution: {integrity: sha512-fKAQm3YZTOS8V08ygKhABGTIZklzvfoPk/Wzci/qgoDH5amAO9SyJEQJIraVVlzwwnrxl9Ii88+tUhBWXZIxhQ==} + engines: {node: '>=20.0.0'} peerDependencies: - '@typescript-eslint/eslint-plugin': '>=6.0.0' - '@typescript-eslint/parser': '>=6.0.0' - eslint: '>=8.24.0' + '@stylistic/eslint-plugin': '*' + '@typescript-eslint/eslint-plugin': '*' + '@typescript-eslint/parser': '*' + '@typescript-eslint/utils': '*' + '@unocss/eslint-plugin': '*' + eslint: '*' + eslint-config-prettier: '*' + eslint-flat-config-utils: '*' eslint-import-resolver-typescript: '*' + eslint-merge-processors: '*' eslint-plugin-eslint-comments: '*' - eslint-plugin-functional: '>=5.0.0' - eslint-plugin-import: '*' + eslint-plugin-format: '*' + eslint-plugin-functional: '*' + eslint-plugin-import-x: '*' eslint-plugin-jsdoc: '*' + eslint-plugin-jsonc: '*' eslint-plugin-markdown: '*' eslint-plugin-n: '*' + eslint-plugin-no-only-tests: '*' eslint-plugin-optimize-regex: '*' + eslint-plugin-prettier: '*' eslint-plugin-promise: '*' + eslint-plugin-regexp: '*' eslint-plugin-sonarjs: '*' + eslint-plugin-toml: '*' eslint-plugin-unicorn: '*' - dependencies: - '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - deepmerge-ts: 5.1.0 - eslint: 8.57.0 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-functional: 6.1.1(eslint@8.57.0)(typescript@5.4.3) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-jsdoc: 48.2.2(eslint@8.57.0) - eslint-plugin-markdown: 3.0.1(eslint@8.57.0) - eslint-plugin-n: 17.9.0(eslint@8.57.0) - eslint-plugin-optimize-regex: 1.2.1 - eslint-plugin-promise: 7.0.0(eslint@8.57.0) - eslint-plugin-sonarjs: 0.25.0(eslint@8.57.0) - eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) - dev: true + eslint-plugin-vitest: '*' + eslint-plugin-vue: '*' + eslint-plugin-yml: '*' + eslint-processor-vue-blocks: '*' + jsonc-eslint-parser: '*' + prettier: '*' + prettier-plugin-packagejson: '*' + toml-eslint-parser: '*' + vue-eslint-parser: '*' + yaml-eslint-parser: '*' + peerDependenciesMeta: + '@stylistic/eslint-plugin': + optional: true + '@typescript-eslint/eslint-plugin': + optional: true + '@typescript-eslint/parser': + optional: true + '@typescript-eslint/utils': + optional: true + '@unocss/eslint-plugin': + optional: true + eslint-config-prettier: + optional: true + eslint-flat-config-utils: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-merge-processors: + optional: true + eslint-plugin-eslint-comments: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-functional: + optional: true + eslint-plugin-import-x: + optional: true + eslint-plugin-jsdoc: + optional: true + eslint-plugin-jsonc: + optional: true + eslint-plugin-markdown: + optional: true + eslint-plugin-n: + optional: true + eslint-plugin-no-only-tests: + optional: true + eslint-plugin-optimize-regex: + optional: true + eslint-plugin-prettier: + optional: true + eslint-plugin-promise: + optional: true + eslint-plugin-regexp: + optional: true + eslint-plugin-sonarjs: + optional: true + eslint-plugin-toml: + optional: true + eslint-plugin-unicorn: + optional: true + eslint-plugin-vitest: + optional: true + eslint-plugin-vue: + optional: true + eslint-plugin-yml: + optional: true + eslint-processor-vue-blocks: + optional: true + jsonc-eslint-parser: + optional: true + prettier: + optional: true + prettier-plugin-packagejson: + optional: true + toml-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + yaml-eslint-parser: + optional: true - /@rollup/pluginutils@5.1.0(rollup@4.13.2): + '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1605,496 +1131,287 @@ packages: peerDependenciesMeta: rollup: optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 4.13.2 - dev: true - /@rollup/rollup-android-arm-eabi@4.13.2: - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + '@rollup/rollup-android-arm-eabi@4.20.0': + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm64@4.13.2: - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + '@rollup/rollup-android-arm64@4.20.0': + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-arm64@4.13.2: - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + '@rollup/rollup-darwin-arm64@4.20.0': + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-x64@4.13.2: - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + '@rollup/rollup-darwin-x64@4.20.0': + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.13.2: - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.2: - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + '@rollup/rollup-linux-arm64-gnu@4.20.0': + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.13.2: - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + '@rollup/rollup-linux-arm64-musl@4.20.0': + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.2: - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-s390x-gnu@4.13.2: - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + '@rollup/rollup-linux-s390x-gnu@4.20.0': + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.13.2: - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + '@rollup/rollup-linux-x64-gnu@4.20.0': + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.13.2: - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + '@rollup/rollup-linux-x64-musl@4.20.0': + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.13.2: - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + '@rollup/rollup-win32-arm64-msvc@4.20.0': + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.13.2: - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + '@rollup/rollup-win32-ia32-msvc@4.20.0': + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.13.2: - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + '@rollup/rollup-win32-x64-msvc@4.20.0': + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@sec-ant/readable-stream@0.4.1: + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - dev: true - /@semantic-release/changelog@6.0.3(semantic-release@24.0.0): + '@semantic-release/changelog@6.0.3': resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} engines: {node: '>=14.17'} peerDependencies: semantic-release: '>=18.0.0' - dependencies: - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - fs-extra: 11.2.0 - lodash: 4.17.21 - semantic-release: 24.0.0(typescript@5.4.3) - dev: true - /@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0): + '@semantic-release/commit-analyzer@13.0.0': resolution: {integrity: sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - conventional-changelog-angular: 8.0.0 - conventional-changelog-writer: 8.0.0 - conventional-commits-filter: 5.0.0 - conventional-commits-parser: 6.0.0 - debug: 4.3.6 - import-from-esm: 1.3.3 - lodash-es: 4.17.21 - micromatch: 4.0.7 - semantic-release: 24.0.0(typescript@5.4.3) - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/error@3.0.0: + '@semantic-release/error@3.0.0': resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} engines: {node: '>=14.17'} - dev: true - /@semantic-release/error@4.0.0: + '@semantic-release/error@4.0.0': resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - dev: true - /@semantic-release/git@10.0.1(semantic-release@24.0.0): + '@semantic-release/git@10.0.1': resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} engines: {node: '>=14.17'} peerDependencies: semantic-release: '>=18.0.0' - dependencies: - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - debug: 4.3.6 - dir-glob: 3.0.1 - execa: 5.1.1 - lodash: 4.17.21 - micromatch: 4.0.7 - p-reduce: 2.1.0 - semantic-release: 24.0.0(typescript@5.4.3) - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/github@10.1.3(semantic-release@24.0.0): + '@semantic-release/github@10.1.3': resolution: {integrity: sha512-QVw7YT3J4VqyVjOnlRsFA3OCERAJHER4QbSPupbav3ER0fawrs2BAWbQFjsr24OAD4KTTKMZsVzF+GYFWCDtaQ==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - '@octokit/core': 6.0.1 - '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.0.1) - '@octokit/plugin-retry': 7.0.3(@octokit/core@6.0.1) - '@octokit/plugin-throttling': 9.0.3(@octokit/core@6.0.1) - '@semantic-release/error': 4.0.0 - aggregate-error: 5.0.0 - debug: 4.3.6 - dir-glob: 3.0.1 - globby: 14.0.1 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - issue-parser: 7.0.0 - lodash-es: 4.17.21 - mime: 4.0.1 - p-filter: 4.1.0 - semantic-release: 24.0.0(typescript@5.4.3) - url-join: 5.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/npm@12.0.1(semantic-release@24.0.0): + '@semantic-release/npm@12.0.1': resolution: {integrity: sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - '@semantic-release/error': 4.0.0 - aggregate-error: 5.0.0 - execa: 9.2.0 - fs-extra: 11.2.0 - lodash-es: 4.17.21 - nerf-dart: 1.0.0 - normalize-url: 8.0.1 - npm: 10.5.0 - rc: 1.2.8 - read-pkg: 9.0.1 - registry-auth-token: 5.0.2 - semantic-release: 24.0.0(typescript@5.4.3) - semver: 7.6.3 - tempy: 3.1.0 - dev: true - /@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0): + '@semantic-release/release-notes-generator@14.0.1': resolution: {integrity: sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - conventional-changelog-angular: 8.0.0 - conventional-changelog-writer: 8.0.0 - conventional-commits-filter: 5.0.0 - conventional-commits-parser: 6.0.0 - debug: 4.3.6 - get-stream: 7.0.1 - import-from-esm: 1.3.3 - into-stream: 7.0.0 - lodash-es: 4.17.21 - read-package-up: 11.0.0 - semantic-release: 24.0.0(typescript@5.4.3) - transitivePeerDependencies: - - supports-color - dev: true - /@sinclair/typebox@0.27.8: + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - /@sindresorhus/is@4.6.0: + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - dev: true - /@sindresorhus/merge-streams@2.3.0: + '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - dev: true - /@sindresorhus/merge-streams@4.0.0: + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - dev: true - /@snyk/github-codeowners@1.1.0: + '@snyk/github-codeowners@1.1.0': resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} engines: {node: '>=8.10'} hasBin: true - dependencies: - commander: 4.1.1 - ignore: 5.3.1 - p-map: 4.0.0 - dev: true - /@types/conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - requiresBuild: true - dependencies: - '@types/node': 16.18.93 - dev: true - optional: true + '@stylistic/eslint-plugin-js@2.6.1': + resolution: {integrity: sha512-iLOiVzcvqzDGD9U0EuVOX680v+XOPiPAjkxWj+Q6iV2GLOM5NB27tKVOpJY7AzBhidwpRbaLTgg3T4UzYx09jw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' - /@types/dedent@0.7.2: - resolution: {integrity: sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw==} - dev: true + '@stylistic/eslint-plugin-jsx@2.6.1': + resolution: {integrity: sha512-5qHLXqxfY6jubAQfDqrifv41fx7gaqA9svDaChxMI6JiHpEBfh+PXxmm3g+B8gJCYVBTC62Rjl0Ny5QabK58bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' - /@types/eslint@9.6.0: - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - dev: true + '@stylistic/eslint-plugin-plus@2.6.1': + resolution: {integrity: sha512-z/IYu/q8ipApzNam5utSU+BrXg4pK/Gv9xNbr4eWv/bZppvTWJU62xCO4nw/6r2dHNPnqc7uCHEC7GMlBnPY0A==} + peerDependencies: + eslint: '*' - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true + '@stylistic/eslint-plugin-ts@2.6.1': + resolution: {integrity: sha512-Mxl1VMorEG1Hc6oBYPD0+KIJOWkjEF1R0liL7wWgKfwpqOkgmnh5lVdZBrYyfRKOE4RlGcwEFTNai1IW6orgVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@stylistic/eslint-plugin@2.6.1': + resolution: {integrity: sha512-UT0f4t+3sQ/GKW7875NiIIjZJ1Bh4gd7JNfoIkwIQyWqO7wGd0Pqzu0Ho30Ka8MNF5lm++SkVeqAk26vGxoUpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' - /@types/json5@0.0.29: + '@types/dedent@0.7.2': + resolution: {integrity: sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw==} + + '@types/eslint@9.6.0': + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + + '@types/espree@10.1.0': + resolution: {integrity: sha512-uPQZdoUWWMuO6WS8/dwX1stZH/vOBa/wAniGnYEFI0IuU9RmLx6PLmo+VGfNOlbRc5I7hBsQc8H0zcdVI37kxg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/mdast@3.0.15: + '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - dependencies: - '@types/unist': 2.0.10 - dev: true - - /@types/node@16.18.93: - resolution: {integrity: sha512-epWuohp6c0bQt0j3RYCiP9x52axHVn+CjS1Rx1VjPwF+ySg8lrigH3yXGs88XqnA+jGM2qnSMuFTsBxft+hO1Q==} - dev: true - /@types/node@17.0.45: + '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: true - /@types/normalize-package-data@2.4.4: + '@types/node@18.18.0': + resolution: {integrity: sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==} + + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true - /@types/object-path@0.11.4: + '@types/object-path@0.11.4': resolution: {integrity: sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw==} - dev: true - - /@types/picomatch@2.3.3: - resolution: {integrity: sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==} - dev: true - - /@types/rollup-plugin-auto-external@2.0.5: - resolution: {integrity: sha512-jspE/1q/4MjrC0lilOpF7Ej5z2vvByPq6lb5ERHt9jCRnp0WJRq+SLK9oPfYroy0xhFhDqQoXLeSHcKqATDaoA==} - dependencies: - rollup: 4.13.2 - dev: true - /@types/semver@7.5.8: + '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - /@types/ua-parser-js@0.7.39: + '@types/ua-parser-js@0.7.39': resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} - dev: true - /@types/unist@2.0.10: + '@types/unist@2.0.10': resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - dev: true - /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.0.0': + resolution: {integrity: sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.6 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.0.0': + resolution: {integrity: sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.6 - eslint: 8.57.0 - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/rule-tester@7.4.0(@eslint/eslintrc@3.1.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-AAus65/utkn6WZ3Ls1aoTyK34JdPFm3ZTfsz/Nis8c+Z1gNM4uiGuoyGXF0BnGo+lGvNPYOphGZ+0Y/LBHPi4w==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/rule-tester@8.0.0': + resolution: {integrity: sha512-mYINoxt2DnRDl+X0Er134e6lxTrpb6enfKkea4RIjucd+YjsLzTSSkN40hiU4CB5kOjM17xJVm25TiZJLZMRMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@eslint/eslintrc': '>=2' - eslint: ^8.56.0 - dependencies: - '@eslint/eslintrc': 3.1.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - ajv: 6.12.6 - eslint: 8.57.0 - lodash.merge: 4.6.2 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: true + eslint: ^8.57.0 || ^9.0.0 - /@typescript-eslint/scope-manager@5.62.0: + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - - /@typescript-eslint/scope-manager@7.4.0: - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 - /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.0.0': + resolution: {integrity: sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.0.0': + resolution: {integrity: sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - debug: 4.3.6 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - /@typescript-eslint/types@5.62.0: + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@7.4.0: - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3): + '@typescript-eslint/types@8.0.0': + resolution: {integrity: sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2102,982 +1419,446 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.0.0': + resolution: {integrity: sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.3): + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.3) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.3) - eslint: 8.57.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - eslint: 8.57.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - /@typescript-eslint/visitor-keys@5.62.0: + '@typescript-eslint/utils@8.0.0': + resolution: {integrity: sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@7.4.0: - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - dependencies: - '@typescript-eslint/types': 7.4.0 - eslint-visitor-keys: 3.4.3 - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@8.0.0': + resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@vitest/coverage-istanbul@2.0.5(vitest@2.0.5): + '@vitest/coverage-istanbul@2.0.5': resolution: {integrity: sha512-BvjWKtp7fiMAeYUD0mO5cuADzn1gmjTm54jm5qUEnh/O08riczun8rI4EtQlg3bWoRo2lT3FO8DmjPDX9ZthPw==} peerDependencies: vitest: 2.0.5 - dependencies: - '@istanbuljs/schema': 0.1.3 - debug: 4.3.6 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magicast: 0.3.4 - test-exclude: 7.0.1 - tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@16.18.93) - transitivePeerDependencies: - - supports-color - dev: true - /@vitest/coverage-v8@2.0.5(vitest@2.0.5): + '@vitest/coverage-v8@2.0.5': resolution: {integrity: sha512-qeFcySCg5FLO2bHHSa0tAZAOnAUbp4L6/A5JDuj9+bt53JREl8hpLjLHEWF0e/gWc8INVpJaqA7+Ene2rclpZg==} peerDependencies: vitest: 2.0.5 - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.6 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.11 - magicast: 0.3.4 - std-env: 3.7.0 - test-exclude: 7.0.1 - tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@16.18.93) - transitivePeerDependencies: - - supports-color - dev: true - /@vitest/expect@2.0.5: + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - dependencies: - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 - chai: 5.1.1 - tinyrainbow: 1.2.0 - dev: true - /@vitest/pretty-format@2.0.5: + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - dependencies: - tinyrainbow: 1.2.0 - dev: true - /@vitest/runner@2.0.5: + '@vitest/runner@2.0.5': resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} - dependencies: - '@vitest/utils': 2.0.5 - pathe: 1.1.2 - dev: true - /@vitest/snapshot@2.0.5: + '@vitest/snapshot@2.0.5': resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} - dependencies: - '@vitest/pretty-format': 2.0.5 - magic-string: 0.30.11 - pathe: 1.1.2 - dev: true - /@vitest/spy@2.0.5: + '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - dependencies: - tinyspy: 3.0.0 - dev: true - /@vitest/utils@2.0.5: + '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - dependencies: - '@vitest/pretty-format': 2.0.5 - estree-walker: 3.0.3 - loupe: 3.1.1 - tinyrainbow: 1.2.0 - dev: true - /@wessberg/stringutil@1.0.19: + '@wessberg/stringutil@1.0.19': resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} engines: {node: '>=8.0.0'} - dev: true - /@zkochan/retry@0.2.0: - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - dev: true - - /@zkochan/rimraf@2.1.3: - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} - dependencies: - rimraf: 3.0.2 - dev: true - - /acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.12.0 - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} - dev: true - /acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} - dependencies: - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - dev: true - /aggregate-error@3.1.0: + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /aggregate-error@5.0.0: + aggregate-error@5.0.0: resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} engines: {node: '>=18'} - dependencies: - clean-stack: 5.2.0 - indent-string: 5.0.0 - dev: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - /ansi-colors@4.1.3: + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true - - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} - engines: {node: '>=14.16'} - dependencies: - type-fest: 3.13.1 - dev: true + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.0.1: + ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true - /ansi-styles@3.2.1: + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - /ansi-styles@5.2.0: + ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true - /ansi-styles@6.2.1: + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true - /any-promise@1.3.0: + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - /are-docs-informative@0.0.2: + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} - dev: true - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /argv-formatter@1.0.0: + argv-formatter@1.0.0: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - dev: true - /arity-n@1.0.4: - resolution: {integrity: sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==} - dev: true - - /array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - dev: true - /array-ify@1.0.0: + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - dev: true - - /array-last@1.3.0: - resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 4.0.0 - dev: true - /array-timsort@1.0.3: + array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - dev: true - /array-union@2.1.0: + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - /array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.5: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - 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 - es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: + array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: + array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - dev: true - /assertion-error@2.0.1: + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - dev: true - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - - /available-typed-arrays@1.0.7: + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 - dev: true - - /babylon@6.18.0: - resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} - hasBin: true - dev: true - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - - /before-after-hook@3.0.2: + before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - dev: true - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - - /bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} - dependencies: - fast-safe-stringify: 2.1.1 - individual: 3.0.0 - dev: true + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - /boolean@3.2.0: + boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - dev: true - /bottleneck@2.19.5: + bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - dev: true - /brace-expansion@1.1.11: + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - /braces@3.0.3: + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - dependencies: - fill-range: 7.1.1 - /browser-or-node@2.1.1: - resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} - dev: true - - /browserslist-generator@2.1.0: + browserslist-generator@2.1.0: resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==} engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - dependencies: - '@mdn/browser-compat-data': 5.5.16 - '@types/object-path': 0.11.4 - '@types/semver': 7.5.8 - '@types/ua-parser-js': 0.7.39 - browserslist: 4.23.0 - caniuse-lite: 1.0.30001599 - isbot: 3.8.0 - object-path: 0.11.8 - semver: 7.6.3 - ua-parser-js: 1.0.37 - dev: true - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - dependencies: - caniuse-lite: 1.0.30001599 - electron-to-chromium: 1.4.711 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: true - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /builtin-modules@3.3.0: + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - dev: true - - /builtins@2.0.1: - resolution: {integrity: sha512-XkkVe5QAb6guWPXTzpSrYpSlN3nqEmrrE2TkAr/tp7idSF6+MONh9WvKrAuR3HiKLvoSgmbs8l1U9IPmMrIoLw==} - dependencies: - semver: 6.3.1 - dev: true - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - dependencies: - semver: 7.6.3 - dev: true - - /cac@6.7.14: + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: true - - /cachedir@2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} - engines: {node: '>=6'} - dev: true - /call-bind@1.0.7: + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - dependencies: - 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.2 - dev: true - /callsites@3.1.0: + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - /caniuse-lite@1.0.30001599: - resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} - dev: true + caniuse-lite@1.0.30001646: + resolution: {integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==} - /chai@5.1.1: + chai@5.1.1: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} engines: {node: '>=12'} - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.1 - pathval: 2.0.0 - dev: true - /chalk-template@1.1.0: + chalk-template@1.1.0: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} engines: {node: '>=14.16'} - dependencies: - chalk: 5.3.0 - dev: true - /chalk@2.4.2: + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - /chalk@4.1.2: + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - /chalk@5.3.0: + chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - /char-regex@1.0.2: + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - dev: true - /character-entities-legacy@1.1.4: + character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: true - /character-entities@1.2.4: + character-entities@1.2.4: resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: true - /character-reference-invalid@1.1.4: + character-reference-invalid@1.1.4: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: true - - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - /check-error@2.1.1: + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - dev: true - /ci-info@4.0.0: + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} - dev: true - /clean-regexp@1.0.0: + clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - dev: true - /clean-stack@5.2.0: + clean-stack@5.2.0: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} engines: {node: '>=14.16'} - dependencies: - escape-string-regexp: 5.0.0 - dev: true - /clear-module@4.1.2: + clear-module@4.1.2: resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} engines: {node: '>=8'} - dependencies: - parent-module: 2.0.0 - resolve-from: 5.0.0 - dev: true - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - dev: true + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} - /cli-highlight@2.1.11: + cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} hasBin: true - dependencies: - chalk: 4.1.2 - highlight.js: 10.7.3 - mz: 2.7.0 - parse5: 5.1.1 - parse5-htmlparser2-tree-adapter: 6.0.1 - yargs: 16.2.0 - dev: true - - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: true - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - dev: true - /cli-truncate@4.0.0: + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} - dependencies: - slice-ansi: 5.0.0 - string-width: 7.1.0 - dev: true - - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true - /cliui@7.0.4: + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /clone@1.0.4: + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - requiresBuild: true - dev: true - /color-convert@1.9.3: + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - /color-convert@2.0.1: + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - /color-name@1.1.3: + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - /color-name@1.1.4: + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colorette@2.0.20: + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true - /commander@10.0.1: + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - dev: true - - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true - /commander@12.1.0: + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - dev: true - /commander@4.1.1: + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: true - /comment-json@4.2.4: + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + comment-json@4.2.4: resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} engines: {node: '>= 6'} - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 - dev: true - /comment-parser@1.4.1: + comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} - dev: true - - /commitizen@4.3.0(@types/node@16.18.93)(typescript@5.4.3): - resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} - engines: {node: '>= 12'} - hasBin: true - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@16.18.93)(typescript@5.4.3) - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.5 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.7 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - '@types/node' - - typescript - dev: true - /compare-func@2.0.0: + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - /compatfactory@3.0.0(typescript@5.4.3): + compatfactory@3.0.0: resolution: {integrity: sha512-WD5kF7koPwVoyKL8p0LlrmIZtilrD46sQStyzzxzTFinMKN2Dxk1hN+sddLSQU1mGIZvQfU8c+ONSghvvM40jg==} engines: {node: '>=14.9.0'} peerDependencies: typescript: '>=3.x || >= 4.x || >= 5.x' - dependencies: - helpertypes: 0.0.19 - typescript: 5.4.3 - dev: true - /compose-function@3.0.3: - resolution: {integrity: sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==} - dependencies: - arity-n: 1.0.4 - dev: true - - /concat-map@0.0.1: + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /config-chain@1.1.13: + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - dev: true - /conventional-changelog-angular@8.0.0: + conventional-changelog-angular@8.0.0: resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} engines: {node: '>=18'} - dependencies: - compare-func: 2.0.0 - dev: true - /conventional-changelog-writer@8.0.0: + conventional-changelog-writer@8.0.0: resolution: {integrity: sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==} engines: {node: '>=18'} hasBin: true - dependencies: - '@types/semver': 7.5.8 - conventional-commits-filter: 5.0.0 - handlebars: 4.7.8 - meow: 13.2.0 - semver: 7.6.3 - dev: true - /conventional-commit-types@3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: true - - /conventional-commits-filter@5.0.0: + conventional-commits-filter@5.0.0: resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} engines: {node: '>=18'} - dev: true - /conventional-commits-parser@6.0.0: + conventional-commits-parser@6.0.0: resolution: {integrity: sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==} engines: {node: '>=18'} hasBin: true - dependencies: - meow: 13.2.0 - dev: true - /convert-hrtime@5.0.0: + convert-hrtime@5.0.0: resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} engines: {node: '>=12'} - dev: true - /convert-source-map@2.0.0: + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} - dependencies: - browserslist: 4.23.0 - dev: true + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - /core-util-is@1.0.3: + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true - - /cosmiconfig-typescript-loader@5.0.0(@types/node@16.18.93)(cosmiconfig@9.0.0)(typescript@5.4.3): - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} - requiresBuild: true - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' - dependencies: - '@types/node': 16.18.93 - cosmiconfig: 9.0.0(typescript@5.4.3) - jiti: 1.21.0 - typescript: 5.4.3 - dev: true - optional: true - /cosmiconfig@8.3.6(typescript@5.4.3): + cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -3085,15 +1866,8 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.4.3 - dev: true - /cosmiconfig@9.0.0(typescript@5.4.3): + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: @@ -3101,245 +1875,83 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - typescript: 5.4.3 - dev: true - /cross-spawn@7.0.3: + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - /crosspath@2.0.0: + crosspath@2.0.0: resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} engines: {node: '>=14.9.0'} - dependencies: - '@types/node': 17.0.45 - dev: true - - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true - /crypto-random-string@4.0.0: + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - dependencies: - type-fest: 1.4.0 - dev: true - /cspell-config-lib@8.13.0: - resolution: {integrity: sha512-KsTzkv5OLb2PSDq+3yVeS6fCsLvqgEFDJ79I+3VZqWyAmixi2LZMdaobbXXItJRNiDuQ9RnbG2UM9smcJCQTUA==} + cspell-config-lib@8.13.1: + resolution: {integrity: sha512-sXUFOyxvk+qDkoQdFkVEqj1hfQWzMi+tbi6ksiotQaqpm7r+YitZLSgwJjN4xgDO/rTLyP70k9fagdZ67MVZbw==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-types': 8.13.0 - comment-json: 4.2.4 - yaml: 2.5.0 - dev: true - /cspell-dictionary@8.13.0: - resolution: {integrity: sha512-+ZmB7ReBkAba9S0CmYOMm6EVsqyNlRg8V7I0PP9ttMriaGJ4yO+9IIsn6wI79pYB4DaDNBxblLgs12eMWOlNeQ==} + cspell-dictionary@8.13.1: + resolution: {integrity: sha512-Z0T4J4ahOJaHmWq83w24KXGik1zeauO5WvDRyzDyaSgpbA5MN2hN98LvxaIx72g3I+trtRK77XFcKginuME9EA==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-pipe': 8.13.0 - '@cspell/cspell-types': 8.13.0 - cspell-trie-lib: 8.13.0 - fast-equals: 5.0.1 - dev: true - /cspell-gitignore@8.13.0: - resolution: {integrity: sha512-tu3h6JbejYkGgn9VgW1VAoYchFg3tUtLAzL9oVnkPc58n7gwQpz1cLSKzGpmWyXzjFd6pX0aywnkcOBeWaudMQ==} + cspell-gitignore@8.13.1: + resolution: {integrity: sha512-XyZ3X5d6x0gkWtNXSAQRcPMG41bEdLx9cTgZCYCJhEZCesU1VpNm60F3oc11dMLkO+BqPH3An+AO/YEIiaje3A==} engines: {node: '>=18'} hasBin: true - dependencies: - '@cspell/url': 8.13.0 - cspell-glob: 8.13.0 - cspell-io: 8.13.0 - find-up-simple: 1.0.0 - dev: true - /cspell-glob@8.13.0: - resolution: {integrity: sha512-4xghVAHGSwDEOB+OsXDmQoBVfo/NtUpxPlmd89vaZtqv1CmnlUzmglEb13jYx6oFydDaY+mSRKw2V0unATnpBA==} + cspell-glob@8.13.1: + resolution: {integrity: sha512-rW1A3t7YvPXxcC4z1pp1m9coeWzUVUmRjUw3vMNGlEDC2zecB39KKbEqesziBqnBceNAY7O5itllIGFKr03vqA==} engines: {node: '>=18'} - dependencies: - '@cspell/url': 8.13.0 - micromatch: 4.0.7 - dev: true - /cspell-grammar@8.13.0: - resolution: {integrity: sha512-vrfIO2LqZPPA7Pe8xPPJwXKiXq9nWJxH5JesdVFQZ+DtkklzC07J8OrGTFFo0/r9/CfQMNqqs0XbtRcoa+xRYg==} + cspell-grammar@8.13.1: + resolution: {integrity: sha512-HUkd24bulvBwee1UNBurxGlPUOiywb9pB34iXXoxFWuloHohZ/DuFlE8B/31ZtjW48ffEYIu3QZfWhcnD8e81w==} engines: {node: '>=18'} hasBin: true - dependencies: - '@cspell/cspell-pipe': 8.13.0 - '@cspell/cspell-types': 8.13.0 - dev: true - /cspell-io@8.13.0: - resolution: {integrity: sha512-9rcHUWHmNum7w7eCVJrUZgvJpL30OAYum8Ij9NenqwGhim95tPQc2CtHZ2aibJ6G4c4Aape9ytSgNxoIYG97DQ==} + cspell-io@8.13.1: + resolution: {integrity: sha512-t2sgZuWGBzPSOAStfvz/U3KoFEfDxEt1cXZj0Kd0Vs36v2uoLktm6ihMe7XNFu7zIdOFSajsYQ8Bi4RSLPGPxQ==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-service-bus': 8.13.0 - '@cspell/url': 8.13.0 - dev: true - /cspell-lib@8.13.0: - resolution: {integrity: sha512-WTVswCFQduFrEBKTj0EKB5GeEfMwQou23DEcudyWIc2sFoovYF0d/Fr6J69HbGIvwQq1ToPM4eayoQK0/Qn6Mg==} + cspell-lib@8.13.1: + resolution: {integrity: sha512-H1HHG1pmATSeAaY0KmQ0xnkbSqJLvh9QpXWARDLWKUBvtE+/l44H4yVhIp/No3rM7PKMmb82GuSJzMaoIhHFLQ==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-bundled-dicts': 8.13.0 - '@cspell/cspell-pipe': 8.13.0 - '@cspell/cspell-resolver': 8.13.0 - '@cspell/cspell-types': 8.13.0 - '@cspell/dynamic-import': 8.13.0 - '@cspell/strong-weak-map': 8.13.0 - '@cspell/url': 8.13.0 - clear-module: 4.1.2 - comment-json: 4.2.4 - cspell-config-lib: 8.13.0 - cspell-dictionary: 8.13.0 - cspell-glob: 8.13.0 - cspell-grammar: 8.13.0 - cspell-io: 8.13.0 - cspell-trie-lib: 8.13.0 - env-paths: 3.0.0 - fast-equals: 5.0.1 - gensequence: 7.0.0 - import-fresh: 3.3.0 - resolve-from: 5.0.0 - vscode-languageserver-textdocument: 1.0.11 - vscode-uri: 3.0.8 - xdg-basedir: 5.1.0 - dev: true - /cspell-trie-lib@8.13.0: - resolution: {integrity: sha512-3v9q5nUF0Y88bQQLmSXUcf7izsu+Dj/g5Dk0hqqykcsobqq4EN2dmfZH+Ej1Q5h3DCiwPemGb7IPg8pfqTHpAg==} + cspell-trie-lib@8.13.1: + resolution: {integrity: sha512-2moCsIYDmMT7hp5Non3CvWatfXptFWCuxjbXQGDNvWJ2Cj3oso/oBe4802GJv5GEenv9QBWmEtum/E7rFcx4JA==} engines: {node: '>=18'} - dependencies: - '@cspell/cspell-pipe': 8.13.0 - '@cspell/cspell-types': 8.13.0 - gensequence: 7.0.0 - dev: true - /cspell@8.13.0: - resolution: {integrity: sha512-sByh0pN9NTBA9eGOsuN6r0c8vwD6LVwH4rhHfCMQ1Gjw5ckH9Obp8JxwrIM0fxm14EXQDcKaAewRfHYx2d1jRg==} + cspell@8.13.1: + resolution: {integrity: sha512-Bqppilpwx9xt3jZPaYcqe1JPteNmfKhx9pw9YglZEePDUzdiJQNVIfs31589GAnXjgdqqctR8N87ffLcaBNPXw==} engines: {node: '>=18'} hasBin: true - dependencies: - '@cspell/cspell-json-reporter': 8.13.0 - '@cspell/cspell-pipe': 8.13.0 - '@cspell/cspell-types': 8.13.0 - '@cspell/dynamic-import': 8.13.0 - '@cspell/url': 8.13.0 - chalk: 5.3.0 - chalk-template: 1.1.0 - commander: 12.1.0 - cspell-dictionary: 8.13.0 - cspell-gitignore: 8.13.0 - cspell-glob: 8.13.0 - cspell-io: 8.13.0 - cspell-lib: 8.13.0 - fast-glob: 3.3.2 - fast-json-stable-stringify: 2.1.0 - file-entry-cache: 9.0.0 - get-stdin: 9.0.0 - semver: 7.6.3 - strip-ansi: 7.1.0 - dev: true - - /cz-conventional-changelog@3.3.0(@types/node@16.18.93)(typescript@5.4.3): - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} - dependencies: - chalk: 2.4.2 - commitizen: 4.3.0(@types/node@16.18.93)(typescript@5.4.3) - conventional-commit-types: 3.0.0 - lodash.map: 4.6.0 - longest: 2.0.1 - word-wrap: 1.2.5 - optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@16.18.93)(typescript@5.4.3) - transitivePeerDependencies: - - '@types/node' - - typescript - dev: true - - /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - dev: true - /data-view-buffer@1.0.1: + data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: + data-view-byte-length@1.0.1: resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: + data-view-byte-offset@1.0.0: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - dev: true - /deassert@1.0.2(rollup@4.13.2): + deassert@1.0.2: resolution: {integrity: sha512-cF1/OfxthRQkkC4vOGVT9fs0wuPWIBAPzEk/YI1XSq3JZdgSXmLW1aEegpNLq9VgypeAtmvI8vHiQ31YBK5vvQ==} hasBin: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.13.2) - acorn: 8.12.0 - acorn-walk: 8.3.2 - magic-string: 0.30.11 - transitivePeerDependencies: - - rollup - dev: true - /debug@3.2.7: + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.3 - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.6: + debug@4.3.6: resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: @@ -3347,439 +1959,222 @@ packages: peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.2 - - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true - /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: babel-plugin-macros: optional: true - dev: true - /deep-eql@5.0.2: + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - dev: true - /deep-extend@0.6.0: + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true - /deep-freeze@0.0.1: - resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==} - dev: true - - /deep-is@0.1.4: + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge-ts@5.1.0: - resolution: {integrity: sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==} + deepmerge-ts@7.1.0: + resolution: {integrity: sha512-q6bNsfNBtgr8ZOQqmZbl94MmYWm+QcDNIkqCxVWiw1vKvf+y/N2dZQKdnDXn4c5Ygt/y63tDof6OCN+2YwWVEg==} engines: {node: '>=16.0.0'} - /deepmerge@4.3.1: + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true - /defaults@1.0.4: + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - requiresBuild: true - dependencies: - clone: 1.0.4 - dev: true - /define-data-property@1.1.4: + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: true - /define-properties@1.2.1: + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - dev: true - - /detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: true - - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - /detect-indent@7.0.1: + detect-indent@7.0.1: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} - dev: true - /detect-newline@4.0.1: + detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /diff-sequences@29.6.3: + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /dir-glob@3.0.1: + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - /doctrine@2.1.0: + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: + doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - /dot-prop@5.3.0: + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - /dot-prop@7.2.0: + dot-prop@7.2.0: resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - type-fest: 2.19.0 - dev: true - /duplexer2@0.1.4: + duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - dependencies: - readable-stream: 2.3.8 - dev: true - /eastasianwidth@0.2.0: + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - /easy-table@1.2.0: + easy-table@1.2.0: resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} - dependencies: - ansi-regex: 5.0.1 - optionalDependencies: - wcwidth: 1.0.1 - dev: true - /electron-to-chromium@1.4.711: - resolution: {integrity: sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w==} - dev: true + electron-to-chromium@1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} - /emoji-regex@10.3.0: + emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: true - /emoji-regex@8.0.0: + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - /emoji-regex@9.2.2: + emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /emojilib@2.4.0: + emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: true - - /encode-registry@3.0.1: - resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} - engines: {node: '>=10'} - dependencies: - mem: 8.1.1 - dev: true - /enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - dev: true - /entities@4.5.0: + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true - /env-ci@11.0.0: + env-ci@11.0.0: resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} engines: {node: ^18.17 || >=20.6.1} - dependencies: - execa: 8.0.1 - java-properties: 1.0.2 - dev: true - /env-paths@2.2.1: + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: true - /env-paths@3.0.0: + env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} - /error-ex@1.3.2: + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} - dependencies: - 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.7 - 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.5 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - dev: true - /es-errors@1.3.0: + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dev: true - /es-object-atoms@1.0.0: + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: + es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: + es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: + es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - dev: true - - /escalade@3.1.2: + + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - dev: true - /escape-string-regexp@1.0.5: + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true - /escape-string-regexp@4.0.0: + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /escape-string-regexp@5.0.0: + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - dev: true - /eslint-compat-utils@0.1.2(eslint@8.57.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' - dependencies: - eslint: 8.57.0 - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' - dependencies: - eslint: 8.57.0 - dev: true - /eslint-doc-generator@1.7.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-C1hE1acb/jruOO+cJe/rIsf+Kgq32JhimTgTtffwsjckKEJ800gx26kUtZhP+8Xm8M/n3BVBZ0XiNbojnNDqHQ==} + eslint-doc-generator@1.7.1: + resolution: {integrity: sha512-i1Zjl+Xcy712SZhbceCeMVaIdhbFqY27i8d7f9gyb9P/6AQNnPA0VCWynAFVGYa0hpeR5kwUI09+GBELgC2nnA==} engines: {node: ^14.18.0 || ^16.0.0 || >=18.0.0} hasBin: true peerDependencies: eslint: '>= 7' - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.3) - ajv: 8.12.0 - boolean: 3.2.0 - commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.4.3) - deepmerge: 4.3.1 - dot-prop: 7.2.0 - eslint: 8.57.0 - jest-diff: 29.7.0 - json-schema-traverse: 1.0.0 - markdown-table: 3.0.3 - no-case: 3.0.4 - type-fest: 3.13.1 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /eslint-import-resolver-node@0.3.9: + eslint-flat-config-utils@0.3.0: + resolution: {integrity: sha512-FaFQLUunAl6YK7aU/pT23DXYVWg/cEHbSfxwAxpCGT6Su8H9RfkmzKLh1G2bba46p6dTlQeA4VTiV5//0SeToQ==} + + eslint-formatting-reporter@0.0.0: + resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} + peerDependencies: + eslint: '>=8.40.0' + + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1: resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' - dependencies: - debug: 4.3.6 - enhanced-resolve: 5.17.0 - eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.3 - is-core-module: 2.13.1 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-module-utils@2.8.1: resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -3799,73 +2194,40 @@ packages: optional: true eslint-import-resolver-webpack: optional: true - dependencies: - '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.57.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + eslint-parser-plain@0.1.0: + resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==} + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 - eslint: 8.57.0 - eslint-compat-utils: 0.1.2(eslint@8.57.0) - dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): + eslint-plugin-eslint-comments@3.2.0: resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.57.0 - ignore: 5.3.1 - dev: true - /eslint-plugin-eslint-plugin@6.1.0(eslint@8.57.0): - resolution: {integrity: sha512-nLbyNhdHgWuEu/hzeknzz+5G52KcL70cUP+7jOVPpf0oGLXOd+QLoosOhzST9nEhR4XsD2UzbdnO1ddLqKDodw==} + eslint-plugin-eslint-plugin@6.2.0: + resolution: {integrity: sha512-+SSHlThUMBb6MhXl/CqNhKvnUY3111s/1vEcu+paOwTJzniTanRZCfl0kQXNfK57XsWJ5aRsiwMlPg/FgnYsag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - dependencies: - eslint: 8.57.0 - eslint-utils: 3.0.0(eslint@8.57.0) - estraverse: 5.3.0 - dev: true - /eslint-plugin-functional@6.1.1(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-m1gNU6iQltEYhjJZIw+vzdsa8yCHTrQ1u7XU0cG05+Z6oGEbOXYmjFl0UPWYtWtp4/ubjxLsh8QqUCCHC/Utmg==} - engines: {node: '>=16.10.0'} + eslint-plugin-format@0.1.2: + resolution: {integrity: sha512-ZrcO3aiumgJ6ENAv65IWkPjtW77ML/5mp0YrRK0jdvvaZJb+4kKWbaQTMr/XbJo6CtELRmCApAziEKh7L2NbdQ==} peerDependencies: - eslint: ^8.0.0 - typescript: '>=4.3.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.3) - deepmerge-ts: 5.1.0 - escape-string-regexp: 4.0.0 - eslint: 8.57.0 - is-immutable-type: 2.0.4(eslint@8.57.0)(typescript@5.4.3) - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true + eslint: ^8.40.0 || ^9.0.0 - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import-x@3.1.0: + resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^8.56.0 || ^9.0.0-0 + + eslint-plugin-import@2.29.1: resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3874,2354 +2236,1087 @@ packages: peerDependenciesMeta: '@typescript-eslint/parser': optional: true - dependencies: - '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-plugin-jsdoc@48.2.2(eslint@8.57.0): - resolution: {integrity: sha512-S0Gk+rpT5w/ephKCncUY7kUsix9uE4B9XI8D/fS1/26d8okE+vZsuG1IvIt4B6sJUdQqsnzi+YXfmh+HJG11CA==} + eslint-plugin-jsdoc@48.11.0: + resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - dependencies: - '@es-joy/jsdoccomment': 0.42.0 - are-docs-informative: 0.0.2 - comment-parser: 1.4.1 - debug: 4.3.6 - escape-string-regexp: 4.0.0 - eslint: 8.57.0 - esquery: 1.5.0 - is-builtin-module: 3.2.1 - semver: 7.6.3 - spdx-expression-parse: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-markdown@3.0.1(eslint@8.57.0): - resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.57.0 - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true + eslint: '>=6.0.0' + + eslint-plugin-markdown@5.1.0: + resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8' - /eslint-plugin-n@17.9.0(eslint@8.57.0): - resolution: {integrity: sha512-CPSaXDXdrT4nsrOrO4mT4VB6FMUkoySRkHWuuJJHVqsIEjIeZgMY1H7AzSwPbDScikBmLN82KeM1u7ixV7PzGg==} + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - enhanced-resolve: 5.17.0 - eslint: 8.57.0 - eslint-plugin-es-x: 7.5.0(eslint@8.57.0) - get-tsconfig: 4.7.3 - globals: 15.6.0 - ignore: 5.3.1 - minimatch: 9.0.5 - semver: 7.6.3 - dev: true - /eslint-plugin-optimize-regex@1.2.1: + eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + + eslint-plugin-optimize-regex@1.2.1: resolution: {integrity: sha512-fUaU7Tj1G/KSTDTABJw4Wp427Rl7RPl9ViYTu1Jrv36fJw4DFhd4elPdXiuYtdPsNsvzn9GcVlKEssGIVjw0UQ==} engines: {node: '>=10'} - dependencies: - regexp-tree: 0.1.27 - dev: true - - /eslint-plugin-prettier@5.1.3(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - dependencies: - '@types/eslint': 9.6.0 - eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) - prettier: 3.2.5 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 - dev: true - /eslint-plugin-promise@7.0.0(eslint@8.57.0): + eslint-plugin-promise@7.0.0: resolution: {integrity: sha512-wb1ECT+b90ndBdAujhIdAU8oQ3Vt5gKqP/t78KOmg0ifynrvc2jGR9f6ndbOVNFpKf6jLUBlBBDF3H3Wk0JICg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - dependencies: - eslint: 8.57.0 - dev: true - /eslint-plugin-sonarjs@0.25.0(eslint@8.57.0): - resolution: {integrity: sha512-DaZOtpUucEZbvowgKxVFwICV6r0h7jSCAx0IHICvCowP+etFussnhtaiCPSnYAuwVJ+P/6UFUhkv7QJklpXFyA==} - engines: {node: '>=16'} + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.57.0 - dev: true + eslint: '>=8.44.0' - /eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + eslint-plugin-sonarjs@1.0.4: + resolution: {integrity: sha512-jF0eGCUsq/HzMub4ExAyD8x1oEgjOyB9XVytYGyWgSFvdiJQJp6IuP7RmtauCf06o6N/kZErh+zW4b10y1WZ+Q==} engines: {node: '>=16'} + peerDependencies: + eslint: ^8.0.0 || ^9.0.0 + + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint/eslintrc': 2.1.4 - ci-info: 4.0.0 - clean-regexp: 1.0.0 - core-js-compat: 3.36.1 - eslint: 8.57.0 - esquery: 1.5.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - jsesc: 3.0.2 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - regjsparser: 0.10.0 - semver: 7.6.3 - strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0)(typescript@5.4.3)(vitest@2.0.5): - resolution: {integrity: sha512-+PnZ2u/BS+f5FiuHXz4zKsHPcMKHie+K+1Uvu/x91ovkCMEOJqEI8E9Tw1Wzx2QRz4MHOBHYf1ypO8N1K0aNAA==} + eslint-plugin-vitest@0.5.4: + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' + eslint: ^8.57.0 || ^9.0.0 vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true vitest: optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - eslint: 8.57.0 - vitest: 2.0.5(@types/node@16.18.93) - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /eslint-scope@5.1.1: + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - /eslint-utils@3.0.0(eslint@8.57.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 2.1.0 - dev: true + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /eslint-visitor-keys@2.1.0: + eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} - dev: true - /eslint-visitor-keys@3.4.3: + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint-visitor-keys@4.0.0: + eslint-visitor-keys@4.0.0: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + eslint@9.8.0: + resolution: {integrity: sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 - '@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.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.6 - 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.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - 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 - transitivePeerDependencies: - - supports-color - - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 4.0.0 - dev: true - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - /esrecurse@4.3.0: + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - /estraverse@4.3.0: + estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} - dev: true - /estraverse@5.3.0: + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - /estree-walker@2.0.2: + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - /estree-walker@3.0.3: + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: true - /esutils@2.0.3: + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - /eventemitter3@5.0.1: + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true - /execa@5.1.1: + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - dependencies: - 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: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - /execa@9.2.0: - resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==} + execa@9.3.0: + resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} engines: {node: ^18.19.0 || >=20.5.0} - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.3 - figures: 6.1.0 - get-stream: 9.0.1 - human-signals: 7.0.0 - is-plain-obj: 4.1.0 - is-stream: 4.0.1 - npm-run-path: 5.3.0 - pretty-ms: 9.0.0 - signal-exit: 4.1.0 - strip-final-newline: 4.0.0 - yoctocolors: 2.0.2 - dev: true - - /expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: true - - /expect-type@0.15.0: - resolution: {integrity: sha512-yWnriYB4e8G54M5/fAFj7rCIBiKs1HAACaY13kCz6Ku0dezjS9aMcfcdVK2X8Tv2tEV1BPz/wKfQ7WA4S/d8aA==} - dev: true - - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - /fast-deep-equal@3.1.3: + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-diff@1.3.0: + fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true - /fast-equals@5.0.1: + fast-equals@5.0.1: resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} engines: {node: '>=6.0.0'} - dev: true - /fast-glob@3.3.2: + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - /fast-json-stable-stringify@2.1.0: + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fast-levenshtein@2.0.6: + fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - dev: true + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} - /fastq@1.17.1: + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - dependencies: - reusify: 1.0.4 - /fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - dev: true - - /figures@2.0.0: + figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /figures@6.1.0: + figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - dependencies: - is-unicode-supported: 2.0.0 - dev: true - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} - /file-entry-cache@9.0.0: + file-entry-cache@9.0.0: resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} engines: {node: '>=18'} - dependencies: - flat-cache: 5.0.0 - dev: true - /fill-range@7.1.1: + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - - /filter-iterator@0.0.1: - resolution: {integrity: sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA==} - dev: true - - /filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true - - /find-node-modules@2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} - dependencies: - findup-sync: 4.0.0 - merge: 2.1.1 - dev: true - - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true - /find-up-simple@1.0.0: + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} - dev: true - /find-up@2.1.0: + find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up@4.1.0: + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - /find-up@5.0.0: + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - /find-versions@6.0.0: + find-versions@6.0.0: resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} engines: {node: '>=18'} - dependencies: - semver-regex: 4.0.5 - super-regex: 1.0.0 - dev: true - - /findup-sync@4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.7 - resolve-dir: 1.0.1 - dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - /flat-cache@5.0.0: + flat-cache@5.0.0: resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} engines: {node: '>=18'} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - dev: true - /flatted@3.3.1: + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - /for-each@0.3.3: + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - /from2@2.3.0: + from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - dev: true - - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - /fs-extra@11.2.0: + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - /fs.realpath@1.0.0: + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.3: + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - requiresBuild: true - dev: true - optional: true - /function-bind@1.1.2: + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - /function-timeout@1.0.2: + function-timeout@1.0.2: resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} engines: {node: '>=18'} - dev: true - /function.prototype.name@1.1.6: + function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: + functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - /gensequence@7.0.0: + gensequence@7.0.0: resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} engines: {node: '>=18'} - dev: true - /gensync@1.0.0-beta.2: + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true - /get-caller-file@2.0.5: + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true - /get-east-asian-width@1.2.0: + get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - dev: true - /get-func-name@2.0.2: + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - /get-intrinsic@1.2.4: + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - dev: true - /get-stdin@9.0.0: + get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} - dev: true - /get-stream@6.0.1: + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true - /get-stream@7.0.1: + get-stream@7.0.1: resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} engines: {node: '>=16'} - dev: true - /get-stream@8.0.1: + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - dev: true - /get-stream@9.0.1: + get-stream@9.0.1: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - dependencies: - '@sec-ant/readable-stream': 0.4.1 - is-stream: 4.0.1 - dev: true - /get-symbol-description@1.0.2: + get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} - /git-hooks-list@3.1.0: + git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} - dev: true - /git-log-parser@1.2.0: - resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} - dependencies: - argv-formatter: 1.0.0 - spawn-error-forwarder: 1.0.0 - split2: 1.0.0 - stream-combiner2: 1.1.1 - through2: 2.0.5 - traverse: 0.6.8 - dev: true + git-log-parser@1.2.1: + resolution: {integrity: sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==} - /glob-parent@5.1.2: + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - /glob-parent@6.0.2: + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 7.1.2 - path-scurry: 1.11.1 - dev: true - /glob@10.4.5: + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - dev: true - /glob@11.0.0: + glob@11.0.0: resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} engines: {node: 20 || >=22} hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 4.0.1 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 2.0.0 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - /glob@8.1.0: + glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - /global-directory@4.0.1: + global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - dependencies: - ini: 4.1.1 - dev: true - - /global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: true - - /global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: true - /globals@11.12.0: + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - - /globals@14.0.0: + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - dev: true - /globals@15.6.0: - resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} engines: {node: '>=18'} - dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - /globby@11.1.0: + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - /globby@13.2.2: + globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 4.0.0 - dev: true - /globby@14.0.1: + globby@14.0.1: resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} engines: {node: '>=18'} - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - dev: true - /globrex@0.1.2: + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - /gopd@1.0.1: + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 - dev: true - /graceful-fs@4.2.10: + graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true - /graceful-fs@4.2.11: + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - /graphemer@1.4.0: + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - /handlebars@4.7.8: + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - /has-bigints@1.0.2: + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - /has-flag@3.0.0: + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true - /has-flag@4.0.0: + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-own-prop@2.0.0: + has-own-prop@2.0.0: resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} engines: {node: '>=8'} - dev: true - - /has-own-property@0.1.0: - resolution: {integrity: sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw==} - dev: true - /has-property-descriptors@1.0.2: + has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.0 - dev: true - /has-proto@1.0.3: + has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - dev: true - /has-symbols@1.0.3: + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true - /has-tostringtag@1.0.2: + has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /hasown@2.0.2: + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - /helpertypes@0.0.19: + helpertypes@0.0.19: resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} engines: {node: '>=10.0.0'} - dev: true - /highlight.js@10.7.3: + highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true - - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: true - /hook-std@3.0.0: + hook-std@3.0.0: resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /hosted-git-info@2.8.9: + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - lru-cache: 10.2.0 - dev: true - /html-escaper@2.0.2: + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - /http-proxy-agent@7.0.2: + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - dev: true - /human-signals@2.1.0: + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true - /human-signals@5.0.0: + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - dev: true - /human-signals@7.0.0: + human-signals@7.0.0: resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} engines: {node: '>=18.18.0'} - dev: true - /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + husky@9.1.4: + resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} engines: {node: '>=18'} hasBin: true - dev: true - - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - /identity-function@1.0.0: - resolution: {integrity: sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw==} - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - - /ignore@5.3.1: + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - /import-fresh@3.3.0: + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - /import-from-esm@1.3.3: - resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} + import-from-esm@1.3.4: + resolution: {integrity: sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==} engines: {node: '>=16.20'} - dependencies: - debug: 4.3.6 - import-meta-resolve: 4.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /import-meta-resolve@4.1.0: + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - dev: true - /imurmurhash@0.1.4: + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - /indent-string@4.0.0: + indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - dev: true - /indent-string@5.0.0: + indent-string@5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - dev: true - /index-to-position@0.1.2: + index-to-position@0.1.2: resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} engines: {node: '>=18'} - dev: true - /individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - dev: true - - /inflight@1.0.6: + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - /inherits@2.0.4: + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ini@1.3.8: + ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - /ini@4.1.1: + ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /ini@4.1.2: - resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - /internal-slot@1.0.7: + internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - dev: true - /into-stream@7.0.0: + into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} - dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 - dev: true - /is-alphabetical@1.0.4: + is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: true - /is-alphanumerical@1.0.4: + is-alphanumerical@1.0.4: resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: true - /is-array-buffer@3.0.4: + is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - /is-bigint@1.0.4: + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - /is-boolean-object@1.1.2: + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: true - /is-builtin-module@3.2.1: + is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.2 - dev: true + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} - /is-data-view@1.0.1: + is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} - dependencies: - is-typed-array: 1.1.13 - dev: true - /is-date-object@1.0.5: + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - /is-decimal@1.0.4: + is-decimal@1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: true - /is-extglob@2.1.1: + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point@3.0.0: + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true - /is-fullwidth-code-point@4.0.0: + is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - dev: true - /is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.0.0: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - dependencies: - get-east-asian-width: 1.2.0 - dev: true - /is-glob@4.0.3: + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - /is-hexadecimal@1.0.4: + is-hexadecimal@1.0.4: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: true - - /is-immutable-type@2.0.4(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-kjNGSmAQdEj7NJ/Cim9u6OUB/efEsuoUU3fCygl+o0DBwNS0blVjRHumRBX9cBwpZQEQaYVpVLO635HqWvdZRw==} - peerDependencies: - eslint: '*' - typescript: '>=4.7.4' - dependencies: - '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /is-immutable-type@4.0.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-gyFBCXv+NikTs8/PGZhgjbMmFZQ5jvHGZIsVu6+/9Bk4K7imlWBIDN7hTr9fNioGzFg71I4YM3z8f0aKXarTAw==} + is-immutable-type@5.0.0: + resolution: {integrity: sha512-mcvHasqbRBWJznuPqqHRKiJgYAz60sZ0mvO3bN70JbkuK7ksfmgc489aKZYxMEjIbRvyOseaTjaRZLRF/xFeRA==} peerDependencies: eslint: '*' typescript: '>=4.7.4' - dependencies: - '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - ts-declaration-location: 1.0.0(typescript@5.4.3) - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - dev: false - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - - /is-iterable@1.1.1: - resolution: {integrity: sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ==} - engines: {node: '>= 4'} - dev: true - /is-negative-zero@2.0.3: + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - dev: true - /is-number-object@1.0.7: + is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - - /is-number@4.0.0: - resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-obj@2.0.0: + is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - dev: true - /is-path-inside@3.0.3: + is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - /is-plain-obj@4.1.0: + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - dev: true - /is-regex@1.1.4: + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - dev: true - /is-shared-array-buffer@1.0.3: + is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - dev: true - /is-stream@2.0.1: + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true - /is-stream@3.0.0: + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /is-stream@4.0.1: + is-stream@4.0.1: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - dev: true - /is-string@1.0.7: + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 - dev: true - /is-symbol@1.0.4: + is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.13: + is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.15 - dev: true - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - /is-unicode-supported@2.0.0: + is-unicode-supported@2.0.0: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} - dev: true - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: true - - /is-weakref@1.0.2: + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.7 - dev: true - - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - /isarray@1.0.0: + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - /isarray@2.0.5: + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isbot@3.8.0: + isbot@3.8.0: resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==} engines: {node: '>=12'} - dev: true - /isexe@2.0.0: + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: true - - /issue-parser@7.0.0: - resolution: {integrity: sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==} + issue-parser@7.0.1: + resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} engines: {node: ^18.17 || >=20.6.1} - dependencies: - lodash.capitalize: 4.2.1 - lodash.escaperegexp: 4.1.2 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.uniqby: 4.7.0 - dev: true - /istanbul-lib-coverage@3.2.2: + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - dev: true - /istanbul-lib-instrument@6.0.3: + istanbul-lib-instrument@6.0.3: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} - dependencies: - '@babel/core': 7.24.1 - '@babel/parser': 7.25.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-lib-report@3.0.1: + istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: true - /istanbul-lib-source-maps@5.0.6: + istanbul-lib-source-maps@5.0.6: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.6 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - dev: true - /istanbul-reports@3.1.7: + istanbul-reports@3.1.7: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - dev: true - - /iterable-lookahead@1.0.0: - resolution: {integrity: sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ==} - engines: {node: '>=4'} - dev: true - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@3.4.3: + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@4.0.1: + jackspeak@4.0.1: resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} engines: {node: 20 || >=22} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /java-properties@1.0.2: + java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} - dev: true - /jest-diff@29.7.0: + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - /jest-get-type@29.6.3: + jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - dev: true - /js-tokens@4.0.0: + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - /js-yaml@4.1.0: + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - dependencies: - argparse: 2.0.1 - /jsdoc-type-pratt-parser@4.0.0: + jsdoc-type-pratt-parser@4.0.0: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} - dev: true - /jsesc@0.5.0: + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true - dev: true - /jsesc@2.5.2: + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true - /jsesc@3.0.2: + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} hasBin: true - dev: true - /json-buffer@3.0.1: + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - /json-parse-better-errors@1.0.2: + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors@2.3.1: + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /json-schema-traverse@0.4.1: + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - /json-schema-traverse@1.0.0: + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true - - /json5@1.0.2: + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - dev: true - /jsonc-parser@3.2.1: + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: true - /jsonfile@6.1.0: + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - /keyv@4.5.4: + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - /knip@5.7.0(@types/node@16.18.93)(typescript@5.4.3): - resolution: {integrity: sha512-wTw7Mt7nGa8dBelC3UrAzBtRqHwER7o6m+GzNYGMlt6HnJ/5IoKoxC/1KvPfyXanEJfsSq0ciSchdtnN0RA9RA==} + knip@5.27.0: + resolution: {integrity: sha512-W8+jhO7i5pXRUqOzhJGm2DT5/d9aQjyrYTCSojqJxFOvi7ku/nHKzpBO3WNf4eflJo0t3zitmUkM69g53qoZQw==} engines: {node: '>=18.6.0'} hasBin: true peerDependencies: '@types/node': '>=18' typescript: '>=5.0.4' - dependencies: - '@ericcornelissen/bash-parser': 0.5.2 - '@nodelib/fs.walk': 2.0.0 - '@npmcli/map-workspaces': 3.0.4 - '@npmcli/package-json': 5.0.0 - '@pnpm/logger': 5.0.0 - '@pnpm/workspace.pkgs-graph': 2.0.15(@pnpm/logger@5.0.0) - '@snyk/github-codeowners': 1.1.0 - '@types/node': 16.18.93 - '@types/picomatch': 2.3.3 - easy-table: 1.2.0 - fast-glob: 3.3.2 - jiti: 1.21.0 - js-yaml: 4.1.0 - micromatch: 4.0.5 - minimist: 1.2.8 - picocolors: 1.0.0 - picomatch: 4.0.1 - pretty-ms: 9.0.0 - resolve: 1.22.8 - smol-toml: 1.1.4 - strip-json-comments: 5.0.1 - summary: 2.1.0 - typescript: 5.4.3 - zod: 3.22.4 - zod-validation-error: 3.0.3(zod@3.22.4) - transitivePeerDependencies: - - bluebird - - domexception - dev: true - /levn@0.4.1: + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} - dev: true - /lines-and-columns@1.2.4: + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - /linkify-it@5.0.0: + linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - dependencies: - uc.micro: 2.1.0 - dev: true - /lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + lint-staged@15.2.8: + resolution: {integrity: sha512-PUWFf2zQzsd9EFU+kM1d7UP+AZDbKFKuj+9JNVTBkhUFhbg4MAt6WfyMMwBfM4lYqd4D2Jwac5iuTu9rVj4zCQ==} engines: {node: '>=18.12.0'} hasBin: true - dependencies: - 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 - transitivePeerDependencies: - - supports-color - dev: true - /listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} engines: {node: '>=18.0.0'} - dependencies: - cli-truncate: 4.0.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.1 - wrap-ansi: 9.0.0 - dev: true - /load-json-file@4.0.0: + load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: true + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} - /locate-path@2.0.0: + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - /lodash-es@4.17.21: + lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true - /lodash.capitalize@4.2.1: + lodash.capitalize@4.2.1: resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} - dev: true - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: true - - /lodash.escaperegexp@4.1.2: + lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - dev: true - /lodash.isplainobject@4.0.6: + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true - /lodash.isstring@4.0.1: + lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: true - - /lodash.map@4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} - dev: true - /lodash.merge@4.6.2: + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - /lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - requiresBuild: true - dev: true - optional: true - - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - requiresBuild: true - dev: true - optional: true - - /lodash.uniqby@4.7.0: + lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - dev: true - /lodash@4.17.21: + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} - dependencies: - ansi-escapes: 6.2.0 - cli-cursor: 4.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 - dev: true - /longest@2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} - dev: true - - /loupe@3.1.1: + loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} - dependencies: - get-func-name: 2.0.2 - dev: true - /lower-case@2.0.2: + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.6.2 - dev: true - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - dev: true + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - /lru-cache@11.0.0: + lru-cache@11.0.0: resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} engines: {node: 20 || >=22} - dev: true - /lru-cache@5.1.1: + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: true - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string@0.16.0: - resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==} - dependencies: - vlq: 0.2.3 - dev: true - - /magic-string@0.30.11: + magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - dev: true - /magicast@0.3.4: + magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} - dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 - source-map-js: 1.2.0 - dev: true - /make-dir@4.0.0: + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - dependencies: - semver: 7.6.3 - dev: true - - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - dependencies: - p-defer: 1.0.0 - dev: true - - /map-obj@2.0.0: - resolution: {integrity: sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==} - engines: {node: '>=4'} - dev: true - - /markdown-it@14.0.0: - resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} - hasBin: true - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - dev: true - /markdown-it@14.1.0: + markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - dev: true - /markdown-table@3.0.3: + markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: true - /markdownlint-cli@0.39.0: - resolution: {integrity: sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==} + markdownlint-cli2-formatter-default@0.0.4: + resolution: {integrity: sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg==} + peerDependencies: + markdownlint-cli2: '>=0.0.4' + + markdownlint-cli2@0.13.0: + resolution: {integrity: sha512-Pg4nF7HlopU97ZXtrcVISWp3bdsuc5M0zXyLp2/sJv2zEMlInrau0ZKK482fQURzVezJzWBpNmu4u6vGAhij+g==} engines: {node: '>=18'} hasBin: true - dependencies: - commander: 11.1.0 - get-stdin: 9.0.0 - glob: 10.3.10 - ignore: 5.3.1 - js-yaml: 4.1.0 - jsonc-parser: 3.2.1 - markdownlint: 0.33.0 - minimatch: 9.0.5 - run-con: 1.3.2 - dev: true - - /markdownlint-micromark@0.1.8: - resolution: {integrity: sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==} - engines: {node: '>=16'} - dev: true - /markdownlint-micromark@0.1.9: + markdownlint-micromark@0.1.9: resolution: {integrity: sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==} engines: {node: '>=18'} - dev: true - - /markdownlint@0.33.0: - resolution: {integrity: sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==} - engines: {node: '>=18'} - dependencies: - markdown-it: 14.0.0 - markdownlint-micromark: 0.1.8 - dev: true - /markdownlint@0.34.0: + markdownlint@0.34.0: resolution: {integrity: sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==} engines: {node: '>=18'} - dependencies: - markdown-it: 14.1.0 - markdownlint-micromark: 0.1.9 - dev: true - /marked-terminal@7.0.0(marked@12.0.1): - resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} + marked-terminal@7.1.0: + resolution: {integrity: sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <13' - dependencies: - ansi-escapes: 6.2.0 - chalk: 5.3.0 - cli-highlight: 2.1.11 - cli-table3: 0.6.3 - marked: 12.0.1 - node-emoji: 2.1.3 - supports-hyperlinks: 3.0.0 - dev: true + marked: '>=1 <14' - /marked@12.0.1: - resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} + marked@12.0.2: + resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} engines: {node: '>= 18'} hasBin: true - dev: true - /mdast-util-from-markdown@0.8.5: + mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /mdast-util-to-string@2.0.0: + mdast-util-to-string@2.0.0: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: true - /mdurl@2.0.0: + mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - dev: true - - /mem@6.1.1: - resolution: {integrity: sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==} - engines: {node: '>=8'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: true - - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: true - /meow@13.2.0: + meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} - dev: true - /merge-stream@2.0.0: + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - /merge2@1.4.1: + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - /merge@2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} - dev: true - - /micromark@2.11.4: + micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - dependencies: - debug: 4.3.6 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /micromatch@4.0.5: + micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - dev: true - /micromatch@4.0.7: + micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - /mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + mime@4.0.4: + resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} engines: {node: '>=16'} hasBin: true - dev: true - /mimic-fn@2.1.0: + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true - - /mimic-fn@4.0.0: + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: true - /min-indent@1.0.1: + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true - /minimatch@10.0.1: + minimatch@10.0.1: resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} engines: {node: 20 || >=22} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@3.1.2: + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - /minimatch@5.1.6: + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - /minimatch@9.0.5: + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true - - /minimist@1.2.8: + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - /minipass@7.1.2: + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - dev: true - /ms@2.1.2: + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /ms@2.1.3: + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true + mylas@2.1.13: + resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} + engines: {node: '>=12.0.0'} - /mz@2.7.0: + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - /nanoid@3.3.7: + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /natural-compare@1.4.0: + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - json-stringify-safe: 5.0.1 - minimist: 1.2.8 - readable-stream: 3.6.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /neo-async@2.6.2: + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - /nerf-dart@1.0.0: + nerf-dart@1.0.0: resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: true - /no-case@3.0.4: + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 - dev: true - /node-emoji@2.1.3: + node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} - dependencies: - '@sindresorhus/is': 4.6.0 - char-regex: 1.0.2 - emojilib: 2.4.0 - skin-tone: 2.0.0 - dev: true - - /node-fetch@3.0.0-beta.9: - resolution: {integrity: sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==} - engines: {node: ^10.17 || >=12.3} - dependencies: - data-uri-to-buffer: 3.0.1 - fetch-blob: 2.1.2 - transitivePeerDependencies: - - domexception - dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - /normalize-package-data@2.5.0: + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.6.3 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true - /normalize-url@8.0.1: + normalize-url@8.0.1: resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} engines: {node: '>=14.16'} - dev: true - - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - semver: 7.6.3 - dev: true - - /npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - proc-log: 3.0.0 - semver: 7.6.3 - validate-npm-package-name: 5.0.0 - dev: true - /npm-pick-manifest@9.0.0: - resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.1 - semver: 7.6.3 - dev: true - - /npm-run-path@4.0.1: + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - /npm-run-path@5.3.0: + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - /npm@10.5.0: - resolution: {integrity: sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==} + npm@10.8.2: + resolution: {integrity: sha512-x/AIjFIKRllrhcb48dqUNAAZl0ig9+qMuN91RpZo3Cb2+zuibfh+KISl6+kVVyktDz230JKc208UkQwwMqyB+w==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - dev: true bundledDependencies: - '@isaacs/string-locale-compare' - '@npmcli/arborist' @@ -6230,6 +3325,7 @@ packages: - '@npmcli/map-workspaces' - '@npmcli/package-json' - '@npmcli/promise-spawn' + - '@npmcli/redact' - '@npmcli/run-script' - '@sigstore/tuf' - abbrev @@ -6238,8 +3334,6 @@ packages: - chalk - ci-info - cli-columns - - cli-table3 - - columnify - fastest-levenshtein - fs-minipass - glob @@ -6275,7 +3369,6 @@ packages: - npm-profile - npm-registry-fetch - npm-user-validate - - npmlog - p-map - pacote - parse-conflict-json @@ -6294,611 +3387,4583 @@ packages: - which - write-file-atomic - /object-assign@4.1.1: + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} - /object-keys@1.1.1: + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true - - /object-pairs@0.1.0: - resolution: {integrity: sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA==} - dev: true - /object-path@0.11.8: + object-path@0.11.8: resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} engines: {node: '>= 10.12.0'} - dev: true - - /object-values@1.0.0: - resolution: {integrity: sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ==} - engines: {node: '>=0.10.0'} - dev: true - /object.assign@4.1.5: + object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.fromentries@2.0.8: + object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - es-object-atoms: 1.0.0 - dev: true - /object.groupby@1.0.3: + object.groupby@1.0.3: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.2 - dev: true - /object.values@1.2.0: + object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - dev: true - /once@1.4.0: + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - /onetime@5.1.2: + onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: + onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: true + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} - /p-each-series@3.0.0: + p-each-series@3.0.0: resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} engines: {node: '>=12'} - dev: true - /p-filter@4.1.0: + p-filter@4.1.0: resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} engines: {node: '>=18'} - dependencies: - p-map: 7.0.1 - dev: true - /p-is-promise@3.0.0: + p-is-promise@3.0.0: resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} engines: {node: '>=8'} - dev: true - /p-limit@1.3.0: + p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit@2.3.0: + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - /p-limit@3.1.0: + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - /p-locate@2.0.0: + p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate@4.1.0: + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - /p-map@4.0.0: + p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-map@7.0.1: - resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} + p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} engines: {node: '>=18'} - dev: true - - /p-memoize@4.0.1: - resolution: {integrity: sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==} - engines: {node: '>=10'} - dependencies: - mem: 6.1.1 - mimic-fn: 3.1.0 - dev: true - /p-reduce@2.1.0: + p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} engines: {node: '>=8'} - dev: true - /p-reduce@3.0.0: + p-reduce@3.0.0: resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} engines: {node: '>=12'} - dev: true - /p-try@1.0.0: + p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} - dev: true - /p-try@2.2.0: + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - dev: true - /package-json-from-dist@1.0.0: + package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - dev: true - /parent-module@1.0.1: + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - /parent-module@2.0.0: + parent-module@2.0.0: resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} engines: {node: '>=8'} - dependencies: - callsites: 3.1.0 - dev: true - /parse-entities@2.0.0: + parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - /parse-json@4.0.0: + parse-imports@2.1.1: + resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + engines: {node: '>= 18'} + + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.24.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - /parse-json@8.1.0: + parse-json@8.1.0: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} - dependencies: - '@babel/code-frame': 7.24.2 - index-to-position: 0.1.2 - type-fest: 4.13.1 - dev: true - /parse-ms@4.0.0: + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} - dev: true - - /parse-npm-tarball-url@3.0.0: - resolution: {integrity: sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g==} - engines: {node: '>=8.15'} - dependencies: - semver: 6.3.1 - dev: true - - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: true - /parse5-htmlparser2-tree-adapter@6.0.1: + parse5-htmlparser2-tree-adapter@6.0.1: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} - dependencies: - parse5: 6.0.1 - dev: true - /parse5@5.1.1: + parse5@5.1.1: resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: true - /parse5@6.0.1: + parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - /path-exists@3.0.0: + path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} - dev: true - /path-exists@4.0.0: + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key@3.1.1: + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-key@4.0.0: + path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: true - /path-parse@1.0.7: + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - /path-scurry@1.11.1: + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - dependencies: - lru-cache: 10.2.0 - minipass: 7.1.2 - dev: true - /path-scurry@2.0.0: + path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} - dependencies: - lru-cache: 11.0.0 - minipass: 7.1.2 - dev: true - - /path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} - dependencies: - unique-string: 2.0.0 - dev: true - - /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /path-type@4.0.0: + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - /path-type@5.0.0: + path-type@5.0.0: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - dev: true - /pathe@1.1.2: + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true - /pathval@2.0.0: + pathval@2.0.0: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - /picomatch@2.3.1: + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /picomatch@4.0.1: - resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - dev: true - /pidtree@0.6.0: + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} hasBin: true - dev: true - /pify@3.0.0: + pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - dev: true - /pkg-conf@2.1.0: + pkg-conf@2.1.0: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - load-json-file: 4.0.0 - dev: true - /pluralize@8.0.0: + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + + plimit-lit@1.6.1: + resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==} + engines: {node: '>=12'} + + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - dev: true - /possible-typed-array-names@1.0.0: + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - dev: true - /postcss@8.4.37: - resolution: {integrity: sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ==} + postcss@8.4.40: + resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - dev: true - /prelude-ls@1.2.1: + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.3.0 - dev: true - - /prettier-plugin-multiline-arrays@3.0.4(prettier@3.2.5): - resolution: {integrity: sha512-Oj9ZfEisLOF0did1CGXXQLTA0WEChT2pfI06pNA1PbvWqbys9a5xoys6DoZlDL+Uio0uW1XwKZkeKMAkG1EEfQ==} - peerDependencies: - prettier: '>=3.0.0' - dependencies: - '@augment-vir/common': 23.4.0 - prettier: 3.2.5 - proxy-vir: 1.0.0 - dev: true - /prettier-plugin-packagejson@2.4.14(prettier@3.2.5): - resolution: {integrity: sha512-sli+gV5tW7uxvzDZQscaBtSfbyAW2ToL6n/HGt51PipwX9vI7M54vefG0mKSfklVkT29TNGO6Mo6g8c6Z79gmw==} + prettier-plugin-packagejson@2.5.1: + resolution: {integrity: sha512-6i4PW1KxEA+VrokYNGeI/q8qQX3u5DNBc7eLr9GX4OrvWr9DMls1lhbuNopkKG7Li9rTNxerWnYQyjxoUO4ROA==} peerDependencies: prettier: '>= 1.16.0' peerDependenciesMeta: prettier: optional: true - dependencies: - prettier: 3.2.5 - sort-package-json: 2.10.0 - synckit: 0.9.0 - dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true - dev: true - /pretty-format@29.7.0: + pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - /pretty-ms@9.0.0: - resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + pretty-ms@9.1.0: + resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} engines: {node: '>=18'} - dependencies: - parse-ms: 4.0.0 - dev: true - - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /process-nextick-args@2.0.1: + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-lit@1.5.2: + resolution: {integrity: sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==} + engines: {node: '>=12'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + replace-in-file@7.2.0: + resolution: {integrity: sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==} + engines: {node: '>=10'} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rollup-plugin-ts@3.4.5: + resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} peerDependencies: - bluebird: '*' + '@babel/core': '>=7.x' + '@babel/plugin-transform-runtime': '>=7.x' + '@babel/preset-env': '>=7.x' + '@babel/preset-typescript': '>=7.x' + '@babel/runtime': '>=7.x' + '@swc/core': '>=1.x' + '@swc/helpers': '>=0.2' + rollup: '>=1.x || >=2.x || >=3.x' + typescript: '>=3.2.x || >= 4.x || >= 5.x' peerDependenciesMeta: - bluebird: + '@babel/core': + optional: true + '@babel/plugin-transform-runtime': + optional: true + '@babel/preset-env': + optional: true + '@babel/preset-typescript': + optional: true + '@babel/runtime': + optional: true + '@swc/core': + optional: true + '@swc/helpers': optional: true - dev: true - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semantic-release-replace-plugin@1.2.7: + resolution: {integrity: sha512-BfFQVnfC8O7+NpyfjWZuQQEkXwxf1ABbGEQuXqMsrBi7ItCnkSlO3mwuqUllxxuh1WgKx5oYKMVhmZJ0aMaqVQ==} + engines: {node: '>=18'} + peerDependencies: + semantic-release: '>=20.1.0' + + semantic-release@24.0.0: + resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - dev: true + hasBin: true - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: true + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} - /proxy-vir@1.0.0: - resolution: {integrity: sha512-WV1gkBxUOwLSz0Bn09tisIqLK7leAqtFm/474t3L0hQKJw7/gdrkGcWw0/OT1PhSy+TDS6swfq7Niuoq3XJhkQ==} - dependencies: - '@augment-vir/common': 23.4.0 - dev: true + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} - /punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - dev: true + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} engines: {node: '>=6'} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smol-toml@1.3.0: + resolution: {integrity: sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA==} + engines: {node: '>= 18'} + + sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + + sort-package-json@2.10.0: + resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - dev: true - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - /read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - json-parse-even-better-errors: 3.0.1 - npm-normalize-package-bin: 3.0.1 - dev: true + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - /read-package-up@11.0.0: - resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} + engines: {node: '>=14.16'} + + summary@2.1.0: + resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + + super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-clone-node@3.0.0: + resolution: {integrity: sha512-egavvyHbIoelkgh1IC2agNB1uMNjB8VJgh0g/cn0bg2XXTcrtjrGMzEk4OD3Fi2hocICjP3vMa56nkzIzq0FRg==} + engines: {node: '>=14.9.0'} + peerDependencies: + typescript: ^3.x || ^4.x || ^5.x + + ts-declaration-location@1.0.4: + resolution: {integrity: sha512-r4JoxYhKULbZuH81Pjrp9OEG5St7XWk7zXwGkLKhmVcjiBVHTJXV5wK6dEa9JKW5QGSTW6b1lOjxAKp8R1SQhg==} + peerDependencies: + typescript: '>=4.0.0' + + tsc-alias@1.8.10: + resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} + hasBin: true + + tsc-files@1.1.4: + resolution: {integrity: sha512-RePsRsOLru3BPpnf237y1Xe1oCGta8rmSYzM76kYo5tLGsv5R2r3s64yapYorGTPuuLyfS9NVbh9ydzmvNie2w==} + hasBin: true + peerDependencies: + typescript: '>=3' + + tsconfck@3.1.1: + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + tsx@4.16.5: + resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-fest@4.23.0: + resolution: {integrity: sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@1.0.38: + resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uglify-js@3.19.1: + resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-tsconfig-paths@4.3.2: + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vite@5.3.5: + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@2.0.5: + resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.5 + '@vitest/ui': 2.0.5 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + + zod-validation-error@3.0.3: + resolution: {integrity: sha512-cETTrcMq3Ze58vhdR0zD37uJm/694I6mAxcf/ei5bl89cC++fBNxrC2z8lkFze/8hVMPwrbtrwXHR2LB50fpHw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/install-pkg@0.3.3': + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/compat-data@7.25.2': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + convert-source-map: 2.0.0 + debug: 4.3.6 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.8.0)': + dependencies: + '@babel/core': 7.25.2 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.8.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/generator@7.25.0': + dependencies: + '@babel/types': 7.25.2 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-compilation-targets@7.25.2': + dependencies: + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.8': {} + + '@babel/helpers@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.25.3': + dependencies: + '@babel/types': 7.25.2 + + '@babel/template@7.25.0': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + + '@babel/traverse@7.25.3': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.2': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@bcoe/v8-coverage@0.2.3': {} + + '@clack/core@0.3.4': + dependencies: + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@colors/colors@1.5.0': + optional: true + + '@cspell/cspell-bundled-dicts@8.13.1': + dependencies: + '@cspell/dict-ada': 4.0.2 + '@cspell/dict-aws': 4.0.3 + '@cspell/dict-bash': 4.1.3 + '@cspell/dict-companies': 3.1.3 + '@cspell/dict-cpp': 5.1.12 + '@cspell/dict-cryptocurrencies': 5.0.0 + '@cspell/dict-csharp': 4.0.2 + '@cspell/dict-css': 4.0.12 + '@cspell/dict-dart': 2.0.3 + '@cspell/dict-django': 4.1.0 + '@cspell/dict-docker': 1.1.7 + '@cspell/dict-dotnet': 5.0.2 + '@cspell/dict-elixir': 4.0.3 + '@cspell/dict-en-common-misspellings': 2.0.3 + '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.3.23 + '@cspell/dict-filetypes': 3.0.4 + '@cspell/dict-fonts': 4.0.0 + '@cspell/dict-fsharp': 1.0.1 + '@cspell/dict-fullstack': 3.2.0 + '@cspell/dict-gaming-terms': 1.0.5 + '@cspell/dict-git': 3.0.0 + '@cspell/dict-golang': 6.0.9 + '@cspell/dict-google': 1.0.1 + '@cspell/dict-haskell': 4.0.1 + '@cspell/dict-html': 4.0.5 + '@cspell/dict-html-symbol-entities': 4.0.0 + '@cspell/dict-java': 5.0.7 + '@cspell/dict-julia': 1.0.1 + '@cspell/dict-k8s': 1.0.6 + '@cspell/dict-latex': 4.0.0 + '@cspell/dict-lorem-ipsum': 4.0.0 + '@cspell/dict-lua': 4.0.3 + '@cspell/dict-makefile': 1.0.0 + '@cspell/dict-monkeyc': 1.0.6 + '@cspell/dict-node': 5.0.1 + '@cspell/dict-npm': 5.0.18 + '@cspell/dict-php': 4.0.8 + '@cspell/dict-powershell': 5.0.5 + '@cspell/dict-public-licenses': 2.0.7 + '@cspell/dict-python': 4.2.3 + '@cspell/dict-r': 2.0.1 + '@cspell/dict-ruby': 5.0.2 + '@cspell/dict-rust': 4.0.5 + '@cspell/dict-scala': 5.0.3 + '@cspell/dict-software-terms': 4.0.3 + '@cspell/dict-sql': 2.1.3 + '@cspell/dict-svelte': 1.0.2 + '@cspell/dict-swift': 2.0.1 + '@cspell/dict-terraform': 1.0.0 + '@cspell/dict-typescript': 3.1.6 + '@cspell/dict-vue': 3.0.0 + + '@cspell/cspell-json-reporter@8.13.1': + dependencies: + '@cspell/cspell-types': 8.13.1 + + '@cspell/cspell-pipe@8.13.1': {} + + '@cspell/cspell-resolver@8.13.1': + dependencies: + global-directory: 4.0.1 + + '@cspell/cspell-service-bus@8.13.1': {} + + '@cspell/cspell-types@8.13.1': {} + + '@cspell/dict-ada@4.0.2': {} + + '@cspell/dict-aws@4.0.3': {} + + '@cspell/dict-bash@4.1.3': {} + + '@cspell/dict-companies@3.1.3': {} + + '@cspell/dict-cpp@5.1.12': {} + + '@cspell/dict-cryptocurrencies@5.0.0': {} + + '@cspell/dict-csharp@4.0.2': {} + + '@cspell/dict-css@4.0.12': {} + + '@cspell/dict-dart@2.0.3': {} + + '@cspell/dict-data-science@2.0.1': {} + + '@cspell/dict-django@4.1.0': {} + + '@cspell/dict-docker@1.1.7': {} + + '@cspell/dict-dotnet@5.0.2': {} + + '@cspell/dict-elixir@4.0.3': {} + + '@cspell/dict-en-common-misspellings@2.0.3': {} + + '@cspell/dict-en-gb@1.1.33': {} + + '@cspell/dict-en_us@4.3.23': {} + + '@cspell/dict-filetypes@3.0.4': {} + + '@cspell/dict-fonts@4.0.0': {} + + '@cspell/dict-fsharp@1.0.1': {} + + '@cspell/dict-fullstack@3.2.0': {} + + '@cspell/dict-gaming-terms@1.0.5': {} + + '@cspell/dict-git@3.0.0': {} + + '@cspell/dict-golang@6.0.9': {} + + '@cspell/dict-google@1.0.1': {} + + '@cspell/dict-haskell@4.0.1': {} + + '@cspell/dict-html-symbol-entities@4.0.0': {} + + '@cspell/dict-html@4.0.5': {} + + '@cspell/dict-java@5.0.7': {} + + '@cspell/dict-julia@1.0.1': {} + + '@cspell/dict-k8s@1.0.6': {} + + '@cspell/dict-latex@4.0.0': {} + + '@cspell/dict-lorem-ipsum@4.0.0': {} + + '@cspell/dict-lua@4.0.3': {} + + '@cspell/dict-makefile@1.0.0': {} + + '@cspell/dict-monkeyc@1.0.6': {} + + '@cspell/dict-node@5.0.1': {} + + '@cspell/dict-npm@5.0.18': {} + + '@cspell/dict-php@4.0.8': {} + + '@cspell/dict-powershell@5.0.5': {} + + '@cspell/dict-public-licenses@2.0.7': {} + + '@cspell/dict-python@4.2.3': + dependencies: + '@cspell/dict-data-science': 2.0.1 + + '@cspell/dict-r@2.0.1': {} + + '@cspell/dict-ruby@5.0.2': {} + + '@cspell/dict-rust@4.0.5': {} + + '@cspell/dict-scala@5.0.3': {} + + '@cspell/dict-software-terms@4.0.3': {} + + '@cspell/dict-sql@2.1.3': {} + + '@cspell/dict-svelte@1.0.2': {} + + '@cspell/dict-swift@2.0.1': {} + + '@cspell/dict-terraform@1.0.0': {} + + '@cspell/dict-typescript@3.1.6': {} + + '@cspell/dict-vue@3.0.0': {} + + '@cspell/dynamic-import@8.13.1': + dependencies: + import-meta-resolve: 4.1.0 + + '@cspell/strong-weak-map@8.13.1': {} + + '@cspell/url@8.13.1': {} + + '@dprint/formatter@0.3.0': {} + + '@dprint/markdown@0.17.2': {} + + '@dprint/toml@0.6.2': {} + + '@es-joy/jsdoccomment@0.46.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.0.0 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)': + dependencies: + eslint: 9.8.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/compat@1.1.1': {} + + '@eslint/config-array@0.17.1': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.8.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.1.0 + + '@mdn/browser-compat-data@5.5.43': {} + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + dependencies: + eslint-scope: 5.1.1 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@octokit/auth-token@5.1.1': {} + + '@octokit/core@6.1.2': + dependencies: + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + before-after-hook: 3.0.2 + universal-user-agent: 7.0.2 + + '@octokit/endpoint@10.1.1': + dependencies: + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/graphql@8.1.1': + dependencies: + '@octokit/request': 9.1.3 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/openapi-types@22.2.0': {} + + '@octokit/plugin-paginate-rest@11.3.3(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + + '@octokit/plugin-retry@7.1.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@9.3.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + bottleneck: 2.19.5 + + '@octokit/request-error@6.1.4': + dependencies: + '@octokit/types': 13.5.0 + + '@octokit/request@9.1.3': + dependencies: + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + + '@octokit/types@13.5.0': + dependencies: + '@octokit/openapi-types': 22.2.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.2.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@rebeccastevens/eslint-config@3.0.0(slk7l3v5xqm5dbewk3i557mzmu)': + dependencies: + '@antfu/install-pkg': 0.3.3 + '@clack/prompts': 0.7.0 + eslint: 9.8.0 + globals: 15.9.0 + local-pkg: 0.5.0 + optionalDependencies: + '@stylistic/eslint-plugin': 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint-config-prettier: 9.1.0(eslint@9.8.0) + eslint-flat-config-utils: 0.3.0 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0) + eslint-merge-processors: 0.1.0(eslint@9.8.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.8.0) + eslint-plugin-format: 0.1.2(eslint@9.8.0) + eslint-plugin-functional: 'link:' + eslint-plugin-import-x: 3.1.0(eslint@9.8.0)(typescript@5.5.4) + eslint-plugin-jsdoc: 48.11.0(eslint@9.8.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.8.0) + eslint-plugin-markdown: 5.1.0(eslint@9.8.0) + eslint-plugin-n: 17.10.2(eslint@9.8.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-optimize-regex: 1.2.1 + eslint-plugin-promise: 7.0.0(eslint@9.8.0) + eslint-plugin-regexp: 2.6.0(eslint@9.8.0) + eslint-plugin-sonarjs: 1.0.4(eslint@9.8.0) + eslint-plugin-unicorn: 55.0.0(eslint@9.8.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@18.18.0)) + eslint-plugin-yml: 1.14.0(eslint@9.8.0) + jsonc-eslint-parser: 2.4.0 + prettier: 3.3.3 + prettier-plugin-packagejson: 2.5.1(prettier@3.3.3) + yaml-eslint-parser: 1.2.3 + + '@rollup/pluginutils@5.1.0(rollup@4.20.0)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.20.0 + + '@rollup/rollup-android-arm-eabi@4.20.0': + optional: true + + '@rollup/rollup-android-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-x64@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.20.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.20.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.20.0': + optional: true + + '@sec-ant/readable-stream@0.4.1': {} + + '@semantic-release/changelog@6.0.3(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + fs-extra: 11.2.0 + lodash: 4.17.21 + semantic-release: 24.0.0(typescript@5.5.4) + + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.6 + import-from-esm: 1.3.4 + lodash-es: 4.17.21 + micromatch: 4.0.7 + semantic-release: 24.0.0(typescript@5.5.4) + transitivePeerDependencies: + - supports-color + + '@semantic-release/error@3.0.0': {} + + '@semantic-release/error@4.0.0': {} + + '@semantic-release/git@10.0.1(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.3.6 + dir-glob: 3.0.1 + execa: 5.1.1 + lodash: 4.17.21 + micromatch: 4.0.7 + p-reduce: 2.1.0 + semantic-release: 24.0.0(typescript@5.5.4) + transitivePeerDependencies: + - supports-color + + '@semantic-release/github@10.1.3(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.3(@octokit/core@6.1.2) + '@octokit/plugin-retry': 7.1.1(@octokit/core@6.1.2) + '@octokit/plugin-throttling': 9.3.1(@octokit/core@6.1.2) + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + debug: 4.3.6 + dir-glob: 3.0.1 + globby: 14.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + issue-parser: 7.0.1 + lodash-es: 4.17.21 + mime: 4.0.4 + p-filter: 4.1.0 + semantic-release: 24.0.0(typescript@5.5.4) + url-join: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + execa: 9.3.0 + fs-extra: 11.2.0 + lodash-es: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 8.0.1 + npm: 10.8.2 + rc: 1.2.8 + read-pkg: 9.0.1 + registry-auth-token: 5.0.2 + semantic-release: 24.0.0(typescript@5.5.4) + semver: 7.6.3 + tempy: 3.1.0 + + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.5.4))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.6 + get-stream: 7.0.1 + import-from-esm: 1.3.4 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-package-up: 11.0.0 + semantic-release: 24.0.0(typescript@5.5.4) + transitivePeerDependencies: + - supports-color + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@snyk/github-codeowners@1.1.0': + dependencies: + commander: 4.1.1 + ignore: 5.3.1 + p-map: 4.0.0 + + '@stylistic/eslint-plugin-js@2.6.1(eslint@9.8.0)': + dependencies: + '@types/eslint': 9.6.0 + acorn: 8.12.1 + eslint: 9.8.0 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + + '@stylistic/eslint-plugin-jsx@2.6.1(eslint@9.8.0)': + dependencies: + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@types/eslint': 9.6.0 + eslint: 9.8.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + + '@stylistic/eslint-plugin-plus@2.6.1(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@types/eslint': 9.6.0 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin-ts@2.6.1(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@types/eslint': 9.6.0 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@stylistic/eslint-plugin@2.6.1(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-jsx': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-plus': 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@stylistic/eslint-plugin-ts': 2.6.1(eslint@9.8.0)(typescript@5.5.4) + '@types/eslint': 9.6.0 + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@types/dedent@0.7.2': {} + + '@types/eslint@9.6.0': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/espree@10.1.0': + dependencies: + acorn: 8.12.1 + eslint-visitor-keys: 4.0.0 + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.10 + + '@types/node@17.0.45': {} + + '@types/node@18.18.0': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/object-path@0.11.4': {} + + '@types/semver@7.5.8': {} + + '@types/ua-parser-js@0.7.39': {} + + '@types/unist@2.0.10': {} + + '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.0.0 + eslint: 9.8.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 + eslint: 9.8.0 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/rule-tester@8.0.0(@eslint/eslintrc@3.1.0)(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint/eslintrc': 3.1.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + ajv: 6.12.6 + eslint: 9.8.0 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/scope-manager@8.0.0': + dependencies: + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + + '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + debug: 4.3.6 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.0.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.3 + tsutils: 3.21.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.0.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) + eslint: 9.8.0 + eslint-scope: 5.1.1 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@7.18.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.4) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.0.0': + dependencies: + '@typescript-eslint/types': 8.0.0 + eslint-visitor-keys: 3.4.3 + + '@vitest/coverage-istanbul@2.0.5(vitest@2.0.5(@types/node@18.18.0))': + dependencies: + '@istanbuljs/schema': 0.1.3 + debug: 4.3.6 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magicast: 0.3.4 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.5(@types/node@18.18.0) + transitivePeerDependencies: + - supports-color + + '@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@18.18.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.6 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.11 + magicast: 0.3.4 + std-env: 3.7.0 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.5(@types/node@18.18.0) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.0.5': + dependencies: + '@vitest/utils': 2.0.5 + pathe: 1.1.2 + + '@vitest/snapshot@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + magic-string: 0.30.11 + pathe: 1.1.2 + + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.0 + + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@wessberg/stringutil@1.0.19': {} + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agent-base@7.1.1: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + aggregate-error@5.0.0: + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + are-docs-informative@0.0.2: {} + + argparse@2.0.1: {} + + argv-formatter@1.0.0: {} + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-ify@1.0.0: {} + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + array-timsort@1.0.3: {} + + array-union@2.1.0: {} + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + assertion-error@2.0.1: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + balanced-match@1.0.2: {} + + before-after-hook@3.0.2: {} + + binary-extensions@2.3.0: {} + + boolean@3.2.0: {} + + bottleneck@2.19.5: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist-generator@2.1.0: + dependencies: + '@mdn/browser-compat-data': 5.5.43 + '@types/object-path': 0.11.4 + '@types/semver': 7.5.8 + '@types/ua-parser-js': 0.7.39 + browserslist: 4.23.3 + caniuse-lite: 1.0.30001646 + isbot: 3.8.0 + object-path: 0.11.8 + semver: 7.6.3 + ua-parser-js: 1.0.38 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001646 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + builtin-modules@3.3.0: {} + + cac@6.7.14: {} + + call-bind@1.0.7: + dependencies: + 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.2 + + call-me-maybe@1.0.2: {} + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001646: {} + + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + + chalk-template@1.1.0: + dependencies: + chalk: 5.3.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + char-regex@1.0.2: {} + + character-entities-legacy@1.1.4: {} + + character-entities@1.2.4: {} + + character-reference-invalid@1.1.4: {} + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + ci-info@4.0.0: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + clean-stack@2.2.0: {} + + clean-stack@5.2.0: + dependencies: + escape-string-regexp: 5.0.0 + + clear-module@4.1.2: + dependencies: + parent-module: 2.0.0 + resolve-from: 5.0.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: + optional: true + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + commander@10.0.1: {} + + commander@12.1.0: {} + + commander@4.1.1: {} + + commander@9.5.0: {} + + comment-json@4.2.4: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + + comment-parser@1.4.1: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + compatfactory@3.0.0(typescript@5.5.4): + dependencies: + helpertypes: 0.0.19 + typescript: 5.5.4 + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + conventional-changelog-angular@8.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-writer@8.0.0: + dependencies: + '@types/semver': 7.5.8 + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.6.3 + + conventional-commits-filter@5.0.0: {} + + conventional-commits-parser@6.0.0: + dependencies: + meow: 13.2.0 + + convert-hrtime@5.0.0: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.37.1: + dependencies: + browserslist: 4.23.3 + + core-util-is@1.0.3: {} + + cosmiconfig@8.3.6(typescript@5.5.4): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.5.4 + + cosmiconfig@9.0.0(typescript@5.5.4): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.5.4 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crosspath@2.0.0: + dependencies: + '@types/node': 17.0.45 + + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + + cspell-config-lib@8.13.1: + dependencies: + '@cspell/cspell-types': 8.13.1 + comment-json: 4.2.4 + yaml: 2.5.0 + + cspell-dictionary@8.13.1: + dependencies: + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + cspell-trie-lib: 8.13.1 + fast-equals: 5.0.1 + + cspell-gitignore@8.13.1: + dependencies: + '@cspell/url': 8.13.1 + cspell-glob: 8.13.1 + cspell-io: 8.13.1 + find-up-simple: 1.0.0 + + cspell-glob@8.13.1: + dependencies: + '@cspell/url': 8.13.1 + micromatch: 4.0.7 + + cspell-grammar@8.13.1: + dependencies: + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + + cspell-io@8.13.1: + dependencies: + '@cspell/cspell-service-bus': 8.13.1 + '@cspell/url': 8.13.1 + + cspell-lib@8.13.1: + dependencies: + '@cspell/cspell-bundled-dicts': 8.13.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-resolver': 8.13.1 + '@cspell/cspell-types': 8.13.1 + '@cspell/dynamic-import': 8.13.1 + '@cspell/strong-weak-map': 8.13.1 + '@cspell/url': 8.13.1 + clear-module: 4.1.2 + comment-json: 4.2.4 + cspell-config-lib: 8.13.1 + cspell-dictionary: 8.13.1 + cspell-glob: 8.13.1 + cspell-grammar: 8.13.1 + cspell-io: 8.13.1 + cspell-trie-lib: 8.13.1 + env-paths: 3.0.0 + fast-equals: 5.0.1 + gensequence: 7.0.0 + import-fresh: 3.3.0 + resolve-from: 5.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + xdg-basedir: 5.1.0 + + cspell-trie-lib@8.13.1: + dependencies: + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + gensequence: 7.0.0 + + cspell@8.13.1: + dependencies: + '@cspell/cspell-json-reporter': 8.13.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + '@cspell/dynamic-import': 8.13.1 + '@cspell/url': 8.13.1 + chalk: 5.3.0 + chalk-template: 1.1.0 + commander: 12.1.0 + cspell-dictionary: 8.13.1 + cspell-gitignore: 8.13.1 + cspell-glob: 8.13.1 + cspell-io: 8.13.1 + cspell-lib: 8.13.1 + fast-glob: 3.3.2 + fast-json-stable-stringify: 2.1.0 + file-entry-cache: 9.0.0 + get-stdin: 9.0.0 + semver: 7.6.3 + strip-ansi: 7.1.0 + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + deassert@1.0.2(rollup@4.20.0): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.20.0) + acorn: 8.12.1 + acorn-walk: 8.3.3 + magic-string: 0.30.11 + transitivePeerDependencies: + - rollup + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + dedent@1.5.3: {} + + deep-eql@5.0.2: {} + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + deepmerge-ts@7.1.0: {} + + deepmerge@4.3.1: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + optional: true + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + detect-indent@7.0.1: {} + + detect-newline@4.0.1: {} + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + dot-prop@7.2.0: + dependencies: + type-fest: 2.19.0 + + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + eastasianwidth@0.2.0: {} + + easy-table@1.2.0: + dependencies: + ansi-regex: 5.0.1 + optionalDependencies: + wcwidth: 1.0.1 + + electron-to-chromium@1.5.4: {} + + emoji-regex@10.3.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojilib@2.4.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + env-ci@11.0.0: + dependencies: + execa: 8.0.1 + java-properties: 1.0.2 + + env-paths@2.2.1: {} + + env-paths@3.0.0: {} + + environment@1.1.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.23.3: + dependencies: + 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.4 + 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.2 + 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-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.1.2: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + semver: 7.6.3 + + eslint-config-prettier@9.1.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-doc-generator@1.7.1(eslint@9.8.0)(typescript@5.5.4): + dependencies: + '@typescript-eslint/utils': 5.62.0(eslint@9.8.0)(typescript@5.5.4) + ajv: 8.17.1 + boolean: 3.2.0 + commander: 10.0.1 + cosmiconfig: 8.3.6(typescript@5.5.4) + deepmerge: 4.3.1 + dot-prop: 7.2.0 + eslint: 9.8.0 + jest-diff: 29.7.0 + json-schema-traverse: 1.0.0 + markdown-table: 3.0.3 + no-case: 3.0.4 + type-fest: 3.13.1 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-flat-config-utils@0.3.0: + dependencies: + '@types/eslint': 9.6.0 + pathe: 1.1.2 + + eslint-formatting-reporter@0.0.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + prettier-linter-helpers: 1.0.0 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0): + dependencies: + debug: 4.3.6 + enhanced-resolve: 5.17.1 + eslint: 9.8.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.8.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.6 + is-core-module: 2.15.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-merge-processors@0.1.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-module-utils@2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0) + transitivePeerDependencies: + - supports-color + + eslint-parser-plain@0.1.0: {} + + eslint-plugin-es-x@7.8.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + + eslint-plugin-eslint-comments@3.2.0(eslint@9.8.0): + dependencies: + escape-string-regexp: 1.0.5 + eslint: 9.8.0 + ignore: 5.3.1 + + eslint-plugin-eslint-plugin@6.2.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 + estraverse: 5.3.0 + + eslint-plugin-format@0.1.2(eslint@9.8.0): + dependencies: + '@dprint/formatter': 0.3.0 + '@dprint/markdown': 0.17.2 + '@dprint/toml': 0.6.2 + eslint: 9.8.0 + eslint-formatting-reporter: 0.0.0(eslint@9.8.0) + eslint-parser-plain: 0.1.0 + prettier: 3.3.3 + synckit: 0.9.1 + + eslint-plugin-import-x@3.1.0(eslint@9.8.0)(typescript@5.5.4): + dependencies: + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.4) + debug: 4.3.6 + doctrine: 3.0.0 + eslint: 9.8.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.7.6 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.6.3 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@9.8.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.8.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0) + hasown: 2.0.2 + is-core-module: 2.15.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsdoc@48.11.0(eslint@9.8.0): + dependencies: + '@es-joy/jsdoccomment': 0.46.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint: 9.8.0 + espree: 10.1.0 + esquery: 1.6.0 + parse-imports: 2.1.1 + semver: 7.6.3 + spdx-expression-parse: 4.0.0 + synckit: 0.9.1 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.16.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + + eslint-plugin-markdown@5.1.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + + eslint-plugin-n@17.10.2(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + enhanced-resolve: 5.17.1 + eslint: 9.8.0 + eslint-plugin-es-x: 7.8.0(eslint@9.8.0) + get-tsconfig: 4.7.6 + globals: 15.9.0 + ignore: 5.3.1 + minimatch: 9.0.5 + semver: 7.6.3 + + eslint-plugin-no-only-tests@3.1.0: {} + + eslint-plugin-optimize-regex@1.2.1: + dependencies: + regexp-tree: 0.1.27 + + eslint-plugin-promise@7.0.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-plugin-regexp@2.6.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + comment-parser: 1.4.1 + eslint: 9.8.0 + jsdoc-type-pratt-parser: 4.0.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-sonarjs@1.0.4(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-plugin-unicorn@55.0.0(eslint@9.8.0): + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.37.1 + eslint: 9.8.0 + esquery: 1.6.0 + globals: 15.9.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 + + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@18.18.0)): + dependencies: + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4) + vitest: 2.0.5(@types/node@18.18.0) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-yml@1.14.0(eslint@9.8.0): + dependencies: + debug: 4.3.6 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.0.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.0.0: {} + + eslint@9.8.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/config-array': 0.17.1 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.8.0 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + 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.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@10.1.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + 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: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + execa@9.3.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.1.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-equals@5.0.1: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.0.1: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-entry-cache@9.0.0: + dependencies: + flat-cache: 5.0.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-versions@6.0.0: + dependencies: + semver-regex: 4.0.5 + super-regex: 1.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flatted@3.3.1: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.2.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function-timeout@1.0.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + + gensequence@7.0.0: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-stdin@9.0.0: {} + + get-stream@6.0.1: {} + + get-stream@7.0.1: {} + + get-stream@8.0.1: {} + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + git-hooks-list@3.1.0: {} + + git-log-parser@1.2.1: + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.5 + traverse: 0.6.8 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.2.1 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globals@11.12.0: {} + + globals@14.0.0: {} + + globals@15.9.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + + globby@14.0.1: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + globrex@0.1.2: {} + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.1 + + has-bigints@1.0.2: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-own-prop@2.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + helpertypes@0.0.19: {} + + highlight.js@10.7.3: {} + + hook-std@3.0.0: {} + + hosted-git-info@2.8.9: {} + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + html-escaper@2.0.2: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + human-signals@7.0.0: {} + + husky@9.1.4: {} + + ignore@5.3.1: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-from-esm@1.3.4: + dependencies: + debug: 4.3.6 + import-meta-resolve: 4.1.0 + transitivePeerDependencies: + - supports-color + + import-meta-resolve@4.1.0: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + indent-string@5.0.0: {} + + index-to-position@0.1.2: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@4.1.1: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + into-stream@7.0.0: + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + + is-alphabetical@1.0.4: {} + + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-arrayish@0.2.1: {} + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-callable@1.2.7: {} + + is-core-module@2.15.0: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-decimal@1.0.4: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@1.0.4: {} + + is-immutable-type@5.0.0(eslint@9.8.0)(typescript@5.5.4): + dependencies: + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.5.4) + eslint: 9.8.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + ts-declaration-location: 1.0.4(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@4.1.0: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-stream@4.0.1: {} + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-unicode-supported@2.0.0: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isbot@3.8.0: {} + + isexe@2.0.0: {} + + issue-parser@7.0.1: + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.25.2 + '@babel/parser': 7.25.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.6 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.1: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + java-properties@1.0.2: {} + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-get-type@29.6.3: {} + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsdoc-type-pratt-parser@4.0.0: {} + + jsesc@0.5.0: {} + + jsesc@2.5.2: {} + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.12.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.3 + + jsonc-parser@3.2.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + knip@5.27.0(@types/node@18.18.0)(typescript@5.5.4): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@snyk/github-codeowners': 1.1.0 + '@types/node': 18.18.0 + easy-table: 1.2.0 + fast-glob: 3.3.2 + jiti: 1.21.6 + js-yaml: 4.1.0 + minimist: 1.2.8 + picocolors: 1.0.1 + picomatch: 4.0.2 + pretty-ms: 9.1.0 + resolve: 1.22.8 + smol-toml: 1.3.0 + strip-json-comments: 5.0.1 + summary: 2.1.0 + typescript: 5.5.4 + zod: 3.22.4 + zod-validation-error: 3.0.3(zod@3.22.4) + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + lint-staged@15.2.8: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.6 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.7 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.5.0 + transitivePeerDependencies: + - supports-color + + listr2@8.2.4: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.3 + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.17.21: {} + + lodash.capitalize@4.2.1: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.uniqby@4.7.0: {} + + lodash@4.17.21: {} + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + + lower-case@2.0.2: + dependencies: + tslib: 2.6.3 + + lru-cache@10.4.3: {} + + lru-cache@11.0.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.4: + dependencies: + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + source-map-js: 1.2.0 + + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-table@3.0.3: {} + + markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.13.0): + dependencies: + markdownlint-cli2: 0.13.0 + + markdownlint-cli2@0.13.0: + dependencies: + globby: 14.0.1 + js-yaml: 4.1.0 + jsonc-parser: 3.2.1 + markdownlint: 0.34.0 + markdownlint-cli2-formatter-default: 0.0.4(markdownlint-cli2@0.13.0) + micromatch: 4.0.5 + + markdownlint-micromark@0.1.9: {} + + markdownlint@0.34.0: + dependencies: + markdown-it: 14.1.0 + markdownlint-micromark: 0.1.9 + + marked-terminal@7.1.0(marked@12.0.2): + dependencies: + ansi-escapes: 7.0.0 + chalk: 5.3.0 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 12.0.2 + node-emoji: 2.1.3 + supports-hyperlinks: 3.0.0 + + marked@12.0.2: {} + + mdast-util-from-markdown@0.8.5: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-to-string@2.0.0: {} + + mdurl@2.0.0: {} + + meow@13.2.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromark@2.11.4: + dependencies: + debug: 4.3.6 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.5: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime@4.0.4: {} + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + min-indent@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.4 + + ms@2.1.2: {} + + ms@2.1.3: {} + + mylas@2.1.13: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + neo-async@2.6.2: {} + + nerf-dart@1.0.0: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.6.3 + + node-emoji@2.1.3: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-releases@2.0.18: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-url@8.0.1: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npm@10.8.2: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.2: {} + + object-keys@1.1.1: {} + + object-path@0.11.8: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-each-series@3.0.0: {} + + p-filter@4.1.0: + dependencies: + p-map: 7.0.2 + + p-is-promise@3.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-map@7.0.2: {} + + p-reduce@2.1.0: {} + + p-reduce@3.0.0: {} + + p-try@1.0.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parent-module@2.0.0: + dependencies: + callsites: 3.1.0 + + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + parse-imports@2.1.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.24.7 + index-to-position: 0.1.2 + type-fest: 4.23.0 + + parse-ms@4.0.0: {} + + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + + parse5@5.1.1: {} + + parse5@6.0.1: {} + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.0 + minipass: 7.1.2 + + path-type@4.0.0: {} + + path-type@5.0.0: {} + + pathe@1.1.2: {} + + pathval@2.0.0: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidtree@0.6.0: {} + + pify@3.0.0: {} + + pkg-conf@2.1.0: + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + + pkg-types@1.1.3: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + + plimit-lit@1.6.1: + dependencies: + queue-lit: 1.5.2 + + pluralize@8.0.0: {} + + possible-typed-array-names@1.0.0: {} + + postcss@8.4.40: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-packagejson@2.5.1(prettier@3.3.3): + dependencies: + sort-package-json: 2.10.0 + synckit: 0.9.1 + optionalDependencies: + prettier: 3.3.3 + + prettier@3.3.3: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + pretty-ms@9.1.0: + dependencies: + parse-ms: 4.0.0 + + process-nextick-args@2.0.1: {} + + proto-list@1.2.4: {} + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + queue-lit@1.5.2: {} + + queue-microtask@1.2.3: {} + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-is@18.3.1: {} + + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.13.1 - dev: true + type-fest: 4.23.0 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - - /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.0 + normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.13.1 + type-fest: 4.23.0 unicorn-magic: 0.1.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -6907,346 +7972,168 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readdirp@3.6.0: dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true + picomatch: 2.3.1 - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: true - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - - /rename-overwrite@5.0.0: - resolution: {integrity: sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w==} - engines: {node: '>=12.10'} - dependencies: - '@zkochan/rimraf': 2.1.3 - fs-extra: 10.1.0 - dev: true - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true + repeat-string@1.6.1: {} - /replace-in-file@7.1.0: - resolution: {integrity: sha512-1uZmJ78WtqNYCSuPC9IWbweXkGxPOtk2rKuar8diTw7naVIQZiE3Tm8ACx2PCMXDtVH6N+XxwaRY2qZ2xHPqXw==} - engines: {node: '>=10'} - hasBin: true + replace-in-file@7.2.0: dependencies: chalk: 4.1.2 glob: 8.1.0 yargs: 17.7.2 - dev: true - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: true + require-from-string@2.0.2: {} - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /reverse-arguments@1.0.0: - resolution: {integrity: sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ==} - dev: true + onetime: 7.0.0 + signal-exit: 4.1.0 - /rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} - dev: true + reusify@1.0.4: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 + rfdc@1.4.1: {} - /rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true + rimraf@6.0.1: dependencies: glob: 11.0.0 package-json-from-dist: 1.0.0 - dev: true - - /rollup-plugin-auto-external@2.0.0(rollup@4.13.2): - resolution: {integrity: sha512-HQM3ZkZYfSam1uoZtAB9sK26EiAsfs1phrkf91c/YX+S07wugyRXSigBxrIwiLr5EPPilKYmoMxsrnlGBsXnuQ==} - engines: {node: '>=6'} - peerDependencies: - rollup: '>=0.45.2' - dependencies: - builtins: 2.0.1 - read-pkg: 3.0.0 - rollup: 4.13.2 - safe-resolve: 1.0.0 - semver: 5.7.2 - dev: true - /rollup-plugin-ts@3.4.5(@babel/core@7.24.1)(rollup@4.13.2)(typescript@5.4.3): - resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} - engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=7.x' - '@babel/plugin-transform-runtime': '>=7.x' - '@babel/preset-env': '>=7.x' - '@babel/preset-typescript': '>=7.x' - '@babel/runtime': '>=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x || >=3.x' - typescript: '>=3.2.x || >= 4.x || >= 5.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true + rollup-plugin-ts@3.4.5(@babel/core@7.25.2)(rollup@4.20.0)(typescript@5.5.4): dependencies: - '@babel/core': 7.24.1 - '@rollup/pluginutils': 5.1.0(rollup@4.13.2) + '@rollup/pluginutils': 5.1.0(rollup@4.20.0) '@wessberg/stringutil': 1.0.19 ansi-colors: 4.1.3 - browserslist: 4.23.0 + browserslist: 4.23.3 browserslist-generator: 2.1.0 - compatfactory: 3.0.0(typescript@5.4.3) + compatfactory: 3.0.0(typescript@5.5.4) crosspath: 2.0.0 magic-string: 0.30.11 - rollup: 4.13.2 - ts-clone-node: 3.0.0(typescript@5.4.3) - tslib: 2.6.2 - typescript: 5.4.3 - dev: true - - /rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup: 4.20.0 + ts-clone-node: 3.0.0(typescript@5.5.4) + tslib: 2.6.3 + typescript: 5.5.4 + optionalDependencies: + '@babel/core': 7.25.2 + + rollup@4.20.0: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 fsevents: 2.3.3 - dev: true - - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-con@1.3.2: - resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 4.1.2 - minimist: 1.2.8 - strip-json-comments: 3.1.1 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /run-time-assertions@1.2.0: - resolution: {integrity: sha512-cQwqdopGyGpJytXHPYJoCHzt2rr+VzZyW3/bXD8kuKujqDuTtOc0Y6DrlLU6a//wnQogznA7n2LFEIar2Pa2cA==} - dependencies: - '@augment-vir/common': 26.2.1 - expect-type: 0.15.0 - type-fest: 4.13.1 - dev: true - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.2 - dev: true - - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.1.2: {} - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safe-resolve@1.0.0: - resolution: {integrity: sha512-aQpRvfxoi1y0UxKEU0tNO327kb0/LMo8Xrk64M2u172UqOOLCCM0khxN2OTClDiTqTJz5864GMD1X92j4YiHTg==} - dev: true - - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 - /semantic-release-replace-plugin@1.2.7(semantic-release@24.0.0): - resolution: {integrity: sha512-BfFQVnfC8O7+NpyfjWZuQQEkXwxf1ABbGEQuXqMsrBi7ItCnkSlO3mwuqUllxxuh1WgKx5oYKMVhmZJ0aMaqVQ==} - engines: {node: '>=18'} - peerDependencies: - semantic-release: '>=20.1.0' + semantic-release-replace-plugin@1.2.7(semantic-release@24.0.0(typescript@5.5.4)): dependencies: jest-diff: 29.7.0 lodash-es: 4.17.21 - replace-in-file: 7.1.0 - semantic-release: 24.0.0(typescript@5.4.3) - dev: true + replace-in-file: 7.2.0 + semantic-release: 24.0.0(typescript@5.5.4) - /semantic-release@24.0.0(typescript@5.4.3): - resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} - engines: {node: '>=20.8.1'} - hasBin: true + semantic-release@24.0.0(typescript@5.5.4): dependencies: - '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.5.4)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.1.3(semantic-release@24.0.0) - '@semantic-release/npm': 12.0.1(semantic-release@24.0.0) - '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0) + '@semantic-release/github': 10.1.3(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/npm': 12.0.1(semantic-release@24.0.0(typescript@5.5.4)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0(typescript@5.5.4)) aggregate-error: 5.0.0 - cosmiconfig: 9.0.0(typescript@5.4.3) + cosmiconfig: 9.0.0(typescript@5.5.4) debug: 4.3.6 env-ci: 11.0.0 - execa: 9.2.0 + execa: 9.3.0 figures: 6.1.0 find-versions: 6.0.0 get-stream: 6.0.1 - git-log-parser: 1.2.0 + git-log-parser: 1.2.1 hook-std: 3.0.0 - hosted-git-info: 7.0.1 - import-from-esm: 1.3.3 + hosted-git-info: 7.0.2 + import-from-esm: 1.3.4 lodash-es: 4.17.21 - marked: 12.0.1 - marked-terminal: 7.0.0(marked@12.0.1) + marked: 12.0.2 + marked-terminal: 7.1.0(marked@12.0.2) micromatch: 4.0.7 p-each-series: 3.0.0 p-reduce: 3.0.0 @@ -7259,38 +8146,20 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: semver: 7.6.3 - dev: true - /semver-regex@4.0.5: - resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} - engines: {node: '>=12'} - dev: true + semver-regex@4.0.5: {} - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true + semver@6.3.1: {} - /semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.3: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -7298,113 +8167,68 @@ packages: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 - dev: true - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - /shell-quote-word@1.0.1: - resolution: {integrity: sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg==} - dev: true + shebang-regex@3.0.0: {} - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - dev: true + object-inspect: 1.13.2 - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true + siginfo@2.0.0: {} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /signale@1.4.0: - resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} - engines: {node: '>=6'} + signale@1.4.0: dependencies: chalk: 2.4.2 figures: 2.0.0 pkg-conf: 2.1.0 - dev: true - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + sisteransi@1.0.5: {} + + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: true - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: true + slash@4.0.0: {} - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: true + slash@5.1.0: {} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slashes@3.0.12: {} + + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - dev: true - /smol-toml@1.1.4: - resolution: {integrity: sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q==} - engines: {node: '>= 18', pnpm: '>= 8'} - dev: true + smol-toml@1.3.0: {} - /sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - dev: true + sort-object-keys@1.1.3: {} - /sort-package-json@2.10.0: - resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} - hasBin: true + sort-package-json@2.10.0: dependencies: detect-indent: 7.0.1 detect-newline: 4.0.1 @@ -7414,552 +8238,286 @@ packages: is-plain-obj: 4.1.0 semver: 7.6.3 sort-object-keys: 1.1.3 - dev: true - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.2.0: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true + source-map@0.6.1: {} - /spawn-error-forwarder@1.0.0: - resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} - dev: true + spawn-error-forwarder@1.0.0: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 - dev: true + spdx-license-ids: 3.0.18 - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: true + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - dev: true + spdx-license-ids: 3.0.18 - /spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - dev: true + spdx-license-ids: 3.0.18 - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - dev: true + spdx-license-ids@3.0.18: {} - /split2@1.0.0: - resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + split2@1.0.0: dependencies: through2: 2.0.5 - dev: true - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minipass: 7.1.2 - dev: true + stable-hash@0.0.4: {} - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true + stackback@0.0.2: {} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true + std-env@3.7.0: {} - /stream-combiner2@1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 readable-stream: 2.3.8 - dev: true - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.3.2: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} - engines: {node: '>=18'} + string-width@7.2.0: dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - dev: true - - /string.fromcodepoint@0.2.1: - resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==} - dev: true - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 - dev: true + es-object-atoms: 1.0.0 - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true + strip-bom@3.0.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-final-newline@4.0.0: - resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} - engines: {node: '>=18'} - dev: true + strip-final-newline@4.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@3.1.1: {} - /strip-json-comments@5.0.1: - resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} - engines: {node: '>=14.16'} - dev: true + strip-json-comments@5.0.1: {} - /summary@2.1.0: - resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} - dev: true + summary@2.1.0: {} - /super-regex@1.0.0: - resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} - engines: {node: '>=18'} + super-regex@1.0.0: dependencies: function-timeout: 1.0.2 time-span: 5.1.0 - dev: true - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.6.2: dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.6.2 - dev: true + tslib: 2.6.3 - /synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 - dev: true + tslib: 2.6.3 - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true + tapable@2.2.1: {} - /temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - dev: true + temp-dir@3.0.0: {} - /tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} + tempy@3.1.0: dependencies: is-stream: 3.0.0 temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 - dev: true - - /test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} + + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 glob: 10.4.5 minimatch: 9.0.5 - dev: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-table@0.2.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true - - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /time-span@5.1.0: - resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} - engines: {node: '>=12'} + time-span@5.1.0: dependencies: convert-hrtime: 5.0.0 - dev: true - - /tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - dev: true - - /tinypool@1.0.0: - resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} - engines: {node: ^18.0.0 || >=20.0.0} - dev: true - /tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@3.0.0: - resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} - engines: {node: '>=14.0.0'} - dev: true + tinybench@2.8.0: {} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true + tinypool@1.0.0: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true + tinyrainbow@1.2.0: {} - /to-no-case@1.0.2: - resolution: {integrity: sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==} - dev: true + tinyspy@3.0.0: {} - /to-pascal-case@1.0.0: - resolution: {integrity: sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA==} - dependencies: - to-space-case: 1.0.0 - dev: true + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /to-space-case@1.0.0: - resolution: {integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==} - dependencies: - to-no-case: 1.0.2 - dev: true - - /traverse@0.6.8: - resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} - engines: {node: '>= 0.4'} - dev: true + traverse@0.6.8: {} - /ts-api-utils@1.3.0(typescript@5.4.3): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + ts-api-utils@1.3.0(typescript@5.5.4): dependencies: - typescript: 5.4.3 + typescript: 5.5.4 - /ts-clone-node@3.0.0(typescript@5.4.3): - resolution: {integrity: sha512-egavvyHbIoelkgh1IC2agNB1uMNjB8VJgh0g/cn0bg2XXTcrtjrGMzEk4OD3Fi2hocICjP3vMa56nkzIzq0FRg==} - engines: {node: '>=14.9.0'} - peerDependencies: - typescript: ^3.x || ^4.x || ^5.x + ts-clone-node@3.0.0(typescript@5.5.4): dependencies: - compatfactory: 3.0.0(typescript@5.4.3) - typescript: 5.4.3 - dev: true + compatfactory: 3.0.0(typescript@5.5.4) + typescript: 5.5.4 - /ts-declaration-location@1.0.0(typescript@5.4.3): - resolution: {integrity: sha512-/C+R0e1CLF1KtwbE59IFhCg4jLwfU7Puob+uVIl4iUVQhepN/bHmWXy3Gt3mAgvdLQybEZ4yb4qhnJQbphnEgA==} - peerDependencies: - typescript: '>=4.0.0' + ts-declaration-location@1.0.4(typescript@5.5.4): dependencies: - fast-glob: 3.3.2 - typescript: 5.4.3 - dev: false + minimatch: 10.0.1 + typescript: 5.5.4 - /tsc-files@1.1.4(typescript@5.4.3): - resolution: {integrity: sha512-RePsRsOLru3BPpnf237y1Xe1oCGta8rmSYzM76kYo5tLGsv5R2r3s64yapYorGTPuuLyfS9NVbh9ydzmvNie2w==} - hasBin: true - peerDependencies: - typescript: '>=3' + tsc-alias@1.8.10: dependencies: - typescript: 5.4.3 - dev: true + chokidar: 3.6.0 + commander: 9.5.0 + globby: 11.1.0 + mylas: 2.1.13 + normalize-path: 3.0.0 + plimit-lit: 1.6.1 - /tsconfck@3.0.3(typescript@5.4.3): - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + tsc-files@1.1.4(typescript@5.5.4): dependencies: - typescript: 5.4.3 - dev: true + typescript: 5.5.4 - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfck@3.1.1(typescript@5.5.4): + optionalDependencies: + typescript: 5.5.4 + + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - - /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true + tslib@1.14.1: {} - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true + tslib@2.6.3: {} - /tsutils@3.21.0(typescript@5.4.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tsutils@3.21.0(typescript@5.5.4): dependencies: tslib: 1.14.1 - typescript: 5.4.3 - dev: true + typescript: 5.5.4 - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + tsx@4.16.5: dependencies: - prelude-ls: 1.2.1 + esbuild: 0.21.5 + get-tsconfig: 4.7.6 + optionalDependencies: + fsevents: 2.3.3 - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true + type-detect@4.1.0: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true + type-fest@2.19.0: {} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true + type-fest@3.13.1: {} - /type-fest@4.13.1: - resolution: {integrity: sha512-ASMgM+Vf2cLwDMt1KXSkMUDSYCxtckDJs8zsaVF/mYteIsiARKCVtyXtcK38mIKbLTctZP8v6GMqdNaeI3fo7g==} - engines: {node: '>=16'} - dev: true + type-fest@4.23.0: {} - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: 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 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -7967,11 +8525,8 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -7979,146 +8534,67 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.5.4: {} - /ua-parser-js@1.0.37: - resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} - dev: true + ua-parser-js@1.0.38: {} - /uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - dev: true + uc.micro@2.1.0: {} - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + ufo@1.5.4: {} + + uglify-js@3.19.1: optional: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unescape-js@1.1.4: - resolution: {integrity: sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==} - dependencies: - string.fromcodepoint: 0.2.1 - dev: true - - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: true + unicode-emoji-modifier-base@1.0.0: {} - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: true - - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: true + unicorn-magic@0.1.0: {} - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: true - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + unist-util-stringify-position@2.0.3: dependencies: '@types/unist': 2.0.10 - dev: true - /universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} - dev: true + universal-user-agent@7.0.2: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.1: {} - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.0.0 - dev: true + picocolors: 1.0.1 - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - /url-join@5.0.0: - resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + url-join@5.0.0: {} - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - - /validate-npm-package-name@4.0.0: - resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - builtins: 5.0.1 - dev: true - - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - builtins: 5.0.1 - dev: true - /version-selector-type@3.0.0: - resolution: {integrity: sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA==} - engines: {node: '>=10.13'} - dependencies: - semver: 7.6.3 - dev: true - - /vite-node@2.0.5(@types/node@16.18.93): - resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vite-node@2.0.5(@types/node@18.18.0): dependencies: cac: 6.7.14 debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.1.6(@types/node@16.18.93) + vite: 5.3.5(@types/node@18.18.0) transitivePeerDependencies: - '@types/node' - less @@ -8128,87 +8604,30 @@ packages: - sugarss - supports-color - terser - dev: true - /vite-tsconfig-paths@4.3.2(typescript@5.4.3): - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true + vite-tsconfig-paths@4.3.2(typescript@5.5.4)(vite@5.3.5(@types/node@18.18.0)): dependencies: debug: 4.3.6 globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.4.3) + tsconfck: 3.1.1(typescript@5.5.4) + optionalDependencies: + vite: 5.3.5(@types/node@18.18.0) transitivePeerDependencies: - supports-color - typescript - dev: true - /vite@5.1.6(@types/node@16.18.93): - resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@5.3.5(@types/node@18.18.0): dependencies: - '@types/node': 16.18.93 - esbuild: 0.19.12 - postcss: 8.4.37 - rollup: 4.13.2 + esbuild: 0.21.5 + postcss: 8.4.40 + rollup: 4.20.0 optionalDependencies: + '@types/node': 18.18.0 fsevents: 2.3.3 - dev: true - /vitest@2.0.5(@types/node@16.18.93): - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + vitest@2.0.5(@types/node@18.18.0): dependencies: '@ampproject/remapping': 2.3.0 - '@types/node': 16.18.93 '@vitest/expect': 2.0.5 '@vitest/pretty-format': 2.0.5 '@vitest/runner': 2.0.5 @@ -8224,9 +8643,11 @@ packages: tinybench: 2.8.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.1.6(@types/node@16.18.93) - vite-node: 2.0.5(@types/node@16.18.93) + vite: 5.3.5(@types/node@18.18.0) + vite-node: 2.0.5(@types/node@18.18.0) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 18.18.0 transitivePeerDependencies: - less - lightningcss @@ -8235,164 +8656,86 @@ packages: - sugarss - supports-color - terser - dev: true - /vlq@0.2.3: - resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} - dev: true + vscode-languageserver-textdocument@1.0.12: {} - /vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - dev: true - - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: true + vscode-uri@3.0.8: {} - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true + optional: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: 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 - dev: true - - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - isexe: 3.1.1 - dev: true - - /why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: true - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: true + word-wrap@1.2.5: {} - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + wordwrap@1.0.0: {} - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true - /wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 - string-width: 7.1.0 + string-width: 7.2.0 strip-ansi: 7.1.0 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - dev: true + wrappy@1.0.2: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xdg-basedir@5.1.0: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + xtend@4.0.2: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true + y18n@5.0.8: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true + yallist@3.1.1: {} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.5.0 - /yaml@2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} - engines: {node: '>= 14'} - hasBin: true - dev: true + yaml@2.5.0: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -8401,11 +8744,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -8414,26 +8754,13 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yoctocolors@2.0.2: - resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} - engines: {node: '>=18'} - dev: true + yoctocolors@2.1.1: {} - /zod-validation-error@3.0.3(zod@3.22.4): - resolution: {integrity: sha512-cETTrcMq3Ze58vhdR0zD37uJm/694I6mAxcf/ei5bl89cC++fBNxrC2z8lkFze/8hVMPwrbtrwXHR2LB50fpHw==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.18.0 + zod-validation-error@3.0.3(zod@3.22.4): dependencies: zod: 3.22.4 - dev: true - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: true + zod@3.22.4: {} diff --git a/project-dictionary.txt b/project-dictionary.txt index e2301ea00..e2fd461f0 100644 --- a/project-dictionary.txt +++ b/project-dictionary.txt @@ -16,5 +16,6 @@ noreply rebeccastevens ruleset rulesets +sonarjs treeshake TSES diff --git a/rollup.config.ts b/rollup.config.ts index 9661deb75..da25c914d 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -1,151 +1,52 @@ import { rollupPlugin as rollupPluginDeassert } from "deassert"; -import { type RollupOptions } from "rollup"; -import rollupPluginAutoExternal from "rollup-plugin-auto-external"; +import type { RollupOptions } from "rollup"; import rollupPluginTs from "rollup-plugin-ts"; import pkg from "./package.json" assert { type: "json" }; -const treeshake = { - annotations: true, - moduleSideEffects: [], - propertyReadSideEffects: false, - unknownGlobalSideEffects: false, -} satisfies RollupOptions["treeshake"]; +const externalDependencies = [ + ...Object.keys(pkg.dependencies ?? {}), + ...Object.keys(pkg.peerDependencies ?? {}), +]; -const classicCJS = { - input: "src/classic.ts", +const esm = { + input: "src/index.ts", output: { - file: pkg.exports["."].require, - format: "cjs", - sourcemap: false, - }, - - plugins: [ - rollupPluginAutoExternal(), - rollupPluginTs({ - transpileOnly: true, - tsconfig: { - fileName: "tsconfig.build.json", - hook: (resolvedConfig) => ({ - ...resolvedConfig, - paths: { - ...resolvedConfig.paths, - "#/conditional-imports/*": [ - "src/utils/conditional-imports/cjs/*", - ], - }, - }), - }, - }), - rollupPluginDeassert({ - include: ["**/*.{js,ts}"], - }), - ], - - treeshake, -} satisfies RollupOptions; - -const classicESM = { - input: "src/classic.ts", - - output: { - file: pkg.exports["."].import, + file: pkg.exports.default, format: "esm", sourcemap: false, + generatedCode: { + preset: "es2015", + }, }, plugins: [ - rollupPluginAutoExternal(), rollupPluginTs({ transpileOnly: true, - tsconfig: { - fileName: "tsconfig.build.json", - hook: (resolvedConfig) => ({ - ...resolvedConfig, - paths: { - ...resolvedConfig.paths, - "#/conditional-imports/*": [ - "src/utils/conditional-imports/esm/*", - ], - }, - }), - }, + tsconfig: "tsconfig.build.json", }), rollupPluginDeassert({ include: ["**/*.{js,ts}"], }), ], - treeshake, -} satisfies RollupOptions; - -const flatCJS = { - input: "src/flat.ts", - - output: { - file: pkg.exports["./flat"].require, - format: "cjs", - sourcemap: false, + treeshake: { + annotations: true, + moduleSideEffects: [], + propertyReadSideEffects: false, + unknownGlobalSideEffects: false, }, - plugins: [ - rollupPluginAutoExternal(), - rollupPluginTs({ - transpileOnly: true, - tsconfig: { - fileName: "tsconfig.build.json", - hook: (resolvedConfig) => ({ - ...resolvedConfig, - paths: { - ...resolvedConfig.paths, - "#/conditional-imports/*": [ - "src/utils/conditional-imports/cjs/*", - ], - }, - }), - }, - }), - rollupPluginDeassert({ - include: ["**/*.{js,ts}"], - }), - ], - - treeshake, -} satisfies RollupOptions; - -const flatESM = { - input: "src/flat.ts", - - output: { - file: pkg.exports["./flat"].import, - format: "esm", - sourcemap: false, + external: (source) => { + if ( + source.startsWith("node:") || + externalDependencies.some((dep) => source.startsWith(dep)) + ) { + return true; + } + return undefined; }, - - plugins: [ - rollupPluginAutoExternal(), - rollupPluginTs({ - transpileOnly: true, - tsconfig: { - fileName: "tsconfig.build.json", - hook: (resolvedConfig) => ({ - ...resolvedConfig, - paths: { - ...resolvedConfig.paths, - "#/conditional-imports/*": [ - "src/utils/conditional-imports/esm/*", - ], - }, - }), - }, - }), - rollupPluginDeassert({ - include: ["**/*.{js,ts}"], - }), - ], - - treeshake, } satisfies RollupOptions; -export default [classicCJS, classicESM, flatCJS, flatESM]; +export default [esm] as RollupOptions[]; diff --git a/src/classic.ts b/src/classic.ts deleted file mode 100644 index 02c1d81c2..000000000 --- a/src/classic.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { type Linter } from "@typescript-eslint/utils/ts-eslint"; - -import all from "#/configs/all"; -import currying from "#/configs/currying"; -import disableTypeChecked from "#/configs/disable-type-checked"; -import externalTypeScriptRecommended from "#/configs/external-typescript-recommended"; -import externalVanillaRecommended from "#/configs/external-vanilla-recommended"; -import lite from "#/configs/lite"; -import noExceptions from "#/configs/no-exceptions"; -import noMutations from "#/configs/no-mutations"; -import noOtherParadigms from "#/configs/no-other-paradigms"; -import noStatements from "#/configs/no-statements"; -import off from "#/configs/off"; -import recommended from "#/configs/recommended"; -import strict from "#/configs/strict"; -import stylistic from "#/configs/stylistic"; -import { rules } from "#/rules"; -import { ruleNameScope } from "#/utils/misc"; - -export default { - rules, - configs: { - all: { plugins: [ruleNameScope], rules: all }, - lite: { plugins: [ruleNameScope], rules: lite }, - recommended: { plugins: [ruleNameScope], rules: recommended }, - strict: { plugins: [ruleNameScope], rules: strict }, - off: { plugins: [ruleNameScope], rules: off }, - "disable-type-checked": { - plugins: [ruleNameScope], - rules: disableTypeChecked, - }, - "external-vanilla-recommended": { - plugins: [ruleNameScope], - rules: externalVanillaRecommended, - }, - "external-typescript-recommended": { - plugins: [ruleNameScope], - rules: externalTypeScriptRecommended, - }, - currying: { plugins: [ruleNameScope], rules: currying }, - "no-exceptions": { plugins: [ruleNameScope], rules: noExceptions }, - "no-mutations": { plugins: [ruleNameScope], rules: noMutations }, - "no-other-paradigms": { plugins: [ruleNameScope], rules: noOtherParadigms }, - "no-statements": { plugins: [ruleNameScope], rules: noStatements }, - stylistic: { plugins: [ruleNameScope], rules: stylistic }, - }, -} as Linter.Plugin; diff --git a/src/configs/all.ts b/src/configs/all.ts index a107efa90..d96fafa1b 100644 --- a/src/configs/all.ts +++ b/src/configs/all.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -12,4 +12,6 @@ export default { rule.meta.docs.recommendedSeverity, ]), ), -} satisfies FlatConfig.Config["rules"]; +} satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/currying.ts b/src/configs/currying.ts index 2f3f2a44e..f630eb9bb 100644 --- a/src/configs/currying.ts +++ b/src/configs/currying.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/disable-type-checked.ts b/src/configs/disable-type-checked.ts index d699f8d4b..f4aabd3b1 100644 --- a/src/configs/disable-type-checked.ts +++ b/src/configs/disable-type-checked.ts @@ -1,10 +1,12 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; export default Object.fromEntries( Object.entries(rules) - .filter(([, rule]) => rule.meta.docs?.requiresTypeChecking === true) + .filter(([, rule]) => rule.meta.docs.requiresTypeChecking) .map(([name]) => [`${ruleNameScope}/${name}`, "off"]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/external-typescript-recommended.ts b/src/configs/external-typescript-recommended.ts index 3eb980692..96762734a 100644 --- a/src/configs/external-typescript-recommended.ts +++ b/src/configs/external-typescript-recommended.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import externalVanillaRecommended from "#/configs/external-vanilla-recommended"; @@ -10,4 +10,6 @@ const tsConfig = { export default { ...externalVanillaRecommended, ...tsConfig, -} satisfies FlatConfig.Config["rules"]; +} satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/external-vanilla-recommended.ts b/src/configs/external-vanilla-recommended.ts index 3f97fe43d..56bec7cde 100644 --- a/src/configs/external-vanilla-recommended.ts +++ b/src/configs/external-vanilla-recommended.ts @@ -1,7 +1,9 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; export default { "prefer-const": "error", "no-param-reassign": "error", "no-var": "error", -} satisfies FlatConfig.Config["rules"]; +} satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/lite.ts b/src/configs/lite.ts index ce71f647e..110153d77 100644 --- a/src/configs/lite.ts +++ b/src/configs/lite.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import * as functionalParameters from "#/rules/functional-parameters"; import * as immutableData from "#/rules/immutable-data"; @@ -33,4 +33,6 @@ const overrides = { export default { ...recommended, ...overrides, -}; +} satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/no-exceptions.ts b/src/configs/no-exceptions.ts index 288aa70d5..3d150e856 100644 --- a/src/configs/no-exceptions.ts +++ b/src/configs/no-exceptions.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/no-mutations.ts b/src/configs/no-mutations.ts index b839e44e6..56697ef40 100644 --- a/src/configs/no-mutations.ts +++ b/src/configs/no-mutations.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/no-other-paradigms.ts b/src/configs/no-other-paradigms.ts index beb8a27b5..a0b83136c 100644 --- a/src/configs/no-other-paradigms.ts +++ b/src/configs/no-other-paradigms.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/no-statements.ts b/src/configs/no-statements.ts index 3807aeac1..aa7f2f5a9 100644 --- a/src/configs/no-statements.ts +++ b/src/configs/no-statements.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/off.ts b/src/configs/off.ts index ca6966b30..8a8229fbb 100644 --- a/src/configs/off.ts +++ b/src/configs/off.ts @@ -1,8 +1,10 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; export default Object.fromEntries( Object.entries(rules).map(([name]) => [`${ruleNameScope}/${name}`, "off"]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/recommended.ts b/src/configs/recommended.ts index a4877d158..1ce627a66 100644 --- a/src/configs/recommended.ts +++ b/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { Immutability } from "is-immutable-type"; import { rules } from "#/rules"; @@ -120,4 +120,6 @@ const overrides = { export default { ...recommended, ...overrides, -}; +} satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/strict.ts b/src/configs/strict.ts index cdb8eefdd..5efa12e66 100644 --- a/src/configs/strict.ts +++ b/src/configs/strict.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/configs/stylistic.ts b/src/configs/stylistic.ts index a3025e738..f1961de9d 100644 --- a/src/configs/stylistic.ts +++ b/src/configs/stylistic.ts @@ -1,4 +1,4 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; import { rules } from "#/rules"; import { ruleNameScope } from "#/utils/misc"; @@ -15,4 +15,6 @@ export default Object.fromEntries( `${ruleNameScope}/${name}`, rule.meta.docs.recommendedSeverity, ]), -) satisfies FlatConfig.Config["rules"]; +) satisfies FlatConfig.Config["rules"] as NonNullable< + FlatConfig.Config["rules"] +>; diff --git a/src/flat.ts b/src/flat.ts deleted file mode 100644 index cc12848be..000000000 --- a/src/flat.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { type FlatConfig } from "@typescript-eslint/utils/ts-eslint"; - -import all from "#/configs/all"; -import currying from "#/configs/currying"; -import disableTypeChecked from "#/configs/disable-type-checked"; -import externalTypeScriptRecommended from "#/configs/external-typescript-recommended"; -import externalVanillaRecommended from "#/configs/external-vanilla-recommended"; -import lite from "#/configs/lite"; -import noExceptions from "#/configs/no-exceptions"; -import noMutations from "#/configs/no-mutations"; -import noOtherParadigms from "#/configs/no-other-paradigms"; -import noStatements from "#/configs/no-statements"; -import off from "#/configs/off"; -import recommended from "#/configs/recommended"; -import strict from "#/configs/strict"; -import stylistic from "#/configs/stylistic"; -import { rules } from "#/rules"; -import { __VERSION__ } from "#/utils/constants"; - -const meta = { - name: "eslint-plugin-functional", - version: __VERSION__, -} as const; - -const functional: FlatConfig.Plugin = { - meta, - rules, -}; - -const configs = { - all: { plugins: { functional }, rules: all }, - lite: { plugins: { functional }, rules: lite }, - recommended: { plugins: { functional }, rules: recommended }, - strict: { plugins: { functional }, rules: strict }, - off: { plugins: { functional }, rules: off }, - disableTypeChecked: { - plugins: { functional }, - rules: disableTypeChecked, - }, - externalVanillaRecommended: { - plugins: { functional }, - rules: externalVanillaRecommended, - }, - externalTypescriptRecommended: { - plugins: { functional }, - rules: externalTypeScriptRecommended, - }, - currying: { plugins: { functional }, rules: currying }, - noExceptions: { plugins: { functional }, rules: noExceptions }, - noMutations: { plugins: { functional }, rules: noMutations }, - noOtherParadigms: { - plugins: { functional }, - rules: noOtherParadigms, - }, - noStatements: { plugins: { functional }, rules: noStatements }, - stylistic: { plugins: { functional }, rules: stylistic }, -} satisfies Record; - -// eslint-disable-next-line functional/immutable-data, functional/no-expression-statements -functional.configs = configs; - -export default functional as FlatConfig.Plugin & { - meta: typeof meta; - rules: typeof rules; - configs: typeof configs; -}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 000000000..47acf921a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,85 @@ +import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; + +import all from "#/configs/all"; +import currying from "#/configs/currying"; +import disableTypeChecked from "#/configs/disable-type-checked"; +import externalTypeScriptRecommended from "#/configs/external-typescript-recommended"; +import externalVanillaRecommended from "#/configs/external-vanilla-recommended"; +import lite from "#/configs/lite"; +import noExceptions from "#/configs/no-exceptions"; +import noMutations from "#/configs/no-mutations"; +import noOtherParadigms from "#/configs/no-other-paradigms"; +import noStatements from "#/configs/no-statements"; +import off from "#/configs/off"; +import recommended from "#/configs/recommended"; +import strict from "#/configs/strict"; +import stylistic from "#/configs/stylistic"; +import { rules } from "#/rules"; +import { __VERSION__ } from "#/utils/constants"; + +const meta = { + name: "eslint-plugin-functional", + version: __VERSION__ as string, +} as const; + +const functional = { + meta, + rules, +} satisfies FlatConfig.Plugin; + +const plugins = { functional } as const; + +const configs: Readonly<{ + all: FlatConfig.Config; + lite: FlatConfig.Config; + recommended: FlatConfig.Config; + strict: FlatConfig.Config; + off: FlatConfig.Config; + disableTypeChecked: FlatConfig.Config; + externalVanillaRecommended: FlatConfig.Config; + externalTypeScriptRecommended: FlatConfig.Config; + currying: FlatConfig.Config; + noExceptions: FlatConfig.Config; + noMutations: FlatConfig.Config; + noOtherParadigms: FlatConfig.Config; + noStatements: FlatConfig.Config; + stylistic: FlatConfig.Config; +}> = { + all: { plugins, rules: all }, + lite: { plugins, rules: lite }, + recommended: { plugins, rules: recommended }, + strict: { plugins, rules: strict }, + off: { plugins, rules: off }, + disableTypeChecked: { + plugins, + rules: disableTypeChecked, + }, + externalVanillaRecommended: { + plugins, + rules: externalVanillaRecommended, + }, + externalTypeScriptRecommended: { + plugins, + rules: externalTypeScriptRecommended, + }, + currying: { plugins, rules: currying }, + noExceptions: { plugins, rules: noExceptions }, + noMutations: { plugins, rules: noMutations }, + noOtherParadigms: { + plugins, + rules: noOtherParadigms, + }, + noStatements: { plugins, rules: noStatements }, + stylistic: { plugins, rules: stylistic }, +} satisfies Record; + +type EslintPluginFunctional = FlatConfig.Plugin & { + meta: typeof meta; + rules: typeof rules; + configs: typeof configs; +}; + +// eslint-disable-next-line functional/immutable-data +(functional as EslintPluginFunctional).configs = configs; + +export default functional as EslintPluginFunctional; diff --git a/src/options/ignore.ts b/src/options/ignore.ts index 1c5d82bad..e5a2a3e68 100644 --- a/src/options/ignore.ts +++ b/src/options/ignore.ts @@ -1,10 +1,10 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4ObjectSchema } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4ObjectSchema } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import escapeRegExp from "escape-string-regexp"; import { getNodeCode, getNodeIdentifierTexts } from "#/utils/misc"; -import { type BaseOptions } from "#/utils/rule"; +import type { BaseOptions } from "#/utils/rule"; import { isInClass, isInFunctionBody } from "#/utils/tree"; import { isAssignmentExpression, diff --git a/src/rules/functional-parameters.ts b/src/rules/functional-parameters.ts index 08bc46d3c..de1803f61 100644 --- a/src/rules/functional-parameters.ts +++ b/src/rules/functional-parameters.ts @@ -1,24 +1,25 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import { + type IgnoreIdentifierPatternOption, + type IgnorePrefixSelectorOption, ignoreIdentifierPatternOptionSchema, ignorePrefixSelectorOptionSchema, shouldIgnorePattern, - type IgnoreIdentifierPatternOption, - type IgnorePrefixSelectorOption, } from "#/options"; import { ruleNameScope } from "#/utils/misc"; -import { type ESFunction } from "#/utils/node-types"; +import type { ESFunction } from "#/utils/node-types"; import { - createRuleUsingFunction, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRuleUsingFunction, } from "#/utils/rule"; import { isArgument, @@ -38,7 +39,7 @@ export const name = "functional-parameters"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The parameter count options this rule can take. @@ -149,13 +150,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "Currying", description: "Enforce functional parameters.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -292,36 +294,40 @@ function checkIdentifier( } // Create the rule. -export const rule = createRuleUsingFunction< - keyof typeof errorMessages, - Options ->(name, meta, defaultOptions, (context, options) => { - const [optionsObject] = options; - const { ignorePrefixSelector } = optionsObject; +export const rule: Rule = + createRuleUsingFunction( + name, + meta, + defaultOptions, + (context, options) => { + const [optionsObject] = options; + const { ignorePrefixSelector } = optionsObject; - const baseFunctionSelectors = [ - "ArrowFunctionExpression", - "FunctionDeclaration", - "FunctionExpression", - ]; + const baseFunctionSelectors = [ + "ArrowFunctionExpression", + "FunctionDeclaration", + "FunctionExpression", + ]; - const ignoreSelectors = - ignorePrefixSelector === undefined - ? undefined - : Array.isArray(ignorePrefixSelector) - ? ignorePrefixSelector - : [ignorePrefixSelector]; + const ignoreSelectors = + ignorePrefixSelector === undefined + ? undefined + : Array.isArray(ignorePrefixSelector) + ? ignorePrefixSelector + : [ignorePrefixSelector]; - const fullFunctionSelectors = baseFunctionSelectors.flatMap((baseSelector) => - ignoreSelectors === undefined - ? [baseSelector] - : `:not(:matches(${ignoreSelectors.join(",")})) > ${baseSelector}`, - ); + const fullFunctionSelectors = baseFunctionSelectors.flatMap( + (baseSelector) => + ignoreSelectors === undefined + ? [baseSelector] + : `:not(:matches(${ignoreSelectors.join(",")})) > ${baseSelector}`, + ); - return { - ...Object.fromEntries( - fullFunctionSelectors.map((selector) => [selector, checkFunction]), - ), - Identifier: checkIdentifier, - }; -}); + return { + ...Object.fromEntries( + fullFunctionSelectors.map((selector) => [selector, checkFunction]), + ), + Identifier: checkIdentifier, + }; + }, + ); diff --git a/src/rules/immutable-data.ts b/src/rules/immutable-data.ts index e5c62c842..5f2278f54 100644 --- a/src/rules/immutable-data.ts +++ b/src/rules/immutable-data.ts @@ -1,27 +1,28 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import { + type IgnoreAccessorPatternOption, + type IgnoreClassesOption, + type IgnoreIdentifierPatternOption, ignoreAccessorPatternOptionSchema, ignoreClassesOptionSchema, ignoreIdentifierPatternOptionSchema, shouldIgnoreClasses, shouldIgnorePattern, - type IgnoreAccessorPatternOption, - type IgnoreClassesOption, - type IgnoreIdentifierPatternOption, } from "#/options"; import { isExpected, ruleNameScope } from "#/utils/misc"; import { - createRule, - getTypeOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeOfNode, } from "#/utils/rule"; import { findRootIdentifier, @@ -48,7 +49,7 @@ export const name = "immutable-data"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -125,7 +126,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Mutations", @@ -605,14 +606,12 @@ function checkCallExpression( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - AssignmentExpression: checkAssignmentExpression, - UnaryExpression: checkUnaryExpression, - UpdateExpression: checkUpdateExpression, - CallExpression: checkCallExpression, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + AssignmentExpression: checkAssignmentExpression, + UnaryExpression: checkUnaryExpression, + UpdateExpression: checkUpdateExpression, + CallExpression: checkCallExpression, +}); diff --git a/src/rules/index.ts b/src/rules/index.ts index 7abddf629..53f668494 100644 --- a/src/rules/index.ts +++ b/src/rules/index.ts @@ -21,7 +21,27 @@ import * as typeDeclarationImmutability from "./type-declaration-immutability"; /** * All of the custom rules. */ -export const rules = { +export const rules: Readonly<{ + [functionalParameters.name]: typeof functionalParameters.rule; + [immutableData.name]: typeof immutableData.rule; + [noClasses.name]: typeof noClasses.rule; + [noConditionalStatements.name]: typeof noConditionalStatements.rule; + [noExpressionStatements.name]: typeof noExpressionStatements.rule; + [noLet.name]: typeof noLet.rule; + [noLoopStatements.name]: typeof noLoopStatements.rule; + [noMixedTypes.name]: typeof noMixedTypes.rule; + [noPromiseReject.name]: typeof noPromiseReject.rule; + [noReturnVoid.name]: typeof noReturnVoid.rule; + [noThisExpressions.name]: typeof noThisExpressions.rule; + [noThrowStatements.name]: typeof noThrowStatements.rule; + [noTryStatements.name]: typeof noTryStatements.rule; + [preferImmutableTypes.name]: typeof preferImmutableTypes.rule; + [preferPropertySignatures.name]: typeof preferPropertySignatures.rule; + [preferReadonlyTypes.name]: typeof preferReadonlyTypes.rule; + [preferTacit.name]: typeof preferTacit.rule; + [readonlyType.name]: typeof readonlyType.rule; + [typeDeclarationImmutability.name]: typeof typeDeclarationImmutability.rule; +}> = { [functionalParameters.name]: functionalParameters.rule, [immutableData.name]: immutableData.rule, [noClasses.name]: noClasses.rule, diff --git a/src/rules/no-classes.ts b/src/rules/no-classes.ts index 6e9752aea..770c884f8 100644 --- a/src/rules/no-classes.ts +++ b/src/rules/no-classes.ts @@ -1,12 +1,13 @@ -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; -import { type ESClass } from "#/utils/node-types"; +import type { ESClass } from "#/utils/node-types"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; /** @@ -17,7 +18,7 @@ export const name = "no-classes"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -44,13 +45,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Other Paradigms", description: "Disallow classes.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -68,9 +70,10 @@ function checkClass( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { ClassDeclaration: checkClass, ClassExpression: checkClass }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ClassDeclaration: checkClass, + ClassExpression: checkClass, +}); diff --git a/src/rules/no-conditional-statements.ts b/src/rules/no-conditional-statements.ts index 1bdfdb83a..9b3af4f4e 100644 --- a/src/rules/no-conditional-statements.ts +++ b/src/rules/no-conditional-statements.ts @@ -1,15 +1,16 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; -import { type Type } from "typescript"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { Type } from "typescript"; import tsApiUtils from "#/conditional-imports/ts-api-utils"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, - getTypeOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeOfNode, } from "#/utils/rule"; import { isBlockStatement, @@ -24,14 +25,14 @@ import { } from "#/utils/type-guards"; /** - * The name of this rule. + * The name of this . */ export const name = "no-conditional-statements"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -89,7 +90,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Statements", @@ -339,12 +340,10 @@ function checkSwitchStatement( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - IfStatement: checkIfStatement, - SwitchStatement: checkSwitchStatement, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + IfStatement: checkIfStatement, + SwitchStatement: checkSwitchStatement, +}); diff --git a/src/rules/no-expression-statements.ts b/src/rules/no-expression-statements.ts index 642c0f363..c231cde37 100644 --- a/src/rules/no-expression-statements.ts +++ b/src/rules/no-expression-statements.ts @@ -1,24 +1,25 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import tsApiUtils from "#/conditional-imports/ts-api-utils"; import typescript from "#/conditional-imports/typescript"; import { + type IgnoreCodePatternOption, ignoreCodePatternOptionSchema, shouldIgnorePattern, - type IgnoreCodePatternOption, } from "#/options"; import { isDirectivePrologue, ruleNameScope } from "#/utils/misc"; import { - createRule, - getTypeOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeOfNode, } from "#/utils/rule"; import { isCallExpression, isYieldExpression } from "#/utils/type-guards"; @@ -30,7 +31,7 @@ export const name = "no-expression-statements"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -80,7 +81,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Statements", @@ -183,11 +184,9 @@ function checkExpressionStatement( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ExpressionStatement: checkExpressionStatement, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ExpressionStatement: checkExpressionStatement, +}); diff --git a/src/rules/no-let.ts b/src/rules/no-let.ts index 49e259df0..1f60df3d3 100644 --- a/src/rules/no-let.ts +++ b/src/rules/no-let.ts @@ -1,22 +1,23 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import { + type IgnoreIdentifierPatternOption, ignoreIdentifierPatternOptionSchema, shouldIgnoreInFunction, shouldIgnorePattern, - type IgnoreIdentifierPatternOption, } from "#/options"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; import { isInForLoopInitializer } from "#/utils/tree"; @@ -28,7 +29,7 @@ export const name = "no-let"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -78,13 +79,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Mutations", description: "Disallow mutable variables.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -121,11 +123,9 @@ function checkVariableDeclaration( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - VariableDeclaration: checkVariableDeclaration, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + VariableDeclaration: checkVariableDeclaration, +}); diff --git a/src/rules/no-loop-statements.ts b/src/rules/no-loop-statements.ts index fc43fce66..f11f5f980 100644 --- a/src/rules/no-loop-statements.ts +++ b/src/rules/no-loop-statements.ts @@ -1,12 +1,13 @@ -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; -import { type ESLoop } from "#/utils/node-types"; +import type { ESLoop } from "#/utils/node-types"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; /** @@ -17,7 +18,7 @@ export const name = "no-loop-statements"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -44,13 +45,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Statements", description: "Disallow imperative loops.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -68,15 +70,13 @@ function checkLoop( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ForStatement: checkLoop, - ForInStatement: checkLoop, - ForOfStatement: checkLoop, - WhileStatement: checkLoop, - DoWhileStatement: checkLoop, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ForStatement: checkLoop, + ForInStatement: checkLoop, + ForOfStatement: checkLoop, + WhileStatement: checkLoop, + DoWhileStatement: checkLoop, +}); diff --git a/src/rules/no-mixed-types.ts b/src/rules/no-mixed-types.ts index b3011eee8..1eee9c184 100644 --- a/src/rules/no-mixed-types.ts +++ b/src/rules/no-mixed-types.ts @@ -1,13 +1,14 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRuleUsingFunction, - getTypeOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRuleUsingFunction, + getTypeOfNode, } from "#/utils/rule"; import { isFunctionLikeType, @@ -30,7 +31,7 @@ export const name = "no-mixed-types"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -80,15 +81,15 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Other Paradigms", description: "Restrict types so that only members of the same kind are allowed in them.", - requiresTypeChecking: true, recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: true, }, messages: errorMessages, schema, @@ -98,21 +99,20 @@ const meta: NamedCreateRuleCustomMeta = { * Does the given type elements violate the rule. */ function hasTypeElementViolations( - typeElements: TSESTree.TypeElement[], + typeElements: ReadonlyArray, context: Readonly>, ): boolean { return !typeElements - .map((member) => { - return ( + .map( + (member) => isTSMethodSignature(member) || isTSCallSignatureDeclaration(member) || isTSConstructSignatureDeclaration(member) || ((isTSPropertySignature(member) || isTSIndexSignature(member)) && member.typeAnnotation !== undefined && (isTSFunctionType(member.typeAnnotation.typeAnnotation) || - isFunctionLikeType(getTypeOfNode(member, context)))) - ); - }) + isFunctionLikeType(getTypeOfNode(member, context)))), + ) .every((isFunction, _, array) => array[0] === isFunction); } @@ -162,24 +162,27 @@ function checkTSTypeAliasDeclaration( } // Create the rule. -export const rule = createRuleUsingFunction< - keyof typeof errorMessages, - Options ->(name, meta, defaultOptions, (context, options) => { - const [{ checkInterfaces, checkTypeLiterals }] = options; +export const rule: Rule = + createRuleUsingFunction( + name, + meta, + defaultOptions, + (context, options) => { + const [{ checkInterfaces, checkTypeLiterals }] = options; - return Object.fromEntries( - ( - [ - [ - "TSInterfaceDeclaration", - checkInterfaces ? checkTSInterfaceDeclaration : undefined, - ], - [ - "TSTypeAliasDeclaration", - checkTypeLiterals ? checkTSTypeAliasDeclaration : undefined, - ], - ] as const - ).filter(([sel, fn]) => fn !== undefined), - ) as Record; -}); + return Object.fromEntries( + ( + [ + [ + "TSInterfaceDeclaration", + checkInterfaces ? checkTSInterfaceDeclaration : undefined, + ], + [ + "TSTypeAliasDeclaration", + checkTypeLiterals ? checkTSTypeAliasDeclaration : undefined, + ], + ] as const + ).filter(([sel, fn]) => fn !== undefined), + ) as Record; + }, + ); diff --git a/src/rules/no-promise-reject.ts b/src/rules/no-promise-reject.ts index cda4e0c4b..159df1fb4 100644 --- a/src/rules/no-promise-reject.ts +++ b/src/rules/no-promise-reject.ts @@ -1,12 +1,13 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; import { getEnclosingFunction, getEnclosingTryStatement } from "#/utils/tree"; import { @@ -23,7 +24,7 @@ export const name = "no-promise-reject"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -50,13 +51,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Exceptions", description: "Disallow rejecting promises.", recommended: false, recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -135,13 +137,11 @@ function checkThrowStatement( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - CallExpression: checkCallExpression, - NewExpression: checkNewExpression, - ThrowStatement: checkThrowStatement, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + CallExpression: checkCallExpression, + NewExpression: checkNewExpression, + ThrowStatement: checkThrowStatement, +}); diff --git a/src/rules/no-return-void.ts b/src/rules/no-return-void.ts index 8563f2c30..4b711b120 100644 --- a/src/rules/no-return-void.ts +++ b/src/rules/no-return-void.ts @@ -1,14 +1,15 @@ -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import tsApiUtils from "#/conditional-imports/ts-api-utils"; import { ruleNameScope } from "#/utils/misc"; -import { type ESFunctionType } from "#/utils/node-types"; +import type { ESFunctionType } from "#/utils/node-types"; import { - createRule, - getTypeOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeOfNode, } from "#/utils/rule"; import { isFunctionLike, @@ -25,7 +26,7 @@ export const name = "no-return-void"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -80,14 +81,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Statements", description: "Disallow functions that don't return anything.", - requiresTypeChecking: true, recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: true, }, messages: errorMessages, schema, @@ -141,19 +142,17 @@ function checkFunction( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ArrowFunctionExpression: checkFunction, - FunctionDeclaration: checkFunction, - FunctionExpression: checkFunction, - TSCallSignatureDeclaration: checkFunction, - TSConstructSignatureDeclaration: checkFunction, - TSDeclareFunction: checkFunction, - TSEmptyBodyFunctionExpression: checkFunction, - TSFunctionType: checkFunction, - TSMethodSignature: checkFunction, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ArrowFunctionExpression: checkFunction, + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction, + TSCallSignatureDeclaration: checkFunction, + TSConstructSignatureDeclaration: checkFunction, + TSDeclareFunction: checkFunction, + TSEmptyBodyFunctionExpression: checkFunction, + TSFunctionType: checkFunction, + TSMethodSignature: checkFunction, +}); diff --git a/src/rules/no-this-expressions.ts b/src/rules/no-this-expressions.ts index d11b5fcdf..19db69d86 100644 --- a/src/rules/no-this-expressions.ts +++ b/src/rules/no-this-expressions.ts @@ -1,12 +1,13 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; /** @@ -17,7 +18,7 @@ export const name = "no-this-expressions"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -44,13 +45,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Other Paradigms", description: "Disallow this access.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -68,11 +70,9 @@ function checkThisExpression( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ThisExpression: checkThisExpression, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ThisExpression: checkThisExpression, +}); diff --git a/src/rules/no-throw-statements.ts b/src/rules/no-throw-statements.ts index f6cae2d6e..6677eb1c9 100644 --- a/src/rules/no-throw-statements.ts +++ b/src/rules/no-throw-statements.ts @@ -1,12 +1,13 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; import { isInFunctionBody } from "#/utils/tree"; @@ -18,7 +19,7 @@ export const name = "no-throw-statements"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -63,13 +64,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Exceptions", description: "Disallow throwing exceptions.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -96,11 +98,9 @@ function checkThrowStatement( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ThrowStatement: checkThrowStatement, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ThrowStatement: checkThrowStatement, +}); diff --git a/src/rules/no-try-statements.ts b/src/rules/no-try-statements.ts index 0699c0093..fbafd86ba 100644 --- a/src/rules/no-try-statements.ts +++ b/src/rules/no-try-statements.ts @@ -1,12 +1,13 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; /** @@ -17,7 +18,7 @@ export const name = "no-try-statements"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -68,13 +69,14 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Exceptions", description: "Disallow try-catch[-finally] and try-finally patterns.", recommended: "recommended", recommendedSeverity: "error", + requiresTypeChecking: false, }, messages: errorMessages, schema, @@ -102,11 +104,9 @@ function checkTryStatement( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - TryStatement: checkTryStatement, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + TryStatement: checkTryStatement, +}); diff --git a/src/rules/prefer-immutable-types.ts b/src/rules/prefer-immutable-types.ts index e7ab569dc..4809e921b 100644 --- a/src/rules/prefer-immutable-types.ts +++ b/src/rules/prefer-immutable-types.ts @@ -1,32 +1,33 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { - type ReportFixFunction, - type RuleContext, +import type { + ReportFixFunction, + RuleContext, } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import { Immutability } from "is-immutable-type"; import { + type IgnoreClassesOption, ignoreClassesOptionSchema, shouldIgnoreClasses, shouldIgnoreInFunction, shouldIgnorePattern, - type IgnoreClassesOption, } from "#/options"; import { ruleNameScope } from "#/utils/misc"; -import { type ESFunctionType } from "#/utils/node-types"; +import type { ESFunctionType } from "#/utils/node-types"; import { + type NamedCreateRuleCustomMeta, + type Rule, + type RuleResult, createRule, getReturnTypesOfFunction, getTypeImmutabilityOfNode, getTypeImmutabilityOfType, isImplementationOfOverload, - type NamedCreateRuleCustomMeta, - type RuleResult, } from "#/utils/rule"; import { hasID, @@ -50,7 +51,7 @@ export const name = "prefer-immutable-types"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; type RawEnforcement = | Exclude @@ -231,7 +232,7 @@ const schema: JSONSchema4[] = [ ignoreInFunctions: { type: "boolean", }, - }), + } satisfies JSONSchema4ObjectSchema["properties"]), additionalProperties: false, }, { @@ -258,7 +259,7 @@ const schema: JSONSchema4[] = [ }, additionalProperties: false, }, - }), + } satisfies JSONSchema4ObjectSchema["properties"]), additionalProperties: false, }, ]; @@ -318,7 +319,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Mutations", @@ -353,7 +354,7 @@ function getAllFixers( fixerConfigs: FixerConfig[] | false, suggestionsConfigs: SuggestionsConfig[] | false, ): AllFixers { - const nodeText = context.sourceCode.getText(node).replaceAll(/\s+/gmu, " "); + const nodeText = context.sourceCode.getText(node).replaceAll(/\s+/gu, " "); const fix = fixerConfigs === false @@ -374,7 +375,7 @@ function getAllFixers( function getConfiguredFixer( node: TSESTree.Node, text: string, - configs: FixerConfig[], + configs: ReadonlyArray, ): NonNullable | null { const config = configs.find((c) => c.pattern.test(text)); if (config === undefined) { @@ -390,7 +391,7 @@ function getConfiguredFixer( function getConfiguredSuggestionFixers( node: TSESTree.Node, text: string, - suggestionsConfigs: SuggestionsConfig[], + suggestionsConfigs: ReadonlyArray, ) { return suggestionsConfigs .map( @@ -943,21 +944,19 @@ function checkVariable( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ArrowFunctionExpression: checkFunction, - FunctionDeclaration: checkFunction, - FunctionExpression: checkFunction, - TSCallSignatureDeclaration: checkFunction, - TSConstructSignatureDeclaration: checkFunction, - TSDeclareFunction: checkFunction, - TSEmptyBodyFunctionExpression: checkFunction, - TSFunctionType: checkFunction, - TSMethodSignature: checkFunction, - PropertyDefinition: checkVariable, - VariableDeclarator: checkVariable, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ArrowFunctionExpression: checkFunction, + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction, + TSCallSignatureDeclaration: checkFunction, + TSConstructSignatureDeclaration: checkFunction, + TSDeclareFunction: checkFunction, + TSEmptyBodyFunctionExpression: checkFunction, + TSFunctionType: checkFunction, + TSMethodSignature: checkFunction, + PropertyDefinition: checkVariable, + VariableDeclarator: checkVariable, +}); diff --git a/src/rules/prefer-property-signatures.ts b/src/rules/prefer-property-signatures.ts index 17cde2409..64b7eb39b 100644 --- a/src/rules/prefer-property-signatures.ts +++ b/src/rules/prefer-property-signatures.ts @@ -1,12 +1,13 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; import { isInReadonly } from "#/utils/tree"; @@ -18,7 +19,7 @@ export const name = "prefer-property-signatures"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -64,7 +65,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "Stylistic", @@ -96,11 +97,9 @@ function checkTSMethodSignature( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - TSMethodSignature: checkTSMethodSignature, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + TSMethodSignature: checkTSMethodSignature, +}); diff --git a/src/rules/prefer-readonly-type.ts b/src/rules/prefer-readonly-type.ts index 08df96544..8db988cb0 100644 --- a/src/rules/prefer-readonly-type.ts +++ b/src/rules/prefer-readonly-type.ts @@ -1,22 +1,23 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { + type IgnoreAccessorPatternOption, + type IgnoreCodePatternOption, shouldIgnoreClasses, shouldIgnoreInFunction, shouldIgnorePattern, - type IgnoreAccessorPatternOption, - type IgnoreCodePatternOption, } from "#/options"; import { ruleNameScope } from "#/utils/misc"; -import { type ESArrayTupleType } from "#/utils/node-types"; +import type { ESArrayTupleType } from "#/utils/node-types"; import { - createRule, - getTypeOfNode, type BaseOptions, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeOfNode, } from "#/utils/rule"; import { isInInterface, isInReturnType } from "#/utils/tree"; import { @@ -43,7 +44,7 @@ export const name = "prefer-readonly-type"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -132,7 +133,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { deprecated: true, replacedBy: [ "functional/prefer-immutable-types", @@ -510,22 +511,20 @@ function checkImplicitType( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - ArrowFunctionExpression: checkImplicitType, - PropertyDefinition: checkProperty, - FunctionDeclaration: checkImplicitType, - FunctionExpression: checkImplicitType, - TSArrayType: checkArrayOrTupleType, - TSIndexSignature: checkProperty, - TSParameterProperty: checkProperty, - TSPropertySignature: checkProperty, - TSTupleType: checkArrayOrTupleType, - TSMappedType: checkMappedType, - TSTypeReference: checkTypeReference, - VariableDeclaration: checkImplicitType, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + ArrowFunctionExpression: checkImplicitType, + PropertyDefinition: checkProperty, + FunctionDeclaration: checkImplicitType, + FunctionExpression: checkImplicitType, + TSArrayType: checkArrayOrTupleType, + TSIndexSignature: checkProperty, + TSParameterProperty: checkProperty, + TSPropertySignature: checkProperty, + TSTupleType: checkArrayOrTupleType, + TSMappedType: checkMappedType, + TSTypeReference: checkTypeReference, + VariableDeclaration: checkImplicitType, +}); diff --git a/src/rules/prefer-tacit.ts b/src/rules/prefer-tacit.ts index 0aa215c74..20445a9fe 100644 --- a/src/rules/prefer-tacit.ts +++ b/src/rules/prefer-tacit.ts @@ -1,24 +1,23 @@ import { TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { - type ReportDescriptor, - type ReportSuggestionArray, - type RuleContext, - type RuleFix, - type RuleFixer, +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { + ReportDescriptor, + ReportSuggestionArray, + RuleContext, + RuleFix, + RuleFixer, } from "@typescript-eslint/utils/ts-eslint"; -import * as semver from "semver"; -import { type Type } from "typescript"; +import type { Type } from "typescript"; -import ts from "#/conditional-imports/typescript"; import { ruleNameScope } from "#/utils/misc"; -import { type ESFunction } from "#/utils/node-types"; +import type { ESFunction } from "#/utils/node-types"; import { + type NamedCreateRuleCustomMeta, + type Rule, + type RuleResult, createRule, getTypeOfNode, getTypeOfTSNode, - type NamedCreateRuleCustomMeta, - type RuleResult, } from "#/utils/rule"; import { isNested } from "#/utils/tree"; import { @@ -37,7 +36,7 @@ export const name = "prefer-tacit"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -82,7 +81,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "Stylistic", @@ -96,15 +95,6 @@ const meta: NamedCreateRuleCustomMeta = { schema, }; -/** - * Is the version of TypeScript being used 4.7 or newer? - */ -const isTS4dot7 = - ts !== undefined && - semver.satisfies(ts.version, `>= 4.7.0 || >= 4.7.1-rc || >= 4.7.0-beta`, { - includePrerelease: true, - }); - /** * From the callee's type, does it follow that the caller violates this rule. */ @@ -141,15 +131,13 @@ function fixFunctionCallToReference( ): RuleFix[] | null { // Fix to Instantiation Expression. if ( - caller.typeParameters !== undefined && - caller.typeParameters.params.length > 0 + caller.typeArguments !== undefined && + caller.typeArguments.params.length > 0 ) { - return isTS4dot7 - ? [ - fixer.removeRange([node.range[0], caller.callee.range[0]]), - fixer.removeRange([caller.typeParameters.range[1], node.range[1]]), - ] - : null; + return [ + fixer.removeRange([node.range[0], caller.callee.range[0]]), + fixer.removeRange([caller.typeArguments.range[1], node.range[1]]), + ]; } return [ @@ -312,13 +300,11 @@ function checkFunction( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - FunctionDeclaration: checkFunction, - FunctionExpression: checkFunction, - ArrowFunctionExpression: checkFunction, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction, + ArrowFunctionExpression: checkFunction, +}); diff --git a/src/rules/readonly-type.ts b/src/rules/readonly-type.ts index 3989a91dc..7c7fd2480 100644 --- a/src/rules/readonly-type.ts +++ b/src/rules/readonly-type.ts @@ -1,15 +1,16 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { type JSONSchema4 } from "@typescript-eslint/utils/json-schema"; -import { - type ReportDescriptor, - type RuleContext, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { JSONSchema4 } from "@typescript-eslint/utils/json-schema"; +import type { + ReportDescriptor, + RuleContext, } from "@typescript-eslint/utils/ts-eslint"; import { ruleNameScope } from "#/utils/misc"; import { - createRule, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, } from "#/utils/rule"; import { getReadonly } from "#/utils/tree"; import { @@ -29,7 +30,7 @@ export const name = "readonly-type"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * The options this rule can take. @@ -64,7 +65,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "Stylistic", @@ -136,9 +137,7 @@ function checkTypeLiteral( const text = sourceCode.getText(readonlyWrapper); const wrapperStartPattern = /^Readonly\s*$/gu; - - // eslint-disable-next-line functional/no-expression-statements -- Sets `wrapperStartPattern.lastIndex`. + const wrapperEndPattern = /\s*>$/u; wrapperStartPattern.exec(text); const end = wrapperEndPattern.exec(text); @@ -219,11 +218,9 @@ function checkTypeLiteral( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - TSTypeLiteral: checkTypeLiteral, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + TSTypeLiteral: checkTypeLiteral, +}); diff --git a/src/rules/type-declaration-immutability.ts b/src/rules/type-declaration-immutability.ts index e2b24f3fa..239f4e08d 100644 --- a/src/rules/type-declaration-immutability.ts +++ b/src/rules/type-declaration-immutability.ts @@ -1,24 +1,25 @@ -import { type TSESTree } from "@typescript-eslint/utils"; -import { - type JSONSchema4, - type JSONSchema4ObjectSchema, +import type { TSESTree } from "@typescript-eslint/utils"; +import type { + JSONSchema4, + JSONSchema4ObjectSchema, } from "@typescript-eslint/utils/json-schema"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { deepmerge } from "deepmerge-ts"; import { Immutability } from "is-immutable-type"; import { + type IgnoreIdentifierPatternOption, ignoreIdentifierPatternOptionSchema, shouldIgnorePattern, - type IgnoreIdentifierPatternOption, } from "#/options"; import { getNodeIdentifierTexts, ruleNameScope } from "#/utils/misc"; -import { type ESTypeDeclaration } from "#/utils/node-types"; +import type { ESTypeDeclaration } from "#/utils/node-types"; import { - createRule, - getTypeImmutabilityOfNode, type NamedCreateRuleCustomMeta, + type Rule, type RuleResult, + createRule, + getTypeImmutabilityOfNode, } from "#/utils/rule"; import { isTSInterfaceDeclaration } from "#/utils/type-guards"; @@ -30,7 +31,7 @@ export const name = "type-declaration-immutability"; /** * The full name of this rule. */ -export const fullName = `${ruleNameScope}/${name}`; +export const fullName: `${typeof ruleNameScope}/${typeof name}` = `${ruleNameScope}/${name}`; /** * How the actual immutability should be compared to the given immutability. @@ -205,7 +206,7 @@ const errorMessages = { /** * The meta data for this rule. */ -const meta: NamedCreateRuleCustomMeta = { +const meta: NamedCreateRuleCustomMeta = { type: "suggestion", docs: { category: "No Mutations", @@ -265,7 +266,7 @@ function getRules(options: Readonly): ImmutabilityRule[] { ? false : (Array.isArray(rule.fixer) ? rule.fixer : [rule.fixer]).map((r) => ({ ...r, - pattern: new RegExp(r.pattern, "us"), + pattern: new RegExp(r.pattern, "su"), })); const suggestions = @@ -273,7 +274,7 @@ function getRules(options: Readonly): ImmutabilityRule[] { ? false : rule.suggestions.map((r) => ({ ...r, - pattern: new RegExp(r.pattern, "us"), + pattern: new RegExp(r.pattern, "su"), })); return { @@ -318,7 +319,7 @@ function getRuleToApply( function getConfiguredFixer( node: T, context: Readonly>, - configs: FixerConfig[], + configs: ReadonlyArray, ): NonNullable | null { const text = context.sourceCode.getText(node); const config = configs.find((c) => c.pattern.test(text)); @@ -335,7 +336,7 @@ function getConfiguredFixer( function getConfiguredSuggestions( node: T, context: Readonly>, - configs: FixerConfig[], + configs: ReadonlyArray, messageId: keyof typeof errorMessages, ): NonNullable | null { const text = context.sourceCode.getText(node); @@ -353,7 +354,10 @@ function getConfiguredSuggestions( /** * Compare the actual immutability to the expected immutability. */ -function compareImmutability(rule: ImmutabilityRule, actual: Immutability) { +function compareImmutability( + rule: Readonly, + actual: Immutability, +) { switch (rule.comparator) { case RuleEnforcementComparator.Less: { return actual < rule.immutability; @@ -379,7 +383,7 @@ function compareImmutability(rule: ImmutabilityRule, actual: Immutability) { function getResults( node: ESTypeDeclaration, context: Readonly>, - rule: ImmutabilityRule, + rule: Readonly, immutability: Immutability, ): RuleResult { const valid = compareImmutability(rule, immutability); @@ -471,12 +475,10 @@ function checkTypeDeclaration( } // Create the rule. -export const rule = createRule( - name, - meta, - defaultOptions, - { - TSTypeAliasDeclaration: checkTypeDeclaration, - TSInterfaceDeclaration: checkTypeDeclaration, - }, -); +export const rule: Rule = createRule< + keyof typeof errorMessages, + Options +>(name, meta, defaultOptions, { + TSTypeAliasDeclaration: checkTypeDeclaration, + TSInterfaceDeclaration: checkTypeDeclaration, +}); diff --git a/src/settings/immutability.ts b/src/settings/immutability.ts index 7bf9de125..2338f2f42 100644 --- a/src/settings/immutability.ts +++ b/src/settings/immutability.ts @@ -1,9 +1,9 @@ -import { type SharedConfigurationSettings } from "@typescript-eslint/utils"; +import type { SharedConfigurationSettings } from "@typescript-eslint/utils"; import { Immutability, - getDefaultOverrides as getDefaultImmutabilityOverrides, type ImmutabilityOverrides, type TypeSpecifier, + getDefaultOverrides as getDefaultImmutabilityOverrides, } from "is-immutable-type"; declare module "@typescript-eslint/utils" { @@ -13,7 +13,7 @@ declare module "@typescript-eslint/utils" { from?: Immutability | keyof typeof Immutability; }; - // eslint-disable-next-line @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-shadow + // eslint-disable-next-line ts/consistent-type-definitions, ts/no-shadow interface SharedConfigurationSettings { immutability?: { overrides?: @@ -39,14 +39,13 @@ const cachedSettings = new WeakMap< */ export function getImmutabilityOverrides({ immutability, -}: SharedConfigurationSettings): ImmutabilityOverrides | undefined { +}: Readonly): ImmutabilityOverrides | undefined { if (immutability === undefined) { return undefined; } if (!cachedSettings.has(immutability)) { const overrides = loadImmutabilityOverrides(immutability); - // eslint-disable-next-line functional/no-expression-statements cachedSettings.set(immutability, overrides); return overrides; } @@ -67,7 +66,7 @@ function loadImmutabilityOverrides( const raw = Array.isArray(overridesSetting) ? overridesSetting - : overridesSetting.values ?? []; + : (overridesSetting.values ?? []); const upgraded = raw.map((rawValue) => { const { type, to, from, ...rest } = rawValue; @@ -82,9 +81,7 @@ function loadImmutabilityOverrides( : from, } as ImmutabilityOverrides[number]; - /* c8 ignore start */ if (value.type === undefined) { - // eslint-disable-next-line functional/no-throw-statements throw new Error( `Override is missing required "type" property. Value: "${JSON.stringify( rawValue, @@ -92,7 +89,6 @@ function loadImmutabilityOverrides( ); } if (value.to === undefined) { - // eslint-disable-next-line functional/no-throw-statements throw new Error( `Override is missing required "to" property. Value: "${JSON.stringify( rawValue, @@ -101,14 +97,12 @@ function loadImmutabilityOverrides( } const restKeys = Object.keys(rest); if (restKeys.length > 0) { - // eslint-disable-next-line functional/no-throw-statements throw new Error( `Override is contains unknown property(s) "${restKeys.join( ", ", )}". Value: "${JSON.stringify(rawValue)}"`, ); } - /* c8 ignore stop */ return value; }); diff --git a/src/utils/conditional-imports/.eslintrc.json b/src/utils/conditional-imports/.eslintrc.json deleted file mode 100644 index 813283012..000000000 --- a/src/utils/conditional-imports/.eslintrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "rules": { - "@typescript-eslint/no-var-requires": "off", - "functional/functional-parameters": "off", - "functional/no-try-statements": "off", - "import/no-extraneous-dependencies": [ - "error", - { - "peerDependencies": true - } - ], - "unicorn/prefer-module": "off" - } -} diff --git a/src/utils/conditional-imports/cjs/ts-api-utils.ts b/src/utils/conditional-imports/cjs/ts-api-utils.ts deleted file mode 100644 index 9225c88bd..000000000 --- a/src/utils/conditional-imports/cjs/ts-api-utils.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type tsApiUtils from "ts-api-utils"; - -import ts from "#/conditional-imports/typescript"; - -export default (() => { - if (ts !== undefined) { - return require("ts-api-utils") as typeof tsApiUtils; - } - return undefined; -})(); diff --git a/src/utils/conditional-imports/cjs/typescript.ts b/src/utils/conditional-imports/cjs/typescript.ts deleted file mode 100644 index afcfe2905..000000000 --- a/src/utils/conditional-imports/cjs/typescript.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type ts from "typescript"; - -export default (() => { - try { - return require("typescript") as typeof ts; - } catch { - return undefined; - } -})(); diff --git a/src/utils/conditional-imports/esm/ts-api-utils.ts b/src/utils/conditional-imports/esm/ts-api-utils.ts deleted file mode 100644 index ba04bcc00..000000000 --- a/src/utils/conditional-imports/esm/ts-api-utils.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type tsApiUtils from "ts-api-utils"; - -import ts from "#/conditional-imports/typescript"; - -export default await ((): Promise => { - if (ts !== undefined) { - return import("ts-api-utils").catch(() => undefined); - } - return Promise.resolve(undefined); -})(); diff --git a/src/utils/conditional-imports/esm/typescript.ts b/src/utils/conditional-imports/esm/typescript.ts deleted file mode 100644 index e6c1a5f3f..000000000 --- a/src/utils/conditional-imports/esm/typescript.ts +++ /dev/null @@ -1,4 +0,0 @@ -// eslint-disable-next-line unicorn/import-style -export default await import("typescript") - .then((module) => module.default) - .catch(() => undefined); diff --git a/src/utils/conditional-imports/ts-api-utils.ts b/src/utils/conditional-imports/ts-api-utils.ts new file mode 100644 index 000000000..83621fae0 --- /dev/null +++ b/src/utils/conditional-imports/ts-api-utils.ts @@ -0,0 +1,18 @@ +import { createRequire } from "node:module"; + +import type tsApiUtils from "ts-api-utils"; + +import typescript from "#/conditional-imports/typescript"; + +const require = createRequire(import.meta.url); + +export default (typescript === undefined + ? undefined + : require("ts-api-utils")) as typeof tsApiUtils | undefined; + +// export default (await (() => { +// if (ts !== undefined) { +// return import("ts-api-utils").catch(() => undefined); +// } +// return Promise.resolve(undefined); +// })()) as typeof tsApiUtils | undefined; diff --git a/src/utils/conditional-imports/typescript.ts b/src/utils/conditional-imports/typescript.ts new file mode 100644 index 000000000..2bda12684 --- /dev/null +++ b/src/utils/conditional-imports/typescript.ts @@ -0,0 +1,11 @@ +import { createRequire } from "node:module"; + +import type typescript from "typescript"; + +const require = createRequire(import.meta.url); + +export default require("typescript") as typeof typescript | undefined; + +// export default (await import("typescript") +// .then((r) => r.default) +// .catch(() => undefined)) as typeof typescript | undefined; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 6af1f8d59..df2953410 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,2 +1,2 @@ -// eslint-disable-next-line @typescript-eslint/naming-convention -- This is a special var. +// eslint-disable-next-line ts/naming-convention -- This is a special var. export const __VERSION__ = "0.0.0-development"; diff --git a/src/utils/misc.ts b/src/utils/misc.ts index 068c98022..1524af164 100644 --- a/src/utils/misc.ts +++ b/src/utils/misc.ts @@ -1,7 +1,7 @@ import { AST_NODE_TYPES, type TSESTree } from "@typescript-eslint/utils"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; -import { type BaseOptions } from "#/utils/rule"; +import type { BaseOptions } from "#/utils/rule"; import { getKeyOfValueInObjectExpression } from "#/utils/tree"; import { hasID, @@ -55,7 +55,6 @@ function getNodeIdentifierText( let m_identifierText: string | undefined | null = null; - /* eslint-disable functional/no-conditional-statements, functional/no-expression-statements */ if (isIdentifier(node) || isPrivateIdentifier(node)) { m_identifierText = node.name; } else if (hasID(node) && isDefined(node.id)) { @@ -76,7 +75,7 @@ function getNodeIdentifierText( } else if (isTSTypeAnnotation(node)) { m_identifierText = context.sourceCode .getText(node.typeAnnotation as TSESTree.Node) - .replaceAll(/\s+/gmu, ""); + .replaceAll(/\s+/gu, ""); } else if ( isTSAsExpression(node) || isTSNonNullExpression(node) || @@ -84,7 +83,6 @@ function getNodeIdentifierText( ) { m_identifierText = getNodeIdentifierText(node.expression, context); } - /* eslint-enable functional/no-conditional-statements, functional/no-expression-statements */ if (m_identifierText !== null) { return m_identifierText; diff --git a/src/utils/node-types.ts b/src/utils/node-types.ts index d5cbbb582..51cbf4eba 100644 --- a/src/utils/node-types.ts +++ b/src/utils/node-types.ts @@ -1,4 +1,4 @@ -import { type TSESTree } from "@typescript-eslint/utils"; +import type { TSESTree } from "@typescript-eslint/utils"; export type ESFunction = | TSESTree.ArrowFunctionExpression diff --git a/src/utils/rule.ts b/src/utils/rule.ts index cb9910e6a..9cefcfe91 100644 --- a/src/utils/rule.ts +++ b/src/utils/rule.ts @@ -1,48 +1,64 @@ -import { type TSESTree } from "@typescript-eslint/utils"; +import type { TSESTree } from "@typescript-eslint/utils"; import { + type NamedCreateRuleMeta, RuleCreator, getParserServices, - type NamedCreateRuleMeta, } from "@typescript-eslint/utils/eslint-utils"; -import { - type ReportDescriptor, - type RuleContext, - type RuleListener, +import type { + ReportDescriptor, + RuleContext, + RuleListener, + RuleModule, } from "@typescript-eslint/utils/ts-eslint"; import { Immutability, - getTypeImmutability, type ImmutabilityOverrides, + getTypeImmutability, } from "is-immutable-type"; -import { type Node as TSNode, type Type, type TypeNode } from "typescript"; +import { isIntrinsicErrorType } from "ts-api-utils"; +import type { Node as TSNode, Type, TypeNode } from "typescript"; -import ts from "#/conditional-imports/typescript"; +import typescript from "#/conditional-imports/typescript"; import { getImmutabilityOverrides } from "#/settings"; import { __VERSION__ } from "#/utils/constants"; -import { type ESFunction } from "#/utils/node-types"; +import type { ESFunction } from "#/utils/node-types"; + +type Docs = { + /** + * Used for creating category configs and splitting the README rules list into sub-lists. + */ + category: + | "Currying" + | "No Exceptions" + | "No Mutations" + | "No Other Paradigms" + | "No Statements" + | "Stylistic"; + + recommended: "recommended" | "strict" | false; + recommendedSeverity: "error" | "warn"; + + requiresTypeChecking: boolean; + + url?: never; +}; /** * Any custom rule meta properties. */ -export type NamedCreateRuleCustomMeta< - T extends string, - Options extends BaseOptions, -> = Omit, "docs"> & { - docs: { - /** - * Used for creating category configs and splitting the README rules list into sub-lists. - */ - category: - | "Currying" - | "No Exceptions" - | "No Mutations" - | "No Other Paradigms" - | "No Statements" - | "Stylistic"; - - recommended: "recommended" | "strict" | false; - recommendedSeverity: "error" | "warn"; - } & Omit["docs"], "recommended">; +export type NamedCreateRuleCustomMeta = NamedCreateRuleMeta< + T, + Docs +>; + +/** + * The definition of a rule. + */ +export type Rule< + MessageIds extends string, + Options extends ReadonlyArray, +> = RuleModule & { + meta: NamedCreateRuleCustomMeta; }; /** @@ -50,17 +66,6 @@ export type NamedCreateRuleCustomMeta< */ export type BaseOptions = ReadonlyArray; -export type RuleDefinition< - MessageIds extends string, - Options extends BaseOptions, -> = { - readonly defaultOptions: Options; - readonly meta: NamedCreateRuleCustomMeta; - readonly create: ( - context: Readonly>, - ) => RuleListener; -}; - /** * The result all rules return. */ @@ -87,9 +92,6 @@ export type RuleFunctionsMap< ) => RuleResult; }>; -// This function can't be functional as it needs to interact with 3rd-party -// libraries that aren't functional. -/* eslint-disable functional/no-return-void, functional/no-expression-statements */ /** * Create a function that processes common options and then runs the given * check. @@ -117,7 +119,6 @@ function checkNode< } }; } -/* eslint-enable functional/no-return-void, functional/no-expression-statements */ /** * Create a rule. @@ -127,10 +128,10 @@ export function createRule< Options extends BaseOptions, >( name: string, - meta: NamedCreateRuleCustomMeta, + meta: Readonly>, defaultOptions: Options, ruleFunctionsMap: RuleFunctionsMap, -) { +): Rule { return createRuleUsingFunction( name, meta, @@ -147,28 +148,27 @@ export function createRuleUsingFunction< Options extends BaseOptions, >( name: string, - meta: NamedCreateRuleCustomMeta, + meta: Readonly>, defaultOptions: Options, createFunction: ( context: Readonly>, options: Readonly, ) => RuleFunctionsMap, -) { - const ruleCreator = RuleCreator( +): Rule { + const ruleCreator = RuleCreator( (ruleName) => `https://github.com/eslint-functional/eslint-plugin-functional/blob/v${__VERSION__}/docs/rules/${ruleName}.md`, ); return ruleCreator({ name, - meta: meta as any, + meta, defaultOptions, create: (context, options) => { const ruleFunctionsMap = createFunction(context, options); return Object.fromEntries( Object.entries(ruleFunctionsMap).map(([nodeSelector, ruleFunction]) => [ nodeSelector, - // prettier-ignore checkNode< MessageIds, Readonly>, @@ -178,7 +178,7 @@ export function createRuleUsingFunction< ]), ); }, - }) as unknown as RuleDefinition; + }) as Rule; } /** @@ -213,8 +213,8 @@ export function getTypeOfTSNode< */ export function getReturnTypesOfFunction< Context extends RuleContext, ->(node: TSESTree.Node, context: Context) { - if (ts === undefined) { +>(node: TSESTree.Node, context: Context): Type[] | null { + if (typescript === undefined) { return null; } @@ -222,7 +222,10 @@ export function getReturnTypesOfFunction< const checker = parserServices.program.getTypeChecker(); const type = getTypeOfNode(node, context); - const signatures = checker.getSignaturesOfType(type, ts.SignatureKind.Call); + const signatures = checker.getSignaturesOfType( + type, + typescript.SignatureKind.Call, + ); return signatures.map((signature) => checker.getReturnTypeOfSignature(signature), ); @@ -233,8 +236,8 @@ export function getReturnTypesOfFunction< */ export function isImplementationOfOverload< Context extends RuleContext, ->(func: ESFunction, context: Context) { - if (ts === undefined) { +>(func: ESFunction, context: Context): boolean { + if (typescript === undefined) { return false; } @@ -256,7 +259,7 @@ export function getTypeImmutabilityOfNode< maxImmutability?: Immutability, explicitOverrides?: ImmutabilityOverrides, ): Immutability { - if (ts === undefined) { + if (typescript === undefined) { return Immutability.Unknown; } @@ -264,14 +267,19 @@ export function getTypeImmutabilityOfNode< const overrides = explicitOverrides ?? getImmutabilityOverrides(context.settings); const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); - const typedNode = ts.isIdentifier(tsNode) ? tsNode.parent : tsNode; - const typeLike = - (typedNode as { type?: TypeNode }).type ?? - getTypeOfNode(parserServices.tsNodeToESTreeNodeMap.get(typedNode), context); + let m_typeLike: Type | TypeNode | undefined = (tsNode as { type?: TypeNode }) + .type; + + if (m_typeLike === undefined) { + m_typeLike = getTypeOfTSNode(tsNode, context); + if (isIntrinsicErrorType(m_typeLike)) { + return Immutability.Unknown; + } + } return getTypeImmutability( parserServices.program, - typeLike, + m_typeLike, overrides, // Don't use the global cache in testing environments as it may cause errors when switching between different config options. process.env["NODE_ENV"] !== "test", diff --git a/src/utils/tree.ts b/src/utils/tree.ts index d15e31665..0dc89f334 100644 --- a/src/utils/tree.ts +++ b/src/utils/tree.ts @@ -1,10 +1,12 @@ -import { type TSESTree } from "@typescript-eslint/utils"; +import assert from "node:assert/strict"; + +import type { TSESTree } from "@typescript-eslint/utils"; import { getParserServices } from "@typescript-eslint/utils/eslint-utils"; -import { type RuleContext } from "@typescript-eslint/utils/ts-eslint"; +import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import typescript from "#/conditional-imports/typescript"; -import { type BaseOptions } from "./rule"; +import type { BaseOptions } from "./rule"; import { isBlockStatement, isCallExpression, @@ -66,7 +68,13 @@ export function isInFunctionBody( * * Will return null if not in a function. */ -export function getEnclosingFunction(node: TSESTree.Node) { +export function getEnclosingFunction( + node: TSESTree.Node, +): + | TSESTree.ArrowFunctionExpression + | TSESTree.FunctionDeclaration + | TSESTree.FunctionExpression + | null { return getAncestorOfType( ( n, @@ -84,7 +92,9 @@ export function getEnclosingFunction(node: TSESTree.Node) { * * Will return null if not in a function. */ -export function getEnclosingTryStatement(node: TSESTree.Node) { +export function getEnclosingTryStatement( + node: TSESTree.Node, +): TSESTree.TryStatement | null { return getAncestorOfType( (n, c): n is TSESTree.TryStatement => isTryStatement(n) && n.block === c, node, @@ -141,7 +151,7 @@ export function getReadonly( return expressionOrTypeName !== undefined && isIdentifier(expressionOrTypeName) && expressionOrTypeName.name === "Readonly" - ? typeRef ?? intHeritage + ? (typeRef ?? intHeritage) : null; } @@ -230,7 +240,6 @@ export function isArgument(node: TSESTree.Node): boolean { return ( node.parent !== undefined && isCallExpression(node.parent) && - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument node.parent.arguments.includes(node as any) ); } @@ -242,7 +251,6 @@ export function isParameter(node: TSESTree.Node): boolean { return ( node.parent !== undefined && isFunctionLike(node.parent) && - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument node.parent.params.includes(node as any) ); } @@ -312,6 +320,8 @@ export function isDefinedByMutableVariable< context: Context, treatParametersAsMutable: (node: TSESTree.Node) => boolean, ): boolean { + assert(typescript !== undefined); + const services = getParserServices(context); const symbol = services.getSymbolAtLocation(node); const variableDeclaration = symbol?.valueDeclaration; @@ -327,12 +337,13 @@ export function isDefinedByMutableVariable< ) { return treatParametersAsMutable(variableDeclarationNode); } - if (!typescript!.isVariableDeclaration(variableDeclaration)) { + if (!typescript.isVariableDeclaration(variableDeclaration)) { return true; } const variableDeclarator = - context.parserServices?.tsNodeToESTreeNodeMap.get(variableDeclaration); + services.tsNodeToESTreeNodeMap.get(variableDeclaration); + if ( variableDeclarator?.parent === undefined || !isVariableDeclaration(variableDeclarator.parent) @@ -346,7 +357,9 @@ export function isDefinedByMutableVariable< /** * Get the root identifier of an expression. */ -export function findRootIdentifier(node: TSESTree.Expression) { +export function findRootIdentifier( + node: TSESTree.Expression, +): TSESTree.Identifier | undefined { if (isIdentifier(node)) { return node; } diff --git a/src/utils/type-guards.ts b/src/utils/type-guards.ts index 96c3bd145..b2c71e81d 100644 --- a/src/utils/type-guards.ts +++ b/src/utils/type-guards.ts @@ -3,9 +3,9 @@ */ import { AST_NODE_TYPES, type TSESTree } from "@typescript-eslint/utils"; -import { type Type, type UnionType } from "typescript"; +import type { Type, UnionType } from "typescript"; -import ts from "#/conditional-imports/typescript"; +import typescript from "#/conditional-imports/typescript"; /* * TS Types. @@ -426,7 +426,7 @@ export function isDefined(value: T | null | undefined): value is T { */ export function isUnionType(type: Type): type is UnionType { - return ts !== undefined && type.flags === ts.TypeFlags.Union; + return typescript !== undefined && type.flags === typescript.TypeFlags.Union; } export function isArrayType(type: Type | null): boolean { diff --git a/tests/common/ignore-options.test.ts b/tests/common/ignore-options.test.ts index 7a7e9101a..f0d2564a3 100644 --- a/tests/common/ignore-options.test.ts +++ b/tests/common/ignore-options.test.ts @@ -1,14 +1,14 @@ -import { - type InvalidTestCase, - type ValidTestCase, +import type { + InvalidTestCase, + ValidTestCase, } from "@typescript-eslint/rule-tester"; import dedent from "dedent"; import { - shouldIgnorePattern, type IgnoreAccessorPatternOption, type IgnoreCodePatternOption, type IgnoreIdentifierPatternOption, + shouldIgnorePattern, } from "#/options"; import { getRuleTester } from "#/tests/helpers/RuleTester"; import { configs, filename } from "#/tests/helpers/configs"; @@ -21,21 +21,19 @@ function createDummyRuleFor(nodeType: string) { return createDummyRule((context) => { const [allowed, options] = context.options; return { - [nodeType]: (node) => { - return { - context, - descriptors: - shouldIgnorePattern( - node, - context, - options.ignoreIdentifierPattern, - options.ignoreAccessorPattern, - options.ignoreCodePattern, - ) === allowed - ? [] - : [{ node, messageId: "generic" }], - }; - }, + [nodeType]: (node) => ({ + context, + descriptors: + shouldIgnorePattern( + node, + context, + options.ignoreIdentifierPattern, + options.ignoreAccessorPattern, + options.ignoreCodePattern, + ) === allowed + ? [] + : [{ node, messageId: "generic" }], + }), }; }); } diff --git a/tests/configs.test.ts b/tests/configs.test.ts index 3c6be3bab..8a19874ec 100644 --- a/tests/configs.test.ts +++ b/tests/configs.test.ts @@ -13,12 +13,12 @@ import strict from "#/configs/strict"; import stylistic from "#/configs/stylistic"; import { rules } from "#/rules"; -describe("Configs", () => { +describe("configs", () => { const allRules = Object.values(rules); - const allConfigRules = Object.keys(all ?? {}); - const offConfigRules = Object.entries(off ?? {}); + const allConfigRules = Object.keys(all); + const offConfigRules = Object.entries(off); const allNonDeprecatedRules = allRules.filter( - (rule) => rule.meta === undefined || rule.meta.deprecated !== true, + (rule) => rule.meta.deprecated !== true, ); it('"All" - should have the right number of rules', () => { @@ -71,10 +71,10 @@ describe("Configs", () => { describe.each(configs)( '"%s" Config rules are in the "All" Config', (name, config) => { - const ruleNames = Object.keys(config ?? {}); + const ruleNames = Object.keys(config); it.each(ruleNames)(`%s`, (rule) => { - expect(all?.[rule]).toBeDefined(); + expect(all[rule]).toBeDefined(); }); }, ); diff --git a/tests/helpers/RuleTester.ts b/tests/helpers/RuleTester.ts index 5c14fc617..79c6fcbee 100644 --- a/tests/helpers/RuleTester.ts +++ b/tests/helpers/RuleTester.ts @@ -4,19 +4,19 @@ import { } from "@typescript-eslint/rule-tester"; import { afterAll, beforeAll, describe, it } from "vitest"; -/* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable ts/naming-convention */ class VitestRuleTester extends RuleTester { - public static afterAll = afterAll; - public static beforeAll = beforeAll; - public static it = it; - public static itOnly = it.only; - public static itSkip = it.skip; - public static describe = describe; - public static describeOnly = describe.only; - public static describeSkip = describe.skip; + public static afterAll: typeof afterAll = afterAll; + public static beforeAll: typeof beforeAll = beforeAll; + public static it: typeof it = it; + public static itOnly: typeof it.only = it.only; + public static itSkip: typeof it.skip = it.skip; + public static describe: typeof describe = describe; + public static describeOnly: typeof describe.only = describe.only; + public static describeSkip: typeof describe.skip = describe.skip; } -/* eslint-enable @typescript-eslint/naming-convention */ +/* eslint-enable ts/naming-convention */ -export function getRuleTester(config: RuleTesterConfig) { +export function getRuleTester(config: RuleTesterConfig): VitestRuleTester { return new VitestRuleTester(config); } diff --git a/tests/helpers/configs.ts b/tests/helpers/configs.ts index 6c91b4b6d..2488a8871 100644 --- a/tests/helpers/configs.ts +++ b/tests/helpers/configs.ts @@ -1,148 +1,170 @@ import path from "node:path"; -import { type RuleTesterConfig } from "@typescript-eslint/rule-tester"; +// @ts-expect-error - Untyped. +import babelParser from "@babel/eslint-parser"; +import typescriptParser from "@typescript-eslint/parser"; +import type { RuleTesterConfig } from "@typescript-eslint/rule-tester"; +import espreeParser from "espree"; const fixturePath = path.join(process.cwd(), "tests/fixture"); -export const filename = path.join(fixturePath, "file.ts"); - -/* eslint-disable unicorn/prefer-module */ -const typescriptParser = require.resolve("@typescript-eslint/parser"); -const babelParser = require.resolve("@babel/eslint-parser"); -const espreeParser = require.resolve("espree"); -/* eslint-enable unicorn/prefer-module */ +export const filename: string = path.join(fixturePath, "file.ts"); export const configs = { typescript: { - parser: typescriptParser, - parserOptions: { - sourceType: "module", - tsconfigRootDir: fixturePath, - project: "tsconfig.json", + languageOptions: { + parser: typescriptParser, + parserOptions: { + sourceType: "module", + tsconfigRootDir: fixturePath, + projectService: true, + }, }, dependencyConstraints: { - typescript: "4.3.5", + typescript: "4.7.4", }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, esLatest: { - parser: babelParser, - parserOptions: { - ecmaVersion: "latest", - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: "latest", + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2022: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2022, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2022, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2021: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2021, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2021, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2020: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2020, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2020, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2019: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2019, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2019, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2018: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2018, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2018, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2017: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2017, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2017, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2016: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2016, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2016, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es2015: { - parser: babelParser, - parserOptions: { - ecmaVersion: 2015, - requireConfigFile: false, - babelOptions: { - babelrc: false, - configFile: false, + languageOptions: { + parser: babelParser, + parserOptions: { + ecmaVersion: 2015, + requireConfigFile: false, + babelOptions: { + babelrc: false, + configFile: false, + }, }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es5: { - parser: espreeParser, - parserOptions: { - ecmaVersion: 5, + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaVersion: 5, + }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, es3: { - parser: espreeParser, - parserOptions: { - ecmaVersion: 3, + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaVersion: 3, + }, }, - } satisfies RuleTesterConfig, + } satisfies RuleTesterConfig as RuleTesterConfig, }; diff --git a/tests/helpers/testers.ts b/tests/helpers/testers.ts index 10a710f34..3059c950c 100644 --- a/tests/helpers/testers.ts +++ b/tests/helpers/testers.ts @@ -1,12 +1,12 @@ -import { type RuleDefinition } from "#/utils/rule"; +import type { Rule } from "#/utils/rule"; import { getRuleTester } from "./RuleTester"; import { configs } from "./configs"; import { - processInvalidTestCase, - processValidTestCase, type InvalidTestCaseSet, type ValidTestCaseSet, + processInvalidTestCase, + processValidTestCase, } from "./util"; type TestFunction< @@ -20,7 +20,7 @@ type TestFunction< export function testRule< TMessageIds extends string, TOptions extends Readonly, ->(ruleName: string, rule: RuleDefinition) { +>(ruleName: string, rule: Rule) { return Object.fromEntries( [...Object.entries(configs)].map( ([configName, config]): [ diff --git a/tests/helpers/util.ts b/tests/helpers/util.ts index 97c8dd734..6248a611d 100644 --- a/tests/helpers/util.ts +++ b/tests/helpers/util.ts @@ -1,19 +1,18 @@ -import { - type InvalidTestCase, - type RunTests, - type ValidTestCase, +import type { + InvalidTestCase, + RunTests, + ValidTestCase, } from "@typescript-eslint/rule-tester"; -import { - type SharedConfigurationSettings, - type TSESLint, +import type { + SharedConfigurationSettings, + TSESLint, } from "@typescript-eslint/utils"; -import { type NamedCreateRuleMeta } from "@typescript-eslint/utils/eslint-utils"; +import type { + NamedCreateRuleMeta, + RuleModule, +} from "@typescript-eslint/utils/eslint-utils"; -import { - createRuleUsingFunction, - type RuleDefinition, - type RuleFunctionsMap, -} from "#/utils/rule"; +import { type RuleFunctionsMap, createRuleUsingFunction } from "#/utils/rule"; import { filename as dummyFilename } from "./configs"; @@ -21,13 +20,13 @@ type OptionsSets = { /** * The set of options this test case should pass for. */ - optionsSet: any[]; + optionsSet: ReadonlyArray; /** * The set of settings this test case should pass for. */ - settingsSet?: SharedConfigurationSettings[]; + settingsSet?: ReadonlyArray>; }; export type ValidTestCaseSet> = Omit< @@ -55,12 +54,11 @@ export function processInvalidTestCase< testCase.optionsSet.flatMap((options) => { const { optionsSet, settingsSet, ...eslintTestCase } = testCase; - return (settingsSet ?? [undefined]).map( + return (settingsSet ?? [{}]).map( (settings): InvalidTestCase => ({ filename: dummyFilename, ...eslintTestCase, options, - // @ts-expect-error -- upstream typing. settings, }), ); @@ -87,8 +85,8 @@ export function createDummyRule( create: ( context: Readonly>, ) => RuleFunctionsMap, -): RuleDefinition { - const meta: NamedCreateRuleMeta<"generic", []> = { +): RuleModule { + const meta: NamedCreateRuleMeta<"generic", {}> = { type: "suggestion", docs: { description: "rule used in testing", @@ -142,8 +140,10 @@ export function addFilename< }; } -export type MessagesOf> = - T extends RuleDefinition ? Messages : never; +export type MessagesOf>> = + T extends RuleModule> + ? Messages + : never; -export type OptionsOf> = - T extends RuleDefinition ? Options : never; +export type OptionsOf>> = + T extends RuleModule ? Options : never; diff --git a/tests/index.test.ts b/tests/index.test.ts index beb143c4f..3854a9ad8 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -6,49 +6,21 @@ import { readdirSync } from "node:fs"; import { describe, expect, it } from "vitest"; -import classic from "#/classic"; -import flat from "#/flat"; +import functional from "#"; -describe("Flat", () => { +describe("index", () => { it("should have all the rules", () => { const ruleFiles: string[] = readdirSync("./src/rules").filter( (file) => file !== "index.ts" && file.endsWith(".ts"), ); expect( - Object.hasOwn(flat, "rules"), + Object.hasOwn(functional, "rules"), 'The plugin\'s config object should have a "rules" property.', ); - expect(ruleFiles.length).to.equal(Object.keys(flat.rules ?? {}).length); - }); - - it("should have all the configs", () => { - const configFiles: string[] = readdirSync("./src/configs").filter( - (file) => file !== "index.ts" && file.endsWith(".ts"), - ); - - expect( - Object.hasOwn(flat, "configs"), - 'The plugin\'s config object should have a "configs" property.', - ); - expect(configFiles.length).to.equal( - Object.keys(flat.configs ?? {}).length, - "should have all the configs except deprecated", - ); - }); -}); - -describe("Classic", () => { - it("should have all the rules", () => { - const ruleFiles: string[] = readdirSync("./src/rules").filter( - (file) => file !== "index.ts" && file.endsWith(".ts"), - ); - - expect( - Object.hasOwn(classic, "rules"), - 'The plugin\'s config object should have a "rules" property.', + expect(ruleFiles.length).to.equal( + Object.keys(functional.rules ?? {}).length, ); - expect(ruleFiles.length).to.equal(Object.keys(classic.rules ?? {}).length); }); it("should have all the configs", () => { @@ -57,11 +29,11 @@ describe("Classic", () => { ); expect( - Object.hasOwn(classic, "configs"), + Object.hasOwn(functional, "configs"), 'The plugin\'s config object should have a "configs" property.', ); expect(configFiles.length).to.equal( - Object.keys(classic.configs ?? {}).length, + Object.keys(functional.configs ?? {}).length, "should have all the configs except deprecated", ); }); diff --git a/tests/rules/functional-parameters/es2015/invalid.ts b/tests/rules/functional-parameters/es2015/invalid.ts index 4e7120550..f6e128e52 100644 --- a/tests/rules/functional-parameters/es2015/invalid.ts +++ b/tests/rules/functional-parameters/es2015/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/functional-parameters"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/functional-parameters"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/functional-parameters/es2015/valid.ts b/tests/rules/functional-parameters/es2015/valid.ts index 6279de363..2eae4e056 100644 --- a/tests/rules/functional-parameters/es2015/valid.ts +++ b/tests/rules/functional-parameters/es2015/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/functional-parameters"; -import { type ValidTestCaseSet, type OptionsOf } from "#/tests/helpers/util"; +import type { rule } from "#/rules/functional-parameters"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/functional-parameters/es3/invalid.ts b/tests/rules/functional-parameters/es3/invalid.ts index 4ab29505a..cbbf408d1 100644 --- a/tests/rules/functional-parameters/es3/invalid.ts +++ b/tests/rules/functional-parameters/es3/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/functional-parameters"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/functional-parameters"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/functional-parameters/es3/valid.ts b/tests/rules/functional-parameters/es3/valid.ts index 1ce78b56e..7d364a55b 100644 --- a/tests/rules/functional-parameters/es3/valid.ts +++ b/tests/rules/functional-parameters/es3/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/functional-parameters"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/functional-parameters"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/immutable-data/ts/array/invalid.ts b/tests/rules/immutable-data/ts/array/invalid.ts index 00b42684f..21dbf4982 100644 --- a/tests/rules/immutable-data/ts/array/invalid.ts +++ b/tests/rules/immutable-data/ts/array/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/immutable-data"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/immutable-data"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/immutable-data/ts/array/valid.ts b/tests/rules/immutable-data/ts/array/valid.ts index e6f05b243..fdf816020 100644 --- a/tests/rules/immutable-data/ts/array/valid.ts +++ b/tests/rules/immutable-data/ts/array/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/immutable-data"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/immutable-data"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // Allowed non-array mutation patterns. diff --git a/tests/rules/immutable-data/ts/object/invalid.ts b/tests/rules/immutable-data/ts/object/invalid.ts index e302c07db..439ce704a 100644 --- a/tests/rules/immutable-data/ts/object/invalid.ts +++ b/tests/rules/immutable-data/ts/object/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/immutable-data"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/immutable-data"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/immutable-data/ts/object/valid.ts b/tests/rules/immutable-data/ts/object/valid.ts index 1510c1df2..fca404dae 100644 --- a/tests/rules/immutable-data/ts/object/valid.ts +++ b/tests/rules/immutable-data/ts/object/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/immutable-data"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/immutable-data"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // Allowed non-object mutation patterns. diff --git a/tests/rules/no-class/es2015/invalid.ts b/tests/rules/no-class/es2015/invalid.ts index ea53f88a6..e27d53bbf 100644 --- a/tests/rules/no-class/es2015/invalid.ts +++ b/tests/rules/no-class/es2015/invalid.ts @@ -1,10 +1,10 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; -import { type rule } from "#/rules/no-classes"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-classes"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-class/es2015/valid.ts b/tests/rules/no-class/es2015/valid.ts index 47f69625e..acf740582 100644 --- a/tests/rules/no-class/es2015/valid.ts +++ b/tests/rules/no-class/es2015/valid.ts @@ -1,5 +1,5 @@ -import { type rule } from "#/rules/no-classes"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-classes"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-conditional-statement/ts/invalid.ts b/tests/rules/no-conditional-statement/ts/invalid.ts index c655ed880..613ff5d5d 100644 --- a/tests/rules/no-conditional-statement/ts/invalid.ts +++ b/tests/rules/no-conditional-statement/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-conditional-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-conditional-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-conditional-statement/ts/valid.ts b/tests/rules/no-conditional-statement/ts/valid.ts index 994fd3570..62b80df02 100644 --- a/tests/rules/no-conditional-statement/ts/valid.ts +++ b/tests/rules/no-conditional-statement/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-conditional-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-conditional-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { @@ -100,7 +100,10 @@ const tests: Array>> = [ } } `, - optionsSet: [[{ allowReturningBranches: "ifExhaustive" }]], + optionsSet: [ + [{ allowReturningBranches: true }], + [{ allowReturningBranches: "ifExhaustive" }], + ], }, // Check throws { @@ -222,24 +225,6 @@ const tests: Array>> = [ [{ allowReturningBranches: "ifExhaustive" }], ], }, - // Exhaustive type test. - { - code: dedent` - type T = "a" | "b"; - function foo(i: T) { - switch(i) { - case "a": - return 1; - case "b": - return 2; - } - } - `, - optionsSet: [ - [{ allowReturningBranches: true }], - [{ allowReturningBranches: "ifExhaustive" }], - ], - }, ]; export default tests; diff --git a/tests/rules/no-expression-statement/ts/invalid.ts b/tests/rules/no-expression-statement/ts/invalid.ts index 99584b720..95c9ff138 100644 --- a/tests/rules/no-expression-statement/ts/invalid.ts +++ b/tests/rules/no-expression-statement/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-expression-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-expression-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-expression-statement/ts/valid.ts b/tests/rules/no-expression-statement/ts/valid.ts index 3cbd537a9..440e90b65 100644 --- a/tests/rules/no-expression-statement/ts/valid.ts +++ b/tests/rules/no-expression-statement/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-expression-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-expression-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // Defining variable should still be allowed. diff --git a/tests/rules/no-let/es2015/invalid.ts b/tests/rules/no-let/es2015/invalid.ts index 640930abf..d15adbf00 100644 --- a/tests/rules/no-let/es2015/invalid.ts +++ b/tests/rules/no-let/es2015/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-let"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-let"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-let/es2015/valid.ts b/tests/rules/no-let/es2015/valid.ts index 38b247c96..0de289ab7 100644 --- a/tests/rules/no-let/es2015/valid.ts +++ b/tests/rules/no-let/es2015/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-let"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-let"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-loop-statement/es2015/invalid.ts b/tests/rules/no-loop-statement/es2015/invalid.ts index ccca1a5ed..96857b4ae 100644 --- a/tests/rules/no-loop-statement/es2015/invalid.ts +++ b/tests/rules/no-loop-statement/es2015/invalid.ts @@ -1,10 +1,10 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; -import { type rule } from "#/rules/no-loop-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-loop-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< @@ -46,30 +46,6 @@ const tests: Array< }, ], }, - { - code: `while (true) { console.log("a"); }`, - optionsSet: [[]], - errors: [ - { - messageId: "generic", - type: AST_NODE_TYPES.WhileStatement, - line: 1, - column: 1, - }, - ], - }, - { - code: `do { console.log("a"); } while (true)`, - optionsSet: [[]], - errors: [ - { - messageId: "generic", - type: AST_NODE_TYPES.DoWhileStatement, - line: 1, - column: 1, - }, - ], - }, ]; export default tests; diff --git a/tests/rules/no-loop-statement/es2015/valid.ts b/tests/rules/no-loop-statement/es2015/valid.ts index 779391f74..06a358440 100644 --- a/tests/rules/no-loop-statement/es2015/valid.ts +++ b/tests/rules/no-loop-statement/es2015/valid.ts @@ -1,5 +1,5 @@ -import { type rule } from "#/rules/no-loop-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-loop-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = []; diff --git a/tests/rules/no-loop-statement/es3/invalid.ts b/tests/rules/no-loop-statement/es3/invalid.ts index f5d6eab3b..4bb2c613b 100644 --- a/tests/rules/no-loop-statement/es3/invalid.ts +++ b/tests/rules/no-loop-statement/es3/invalid.ts @@ -1,10 +1,10 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; -import { type rule } from "#/rules/no-loop-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-loop-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-loop-statement/es3/valid.ts b/tests/rules/no-loop-statement/es3/valid.ts index 2b32aa6b3..6de2e9a2d 100644 --- a/tests/rules/no-loop-statement/es3/valid.ts +++ b/tests/rules/no-loop-statement/es3/valid.ts @@ -1,5 +1,5 @@ -import { type rule } from "#/rules/no-loop-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-loop-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-mixed-type/ts/invalid.ts b/tests/rules/no-mixed-type/ts/invalid.ts index 290984e56..0887c38c4 100644 --- a/tests/rules/no-mixed-type/ts/invalid.ts +++ b/tests/rules/no-mixed-type/ts/invalid.ts @@ -1,8 +1,8 @@ -import { type rule } from "#/rules/no-mixed-types"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-mixed-types"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-mixed-type/ts/valid.ts b/tests/rules/no-mixed-type/ts/valid.ts index 5395762f4..05f2ad844 100644 --- a/tests/rules/no-mixed-type/ts/valid.ts +++ b/tests/rules/no-mixed-type/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-mixed-types"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-mixed-types"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // // Only properties should not produce failures. diff --git a/tests/rules/no-promise-reject/es2015/invalid.ts b/tests/rules/no-promise-reject/es2015/invalid.ts index 9ccb1964c..cdd634f21 100644 --- a/tests/rules/no-promise-reject/es2015/invalid.ts +++ b/tests/rules/no-promise-reject/es2015/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-promise-reject"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-promise-reject"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-promise-reject/es2015/valid.ts b/tests/rules/no-promise-reject/es2015/valid.ts index b9d12dc89..79fc7cb5b 100644 --- a/tests/rules/no-promise-reject/es2015/valid.ts +++ b/tests/rules/no-promise-reject/es2015/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-promise-reject"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-promise-reject"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-return-void/ts/invalid.ts b/tests/rules/no-return-void/ts/invalid.ts index 67e980098..41b24a726 100644 --- a/tests/rules/no-return-void/ts/invalid.ts +++ b/tests/rules/no-return-void/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-return-void"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-return-void"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-return-void/ts/valid.ts b/tests/rules/no-return-void/ts/valid.ts index e9985bce3..c850b9ac5 100644 --- a/tests/rules/no-return-void/ts/valid.ts +++ b/tests/rules/no-return-void/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-return-void"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-return-void"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-this-expression/es3/invalid.ts b/tests/rules/no-this-expression/es3/invalid.ts index 980f21f76..677e919b2 100644 --- a/tests/rules/no-this-expression/es3/invalid.ts +++ b/tests/rules/no-this-expression/es3/invalid.ts @@ -1,10 +1,10 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; -import { type rule } from "#/rules/no-this-expressions"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-this-expressions"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-this-expression/es3/valid.ts b/tests/rules/no-this-expression/es3/valid.ts index 80dfd1e8c..11cd921c8 100644 --- a/tests/rules/no-this-expression/es3/valid.ts +++ b/tests/rules/no-this-expression/es3/valid.ts @@ -1,5 +1,5 @@ -import { type rule } from "#/rules/no-this-expressions"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-this-expressions"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-throw-statement/es2016/invalid.ts b/tests/rules/no-throw-statement/es2016/invalid.ts index 99e511d7a..576660b29 100644 --- a/tests/rules/no-throw-statement/es2016/invalid.ts +++ b/tests/rules/no-throw-statement/es2016/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-throw-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-throw-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-throw-statement/es2016/valid.ts b/tests/rules/no-throw-statement/es2016/valid.ts index e3968e883..ddcb675c0 100644 --- a/tests/rules/no-throw-statement/es2016/valid.ts +++ b/tests/rules/no-throw-statement/es2016/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-throw-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-throw-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-throw-statement/es3/invalid.ts b/tests/rules/no-throw-statement/es3/invalid.ts index 1d131a73f..686b2c2d2 100644 --- a/tests/rules/no-throw-statement/es3/invalid.ts +++ b/tests/rules/no-throw-statement/es3/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/no-throw-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-throw-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-throw-statement/es3/valid.ts b/tests/rules/no-throw-statement/es3/valid.ts index 2f2ab2309..0fff4119f 100644 --- a/tests/rules/no-throw-statement/es3/valid.ts +++ b/tests/rules/no-throw-statement/es3/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/no-throw-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-throw-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/no-try-statement/es3/invalid.ts b/tests/rules/no-try-statement/es3/invalid.ts index 1a27be863..e6ba4760b 100644 --- a/tests/rules/no-try-statement/es3/invalid.ts +++ b/tests/rules/no-try-statement/es3/invalid.ts @@ -1,10 +1,10 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; -import { type rule } from "#/rules/no-try-statements"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/no-try-statements"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/no-try-statement/es3/valid.ts b/tests/rules/no-try-statement/es3/valid.ts index ed0b97114..169277608 100644 --- a/tests/rules/no-try-statement/es3/valid.ts +++ b/tests/rules/no-try-statement/es3/valid.ts @@ -1,5 +1,5 @@ -import { type rule } from "#/rules/no-try-statements"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/no-try-statements"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/prefer-immutable-types/ts/parameters/invalid.ts b/tests/rules/prefer-immutable-types/ts/parameters/invalid.ts index 275caeb41..bd9ba9fb5 100644 --- a/tests/rules/prefer-immutable-types/ts/parameters/invalid.ts +++ b/tests/rules/prefer-immutable-types/ts/parameters/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-immutable-types"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/prefer-immutable-types/ts/parameters/valid.ts b/tests/rules/prefer-immutable-types/ts/parameters/valid.ts index 3bf8c0766..9913d1fe6 100644 --- a/tests/rules/prefer-immutable-types/ts/parameters/valid.ts +++ b/tests/rules/prefer-immutable-types/ts/parameters/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-immutable-types"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/prefer-immutable-types/ts/return-types/invalid.ts b/tests/rules/prefer-immutable-types/ts/return-types/invalid.ts index 114710584..f54e23803 100644 --- a/tests/rules/prefer-immutable-types/ts/return-types/invalid.ts +++ b/tests/rules/prefer-immutable-types/ts/return-types/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-immutable-types"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/prefer-immutable-types/ts/return-types/valid.ts b/tests/rules/prefer-immutable-types/ts/return-types/valid.ts index 1d64e9d5e..54f10c772 100644 --- a/tests/rules/prefer-immutable-types/ts/return-types/valid.ts +++ b/tests/rules/prefer-immutable-types/ts/return-types/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-immutable-types"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/prefer-immutable-types/ts/variables/invalid.ts b/tests/rules/prefer-immutable-types/ts/variables/invalid.ts index 44ef78f82..de54ba8bd 100644 --- a/tests/rules/prefer-immutable-types/ts/variables/invalid.ts +++ b/tests/rules/prefer-immutable-types/ts/variables/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-immutable-types"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/prefer-immutable-types/ts/variables/valid.ts b/tests/rules/prefer-immutable-types/ts/variables/valid.ts index 811e58f88..86a2dfb28 100644 --- a/tests/rules/prefer-immutable-types/ts/variables/valid.ts +++ b/tests/rules/prefer-immutable-types/ts/variables/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-immutable-types"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-immutable-types"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/prefer-property-signatures/ts/invalid.ts b/tests/rules/prefer-property-signatures/ts/invalid.ts index 7c5cc46cd..f65f74fb0 100644 --- a/tests/rules/prefer-property-signatures/ts/invalid.ts +++ b/tests/rules/prefer-property-signatures/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-property-signatures"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-property-signatures"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/prefer-property-signatures/ts/valid.ts b/tests/rules/prefer-property-signatures/ts/valid.ts index c25235b57..98cdc3430 100644 --- a/tests/rules/prefer-property-signatures/ts/valid.ts +++ b/tests/rules/prefer-property-signatures/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-property-signatures"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-property-signatures"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/prefer-readonly-type/ts/invalid.ts b/tests/rules/prefer-readonly-type/ts/invalid.ts index 89d2af373..7460ca1fa 100644 --- a/tests/rules/prefer-readonly-type/ts/invalid.ts +++ b/tests/rules/prefer-readonly-type/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-readonly-type"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-readonly-type"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< @@ -419,26 +419,22 @@ const tests: Array< // Should fail on Array as type member. { code: dedent` - function foo() { - type Foo = { - readonly bar: Array - } + type Foo = { + readonly bar: Array } `, optionsSet: [[]], output: dedent` - function foo() { - type Foo = { - readonly bar: ReadonlyArray - } + type Foo = { + readonly bar: ReadonlyArray } `, errors: [ { messageId: "type", type: AST_NODE_TYPES.TSTypeReference, - line: 3, - column: 19, + line: 2, + column: 17, }, ], }, diff --git a/tests/rules/prefer-readonly-type/ts/valid.ts b/tests/rules/prefer-readonly-type/ts/valid.ts index 70412b09b..e0744c051 100644 --- a/tests/rules/prefer-readonly-type/ts/valid.ts +++ b/tests/rules/prefer-readonly-type/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-readonly-type"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-readonly-type"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // Should not fail on explicit ReadonlyArray parameter. diff --git a/tests/rules/prefer-tacit/ts/invalid.ts b/tests/rules/prefer-tacit/ts/invalid.ts index c1a4ce9bc..0a1e87f04 100644 --- a/tests/rules/prefer-tacit/ts/invalid.ts +++ b/tests/rules/prefer-tacit/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/prefer-tacit"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/prefer-tacit"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< @@ -253,8 +253,8 @@ const tests: Array< { messageId: "generic", output: dedent` - const foo = [1, 2, 3].map(Boolean); - `, + const foo = [1, 2, 3].map(Boolean); + `, }, ], }, diff --git a/tests/rules/prefer-tacit/ts/valid.ts b/tests/rules/prefer-tacit/ts/valid.ts index 3d65647b2..9b464aa4c 100644 --- a/tests/rules/prefer-tacit/ts/valid.ts +++ b/tests/rules/prefer-tacit/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/prefer-tacit"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/prefer-tacit"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ { diff --git a/tests/rules/readonly-type/ts/invalid.ts b/tests/rules/readonly-type/ts/invalid.ts index 8f5678ac3..ad0723fe4 100644 --- a/tests/rules/readonly-type/ts/invalid.ts +++ b/tests/rules/readonly-type/ts/invalid.ts @@ -1,11 +1,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; -import { type rule } from "#/rules/readonly-type"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/readonly-type"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const tests: Array< diff --git a/tests/rules/readonly-type/ts/valid.ts b/tests/rules/readonly-type/ts/valid.ts index ae0112316..490a7be40 100644 --- a/tests/rules/readonly-type/ts/valid.ts +++ b/tests/rules/readonly-type/ts/valid.ts @@ -1,7 +1,7 @@ import dedent from "dedent"; -import { type rule } from "#/rules/readonly-type"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/readonly-type"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const tests: Array>> = [ // Not readonly diff --git a/tests/rules/type-declaration-immutability/ts/invalid.ts b/tests/rules/type-declaration-immutability/ts/invalid.ts index 657585859..9f47683d6 100644 --- a/tests/rules/type-declaration-immutability/ts/invalid.ts +++ b/tests/rules/type-declaration-immutability/ts/invalid.ts @@ -2,11 +2,11 @@ import { AST_NODE_TYPES } from "@typescript-eslint/utils"; import dedent from "dedent"; import { Immutability } from "is-immutable-type"; -import { type rule } from "#/rules/type-declaration-immutability"; -import { - type InvalidTestCaseSet, - type MessagesOf, - type OptionsOf, +import type { rule } from "#/rules/type-declaration-immutability"; +import type { + InvalidTestCaseSet, + MessagesOf, + OptionsOf, } from "#/tests/helpers/util"; const recommended = { diff --git a/tests/rules/type-declaration-immutability/ts/valid.ts b/tests/rules/type-declaration-immutability/ts/valid.ts index 196d9d2a1..2652d556d 100644 --- a/tests/rules/type-declaration-immutability/ts/valid.ts +++ b/tests/rules/type-declaration-immutability/ts/valid.ts @@ -1,8 +1,8 @@ import dedent from "dedent"; import { Immutability } from "is-immutable-type"; -import { type rule } from "#/rules/type-declaration-immutability"; -import { type OptionsOf, type ValidTestCaseSet } from "#/tests/helpers/util"; +import type { rule } from "#/rules/type-declaration-immutability"; +import type { OptionsOf, ValidTestCaseSet } from "#/tests/helpers/util"; const recommended = { rules: [ diff --git a/tsconfig.base.json b/tsconfig.base.json index 81c0c12a9..01848d44c 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -4,11 +4,12 @@ "allowUnreachableCode": false, "allowUnusedLabels": false, "alwaysStrict": true, - "declaration": false, + "declaration": true, "esModuleInterop": true, "exactOptionalPropertyTypes": true, "forceConsistentCasingInFileNames": true, "importHelpers": false, + "isolatedDeclarations": true, "lib": ["ESNext"], "module": "ESNext", "moduleResolution": "Bundler", @@ -31,17 +32,14 @@ "types": ["vitest/importMeta"], "baseUrl": ".", "paths": { - "#/flat": ["src/flat.ts"], - "#/classic": ["src/classic.ts"], + "#": ["src/index.ts"], "#/configs/*": ["src/configs/*"], "#/options": ["src/options"], "#/rules": ["src/rules"], "#/rules/*": ["src/rules/*"], "#/settings": ["src/settings"], "#/utils/*": ["src/utils/*"], - "#/conditional-imports/*": [ - "src/utils/conditional-imports/cjs/*" - ], + "#/conditional-imports/*": ["src/utils/conditional-imports/*"], "#/tests/*": ["tests/*"] } }, diff --git a/tsconfig.build.json b/tsconfig.build.json index 87c00d239..e8c0f0ccf 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,8 +1,7 @@ { "extends": "./tsconfig.base.json", "compilerOptions": { - "rootDir": "src", - "declaration": true + "rootDir": "src" }, "include": ["src", "typings"] } diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json deleted file mode 100644 index 739c0ab17..000000000 --- a/tsconfig.eslint.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "include": ["."] -} diff --git a/tsconfig.json b/tsconfig.json index 72304648e..86d1e7a3c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,11 @@ { "extends": "./tsconfig.build.json", "compilerOptions": { - "rootDir": "." + "allowJs": true, + "noEmit": true, + "rootDir": ".", + "isolatedDeclarations": false }, - "include": [".", "src", "tests", "typings"] + "include": [".", ".*", "**/*", "**/.*"], + "exclude": ["tests-compiled"] } diff --git a/typings/node.d.ts b/typings/node.d.ts new file mode 100644 index 000000000..1373b8714 --- /dev/null +++ b/typings/node.d.ts @@ -0,0 +1,25 @@ +// Needed for node < 22 support. + +declare global { + interface ImportMeta { + /** + * The directory name of the current module. This is the same as the `path.dirname()` of the `import.meta.filename`. + * **Caveat:** only present on `file:` modules. + */ + dirname: string; + + /** + * The full absolute path and filename of the current module, with symlinks resolved. + * This is the same as the `url.fileURLToPath()` of the `import.meta.url`. + * **Caveat:** only local modules support this property. Modules not using the `file:` protocol will not provide it. + */ + filename: string; + + /** + * The absolute `file:` URL of the module. + */ + url: string; + } +} + +export {};