diff --git a/.changepacks/changepack_log_p6BWITv7KEZ3eQ1drCR7a.json b/.changepacks/changepack_log_p6BWITv7KEZ3eQ1drCR7a.json new file mode 100644 index 0000000..95941bb --- /dev/null +++ b/.changepacks/changepack_log_p6BWITv7KEZ3eQ1drCR7a.json @@ -0,0 +1 @@ +{"changes":{"package.json":"Patch"},"note":"Migration to bun","date":"2025-12-30T17:52:49.858589700Z"} \ No newline at end of file diff --git a/.changepacks/config.json b/.changepacks/config.json new file mode 100644 index 0000000..990abf7 --- /dev/null +++ b/.changepacks/config.json @@ -0,0 +1,7 @@ +{ + "ignore": [], + "baseBranch": "main", + "latestPackage": "package.json", + "publish": {}, + "updateOn": {} +} \ No newline at end of file diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index e5b6d8d..0000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 5da19f8..0000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "restricted", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "changedFilePatterns": ["**", "!**/src/**/__tests__/**"] -} diff --git a/.changeset/lemon-hands-slide.md b/.changeset/lemon-hands-slide.md deleted file mode 100644 index 61c1b5e..0000000 --- a/.changeset/lemon-hands-slide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-plugin-devup': patch ---- - -Fix ignores diff --git a/.github/workflows/check-pr.yml b/.github/workflows/check-pr.yml index b403d3b..ddd64e2 100644 --- a/.github/workflows/check-pr.yml +++ b/.github/workflows/check-pr.yml @@ -1,28 +1,21 @@ -name: Check Pull Request -on: - pull_request: - branches: - - main -jobs: - check: - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'pnpm' - registry-url: 'https://registry.npmjs.org' - - - run: pnpm i - - run: | - pnpm build - pnpm lint - pnpm test +name: Check Pull Request +on: + pull_request: + branches: + - main +jobs: + check: + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + - run: bun i + - run: | + bun test + bun run build + # eslint project can not lint before build + bun lint diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 71e14f4..24229ad 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,37 +1,37 @@ -name: Publish Package to npm - -on: - push: - branches: - - main - -jobs: - publish: - runs-on: ubuntu-latest - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - - name: Install Node.js - uses: actions/setup-node@v4 - with: - registry-url: "https://registry.npmjs.org" - node-version: 22 - cache: 'pnpm' - - run: pnpm i - - run: | - pnpm build - pnpm lint - pnpm test - - name: Create Release Pull Request or Publish to npm - id: changesets - uses: changesets/action@v1 - with: - publish: pnpm publish --access=public - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} +name: Publish Package to npm + +on: + push: + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + permissions: + # create pull request comments + pull-requests: write + + # Actions > General > Workflow permissions for creating pull request + # Create brench to create pull request + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + - run: bun i + - run: | + bun test + bun run build + # eslint project can not lint before build + bun lint + - uses: changepacks/action@main + id: changepacks + with: + publish: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 36c7d05..4f589c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,57 +1,59 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# Dependencies -node_modules -.pnp -.pnp.js -.idea -.vscode -.vite-inspect -.df - -devup-*.tgz -# Local env files -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - -# Testing -coverage -tsconfig.vitest-temp.json -vite.config.ts.timestamp-* -vite.config.*.ts.timestamp-* - -# Turbo -.turbo - -# Vercel -.vercel - -# Build Outputs -.next -out -build -storybook-static -!packages/*/src/**/build -dist -next-env.d.ts - - -# Debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Misc -.DS_Store -*.pem - -stats.html - -*storybook.log - -.nx/cache -.nx/workspace-data -**/vite.config.{js,ts,mjs,mts,cjs,cts}.timestamp* +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# Dependencies +node_modules +.pnp +.pnp.js +.idea +.vscode +.vite-inspect +.df + +devup-*.tgz +# Local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Testing +coverage +tsconfig.vitest-temp.json +vite.config.ts.timestamp-* +vite.config.*.ts.timestamp-* + +# Turbo +.turbo + +# Vercel +.vercel + +# Build Outputs +.next +out +build +storybook-static +!packages/*/src/**/build +dist +next-env.d.ts + + +# Debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Misc +.DS_Store +*.pem + +stats.html + +*storybook.log + +.nx/cache +.nx/workspace-data +**/vite.config.{js,ts,mjs,mts,cjs,cts}.timestamp* + +.claude \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index e02c24e..9903e56 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1 +1,2 @@ -pnpm lint-staged \ No newline at end of file +bun test +bun lint \ No newline at end of file diff --git a/.lintstagedrc.mjs b/.lintstagedrc.mjs deleted file mode 100644 index c03b6c3..0000000 --- a/.lintstagedrc.mjs +++ /dev/null @@ -1,8 +0,0 @@ -export default { - '**/*.{js,jsx,ts,tsx,mjs,md,mdx,json,json5,jsonc}': (files) => { - return [ - `pnpm eslint --config eslint.config.mjs --fix ${files.join(' ')}`, - `git add ${files.join(' ')}`, - ] - }, -} diff --git a/README.md b/README.md index 516c0f9..21eba52 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,46 @@ -# eslint-plugin-devup - -`devup`은 데브파이브에서 사용되는 더 빠르고 더 정확한 소프트웨어 개발을 위한 시스템입니다. - -`devup-eslint-plugin`은 빠르고 정확하게 소프트웨어 개발을 할 수 있도록 도움을 줍니다. - -각 룰에 대해서는 `src/rules` 디렉토리에 있는 파일을 참고하세요. - -사내에서 사용하다가 외부에 공개된 만큼, 회사 내의 시스템을 위한 룰도 존재합니다. - -원하는 룰만 사용할 수 있도록 `named export`로 모든 룰을 제공합니다. - -## Installation - -```bash -pnpm install --save-dev eslint-plugin-devup -``` - -## Usage - -create `eslint.config.mjs` file in your project root. - -```js -import { configs } from 'eslint-plugin-devup' - -export default configs.recommended -``` - -## Test - -Coverage score must be 100%. - -```bash -pnpm test -``` - -## Contributing - -- 룰을 추가하거나 수정할 때는 `src/rules` 디렉토리에 파일을 추가하거나 수정합니다. -- 룰을 추가하거나 수정할 때는 `README.md`에 룰에 대한 설명을 추가합니다. - -모든 의견과 기여를 환영합니다. - -## Join the Community - -[Discord](https://discord.gg/8zjcGc7cWh) +# eslint-plugin-devup + +`devup` is a system for faster and more accurate software development used at DevFive. + +`eslint-plugin-devup` helps you develop software quickly and accurately. + +For details on each rule, please refer to the files in the `src/rules` directory. + +As this was originally used internally and has now been made public, some rules exist for company-specific systems. + +All rules are provided as `named exports` so you can use only the rules you want. + +## Installation + +```bash +bun add -d eslint-plugin-devup +``` + +## Usage + +Create an `eslint.config.mjs` file in your project root. + +```js +import { configs } from 'eslint-plugin-devup' + +export default configs.recommended +``` + +## Test + +Coverage score must be 100%. + +```bash +bun test +``` + +## Contributing + +- When adding or modifying rules, add or modify files in the `src/rules` directory. +- When adding or modifying rules, add a description of the rule in `README.md`. + +All opinions and contributions are welcome. + +## Join the Community + +[Discord](https://discord.gg/8zjcGc7cWh) diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..393b1be --- /dev/null +++ b/bun.lock @@ -0,0 +1,1396 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "eslint-plugin-devup", + "dependencies": { + "@devup-ui/eslint-plugin": ">=1.0", + "@eslint/js": ">=9.39", + "@tanstack/eslint-plugin-query": ">=5", + "eslint": ">=9.39", + "eslint-config-prettier": ">=10", + "eslint-plugin-mdx": ">=3", + "eslint-plugin-prettier": ">=5", + "eslint-plugin-react": ">=7", + "eslint-plugin-react-hooks": ">=7", + "eslint-plugin-simple-import-sort": ">=12", + "eslint-plugin-unused-imports": ">=4", + "prettier": ">=3", + "typescript-eslint": ">=8.51", + }, + "devDependencies": { + "@changesets/cli": "^2.29", + "@types/bun": "^1.3", + "@types/eslint": "^9.6", + "@typescript-eslint/rule-tester": "^8.51", + "@typescript-eslint/utils": "^8.51", + "eslint-plugin-eslint-plugin": "^7.2", + "husky": "^9.1", + "typescript": "^5.9", + "vite": "^7.3", + "vite-plugin-dts": "^4.5", + }, + "peerDependencies": { + "eslint": "*", + }, + }, + }, + "packages": { + "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + + "@babel/compat-data": ["@babel/compat-data@7.28.5", "", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], + + "@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], + + "@babel/generator": ["@babel/generator@7.28.5", "", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + + "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], + + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], + + "@babel/runtime": ["@babel/runtime@7.28.4", "", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], + + "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], + + "@babel/traverse": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], + + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + + "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.0.14", "", { "dependencies": { "@changesets/config": "^3.1.2", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA=="], + + "@changesets/assemble-release-plan": ["@changesets/assemble-release-plan@6.0.9", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "semver": "^7.5.3" } }, "sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ=="], + + "@changesets/changelog-git": ["@changesets/changelog-git@0.2.1", "", { "dependencies": { "@changesets/types": "^6.1.0" } }, "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q=="], + + "@changesets/cli": ["@changesets/cli@2.29.8", "", { "dependencies": { "@changesets/apply-release-plan": "^7.0.14", "@changesets/assemble-release-plan": "^6.0.9", "@changesets/changelog-git": "^0.2.1", "@changesets/config": "^3.1.2", "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/get-release-plan": "^4.0.14", "@changesets/git": "^3.0.4", "@changesets/logger": "^0.1.1", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.6", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@changesets/write": "^0.4.0", "@inquirer/external-editor": "^1.0.2", "@manypkg/get-packages": "^1.1.3", "ansi-colors": "^4.1.3", "ci-info": "^3.7.0", "enquirer": "^2.4.1", "fs-extra": "^7.0.1", "mri": "^1.2.0", "p-limit": "^2.2.0", "package-manager-detector": "^0.2.0", "picocolors": "^1.1.0", "resolve-from": "^5.0.0", "semver": "^7.5.3", "spawndamnit": "^3.0.1", "term-size": "^2.1.0" }, "bin": { "changeset": "bin.js" } }, "sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA=="], + + "@changesets/config": ["@changesets/config@3.1.2", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/logger": "^0.1.1", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1", "micromatch": "^4.0.8" } }, "sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog=="], + + "@changesets/errors": ["@changesets/errors@0.2.0", "", { "dependencies": { "extendable-error": "^0.1.5" } }, "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow=="], + + "@changesets/get-dependents-graph": ["@changesets/get-dependents-graph@2.1.3", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "picocolors": "^1.1.0", "semver": "^7.5.3" } }, "sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ=="], + + "@changesets/get-release-plan": ["@changesets/get-release-plan@4.0.14", "", { "dependencies": { "@changesets/assemble-release-plan": "^6.0.9", "@changesets/config": "^3.1.2", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.6", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g=="], + + "@changesets/get-version-range-type": ["@changesets/get-version-range-type@0.4.0", "", {}, "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="], + + "@changesets/git": ["@changesets/git@3.0.4", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@manypkg/get-packages": "^1.1.3", "is-subdir": "^1.1.1", "micromatch": "^4.0.8", "spawndamnit": "^3.0.1" } }, "sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw=="], + + "@changesets/logger": ["@changesets/logger@0.1.1", "", { "dependencies": { "picocolors": "^1.1.0" } }, "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg=="], + + "@changesets/parse": ["@changesets/parse@0.4.2", "", { "dependencies": { "@changesets/types": "^6.1.0", "js-yaml": "^4.1.1" } }, "sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA=="], + + "@changesets/pre": ["@changesets/pre@2.0.2", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1" } }, "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug=="], + + "@changesets/read": ["@changesets/read@0.6.6", "", { "dependencies": { "@changesets/git": "^3.0.4", "@changesets/logger": "^0.1.1", "@changesets/parse": "^0.4.2", "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "p-filter": "^2.1.0", "picocolors": "^1.1.0" } }, "sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg=="], + + "@changesets/should-skip-package": ["@changesets/should-skip-package@0.1.2", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw=="], + + "@changesets/types": ["@changesets/types@6.1.0", "", {}, "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA=="], + + "@changesets/write": ["@changesets/write@0.4.0", "", { "dependencies": { "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "human-id": "^4.1.1", "prettier": "^2.7.1" } }, "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q=="], + + "@devup-ui/eslint-plugin": ["@devup-ui/eslint-plugin@1.0.6", "", { "dependencies": { "@typescript-eslint/utils": "^8.50", "typescript-eslint": "^8.50" } }, "sha512-6X1PwM8fNDuEUOQCEt/ZVXPUToLJtK8cqp0Dc+BxOappB8xmj3ve9wVGfb9c8dg34chUwQahm3lVkuvVg0VV7Q=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.3", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ=="], + + "@eslint/js": ["@eslint/js@9.39.2", "", {}, "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="], + + "@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="], + + "@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="], + + "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@manypkg/find-root": ["@manypkg/find-root@1.1.0", "", { "dependencies": { "@babel/runtime": "^7.5.5", "@types/node": "^12.7.1", "find-up": "^4.1.0", "fs-extra": "^8.1.0" } }, "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA=="], + + "@manypkg/get-packages": ["@manypkg/get-packages@1.1.3", "", { "dependencies": { "@babel/runtime": "^7.5.5", "@changesets/types": "^4.0.1", "@manypkg/find-root": "^1.1.0", "fs-extra": "^8.1.0", "globby": "^11.0.0", "read-yaml-file": "^1.1.0" } }, "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A=="], + + "@microsoft/api-extractor": ["@microsoft/api-extractor@7.55.2", "", { "dependencies": { "@microsoft/api-extractor-model": "7.32.2", "@microsoft/tsdoc": "~0.16.0", "@microsoft/tsdoc-config": "~0.18.0", "@rushstack/node-core-library": "5.19.1", "@rushstack/rig-package": "0.6.0", "@rushstack/terminal": "0.19.5", "@rushstack/ts-command-line": "5.1.5", "diff": "~8.0.2", "lodash": "~4.17.15", "minimatch": "10.0.3", "resolve": "~1.22.1", "semver": "~7.5.4", "source-map": "~0.6.1", "typescript": "5.8.2" }, "bin": { "api-extractor": "bin/api-extractor" } }, "sha512-1jlWO4qmgqYoVUcyh+oXYRztZde/pAi7cSVzBz/rc+S7CoVzDasy8QE13dx6sLG4VRo8SfkkLbFORR6tBw4uGQ=="], + + "@microsoft/api-extractor-model": ["@microsoft/api-extractor-model@7.32.2", "", { "dependencies": { "@microsoft/tsdoc": "~0.16.0", "@microsoft/tsdoc-config": "~0.18.0", "@rushstack/node-core-library": "5.19.1" } }, "sha512-Ussc25rAalc+4JJs9HNQE7TuO9y6jpYQX9nWD1DhqUzYPBr3Lr7O9intf+ZY8kD5HnIqeIRJX7ccCT0QyBy2Ww=="], + + "@microsoft/tsdoc": ["@microsoft/tsdoc@0.16.0", "", {}, "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA=="], + + "@microsoft/tsdoc-config": ["@microsoft/tsdoc-config@0.18.0", "", { "dependencies": { "@microsoft/tsdoc": "0.16.0", "ajv": "~8.12.0", "jju": "~1.4.0", "resolve": "~1.22.2" } }, "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@npmcli/config": ["@npmcli/config@8.3.4", "", { "dependencies": { "@npmcli/map-workspaces": "^3.0.2", "@npmcli/package-json": "^5.1.1", "ci-info": "^4.0.0", "ini": "^4.1.2", "nopt": "^7.2.1", "proc-log": "^4.2.0", "semver": "^7.3.5", "walk-up-path": "^3.0.1" } }, "sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw=="], + + "@npmcli/git": ["@npmcli/git@5.0.8", "", { "dependencies": { "@npmcli/promise-spawn": "^7.0.0", "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^4.0.0" } }, "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ=="], + + "@npmcli/map-workspaces": ["@npmcli/map-workspaces@3.0.6", "", { "dependencies": { "@npmcli/name-from-folder": "^2.0.0", "glob": "^10.2.2", "minimatch": "^9.0.0", "read-package-json-fast": "^3.0.0" } }, "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA=="], + + "@npmcli/name-from-folder": ["@npmcli/name-from-folder@2.0.0", "", {}, "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg=="], + + "@npmcli/package-json": ["@npmcli/package-json@5.2.1", "", { "dependencies": { "@npmcli/git": "^5.0.0", "glob": "^10.2.2", "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", "proc-log": "^4.0.0", "semver": "^7.5.3" } }, "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ=="], + + "@npmcli/promise-spawn": ["@npmcli/promise-spawn@7.0.2", "", { "dependencies": { "which": "^4.0.0" } }, "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ=="], + + "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], + + "@pkgr/core": ["@pkgr/core@0.2.9", "", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], + + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.54.0", "", { "os": "android", "cpu": "arm" }, "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.54.0", "", { "os": "android", "cpu": "arm64" }, "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.54.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.54.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.54.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.54.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.54.0", "", { "os": "linux", "cpu": "arm" }, "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.54.0", "", { "os": "linux", "cpu": "arm" }, "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.54.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.54.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.54.0", "", { "os": "linux", "cpu": "none" }, "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.54.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.54.0", "", { "os": "linux", "cpu": "none" }, "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.54.0", "", { "os": "linux", "cpu": "none" }, "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.54.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.54.0", "", { "os": "linux", "cpu": "x64" }, "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.54.0", "", { "os": "linux", "cpu": "x64" }, "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.54.0", "", { "os": "none", "cpu": "arm64" }, "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.54.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.54.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.54.0", "", { "os": "win32", "cpu": "x64" }, "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.54.0", "", { "os": "win32", "cpu": "x64" }, "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg=="], + + "@rushstack/node-core-library": ["@rushstack/node-core-library@5.19.1", "", { "dependencies": { "ajv": "~8.13.0", "ajv-draft-04": "~1.0.0", "ajv-formats": "~3.0.1", "fs-extra": "~11.3.0", "import-lazy": "~4.0.0", "jju": "~1.4.0", "resolve": "~1.22.1", "semver": "~7.5.4" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA=="], + + "@rushstack/problem-matcher": ["@rushstack/problem-matcher@0.1.1", "", { "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA=="], + + "@rushstack/rig-package": ["@rushstack/rig-package@0.6.0", "", { "dependencies": { "resolve": "~1.22.1", "strip-json-comments": "~3.1.1" } }, "sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw=="], + + "@rushstack/terminal": ["@rushstack/terminal@0.19.5", "", { "dependencies": { "@rushstack/node-core-library": "5.19.1", "@rushstack/problem-matcher": "0.1.1", "supports-color": "~8.1.1" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-6k5tpdB88G0K7QrH/3yfKO84HK9ggftfUZ51p7fePyCE7+RLLHkWZbID9OFWbXuna+eeCFE7AkKnRMHMxNbz7Q=="], + + "@rushstack/ts-command-line": ["@rushstack/ts-command-line@5.1.5", "", { "dependencies": { "@rushstack/terminal": "0.19.5", "@types/argparse": "1.0.38", "argparse": "~1.0.9", "string-argv": "~0.3.1" } }, "sha512-YmrFTFUdHXblYSa+Xc9OO9FsL/XFcckZy0ycQ6q7VSBsVs5P0uD9vcges5Q9vctGlVdu27w+Ct6IuJ458V0cTQ=="], + + "@tanstack/eslint-plugin-query": ["@tanstack/eslint-plugin-query@5.91.2", "", { "dependencies": { "@typescript-eslint/utils": "^8.44.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" } }, "sha512-UPeWKl/Acu1IuuHJlsN+eITUHqAaa9/04geHHPedY8siVarSaWprY0SVMKrkpKfk5ehRT7+/MZ5QwWuEtkWrFw=="], + + "@types/argparse": ["@types/argparse@1.0.38", "", {}, "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA=="], + + "@types/bun": ["@types/bun@1.3.5", "", { "dependencies": { "bun-types": "1.3.5" } }, "sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w=="], + + "@types/concat-stream": ["@types/concat-stream@2.0.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ=="], + + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + + "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + + "@types/is-empty": ["@types/is-empty@1.2.3", "", {}, "sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/node": ["@types/node@22.19.3", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA=="], + + "@types/supports-color": ["@types/supports-color@8.1.3", "", {}, "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.51.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.51.0", "@typescript-eslint/type-utils": "8.51.0", "@typescript-eslint/utils": "8.51.0", "@typescript-eslint/visitor-keys": "8.51.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.2.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.51.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.51.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.51.0", "@typescript-eslint/types": "8.51.0", "@typescript-eslint/typescript-estree": "8.51.0", "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.51.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.51.0", "@typescript-eslint/types": "^8.51.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ=="], + + "@typescript-eslint/rule-tester": ["@typescript-eslint/rule-tester@8.51.0", "", { "dependencies": { "@typescript-eslint/parser": "8.51.0", "@typescript-eslint/typescript-estree": "8.51.0", "@typescript-eslint/utils": "8.51.0", "ajv": "^6.12.6", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "4.6.2", "semver": "^7.6.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" } }, "sha512-iMEcUgzOcVhNo68VelLiZNdBGp91bG3CcLvFR0kJokMooRU82PkWT+ISGDHuph2eMnUucYkf6QTr71IFQ6aB+w=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.51.0", "", { "dependencies": { "@typescript-eslint/types": "8.51.0", "@typescript-eslint/visitor-keys": "8.51.0" } }, "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.51.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.51.0", "", { "dependencies": { "@typescript-eslint/types": "8.51.0", "@typescript-eslint/typescript-estree": "8.51.0", "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", "ts-api-utils": "^2.2.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.51.0", "", {}, "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.51.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.51.0", "@typescript-eslint/tsconfig-utils": "8.51.0", "@typescript-eslint/types": "8.51.0", "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.2.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.51.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.51.0", "@typescript-eslint/types": "8.51.0", "@typescript-eslint/typescript-estree": "8.51.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.51.0", "", { "dependencies": { "@typescript-eslint/types": "8.51.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg=="], + + "@volar/language-core": ["@volar/language-core@2.4.27", "", { "dependencies": { "@volar/source-map": "2.4.27" } }, "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ=="], + + "@volar/source-map": ["@volar/source-map@2.4.27", "", {}, "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg=="], + + "@volar/typescript": ["@volar/typescript@2.4.27", "", { "dependencies": { "@volar/language-core": "2.4.27", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg=="], + + "@vue/compiler-core": ["@vue/compiler-core@3.5.26", "", { "dependencies": { "@babel/parser": "^7.28.5", "@vue/shared": "3.5.26", "entities": "^7.0.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w=="], + + "@vue/compiler-dom": ["@vue/compiler-dom@3.5.26", "", { "dependencies": { "@vue/compiler-core": "3.5.26", "@vue/shared": "3.5.26" } }, "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A=="], + + "@vue/compiler-vue2": ["@vue/compiler-vue2@2.7.16", "", { "dependencies": { "de-indent": "^1.0.2", "he": "^1.2.0" } }, "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A=="], + + "@vue/language-core": ["@vue/language-core@2.2.0", "", { "dependencies": { "@volar/language-core": "~2.4.11", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", "alien-signals": "^0.4.9", "minimatch": "^9.0.3", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw=="], + + "@vue/shared": ["@vue/shared@3.5.26", "", {}, "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="], + + "abbrev": ["abbrev@2.0.0", "", {}, "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "ajv-draft-04": ["ajv-draft-04@1.0.0", "", { "peerDependencies": { "ajv": "^8.5.0" }, "optionalPeers": ["ajv"] }, "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw=="], + + "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], + + "alien-signals": ["alien-signals@0.4.14", "", {}, "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q=="], + + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + + "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], + + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "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" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], + + "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], + + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.9.11", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ=="], + + "better-path-resolve": ["better-path-resolve@1.0.0", "", { "dependencies": { "is-windows": "^1.0.0" } }, "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], + + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + + "bun-types": ["bun-types@1.3.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-inmAYe2PFLs0SUbFOWSVD24sg1jFlMPxOjOSSCYqUgn4Hsc3rDc7dFvfVYjFPNHtov6kgUeulV4SxbuIV/stPw=="], + + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001762", "", {}, "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + + "chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="], + + "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "compare-versions": ["compare-versions@6.1.1", "", {}, "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "concat-stream": ["concat-stream@2.0.0", "", { "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" } }, "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A=="], + + "confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + + "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + + "de-indent": ["de-indent@1.0.2", "", {}, "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "decode-named-character-reference": ["decode-named-character-reference@1.2.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "detect-indent": ["detect-indent@6.1.0", "", {}, "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], + + "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], + + "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.267", "", {}, "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw=="], + + "emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="], + + "entities": ["entities@7.0.0", "", {}, "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="], + + "err-code": ["err-code@2.0.3", "", {}, "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="], + + "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + + "es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-iterator-helpers": ["es-iterator-helpers@1.2.2", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.1", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "safe-array-concat": "^1.1.3" } }, "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + + "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + + "esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.39.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-mdx": ["eslint-mdx@3.6.2", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "espree": "^9.6.1 || ^10.4.0", "estree-util-visit": "^2.0.0", "remark-mdx": "^3.1.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "synckit": "^0.11.8", "unified": "^11.0.5", "unified-engine": "^11.2.2", "unist-util-visit": "^5.0.0", "uvu": "^0.5.6", "vfile": "^6.0.3" }, "peerDependencies": { "eslint": ">=8.0.0", "remark-lint-file-extension": "*" }, "optionalPeers": ["remark-lint-file-extension"] }, "sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig=="], + + "eslint-plugin-eslint-plugin": ["eslint-plugin-eslint-plugin@7.2.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "estraverse": "^5.3.0" }, "peerDependencies": { "eslint": ">=9.0.0" } }, "sha512-3WOuoauBlxCItqpIdyajCOVQbCmAlqHNQq82QunpzuGkBNr6OqHRjdPZKpy2Z0rGb005mIO0HEP9aaDCzkApxQ=="], + + "eslint-plugin-mdx": ["eslint-plugin-mdx@3.6.2", "", { "dependencies": { "eslint-mdx": "^3.6.2", "mdast-util-from-markdown": "^2.0.2", "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0", "remark-mdx": "^3.1.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "synckit": "^0.11.8", "unified": "^11.0.5", "vfile": "^6.0.3" }, "peerDependencies": { "eslint": ">=8.0.0" } }, "sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A=="], + + "eslint-plugin-prettier": ["eslint-plugin-prettier@5.5.4", "", { "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.11.7" }, "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "optionalPeers": ["@types/eslint", "eslint-config-prettier"] }, "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg=="], + + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], + + "eslint-plugin-simple-import-sort": ["eslint-plugin-simple-import-sort@12.1.1", "", { "peerDependencies": { "eslint": ">=5.0.0" } }, "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA=="], + + "eslint-plugin-unused-imports": ["eslint-plugin-unused-imports@4.3.0", "", { "peerDependencies": { "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", "eslint": "^9.0.0 || ^8.0.0" }, "optionalPeers": ["@typescript-eslint/eslint-plugin"] }, "sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], + + "estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="], + + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "extendable-error": ["extendable-error@0.1.7", "", {}, "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + + "fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + + "glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + + "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], + + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], + + "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], + + "hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], + + "human-id": ["human-id@4.1.3", "", { "bin": { "human-id": "dist/cli.js" } }, "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q=="], + + "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], + + "iconv-lite": ["iconv-lite@0.7.1", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "import-lazy": ["import-lazy@4.0.0", "", {}, "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw=="], + + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "ini": ["ini@4.1.3", "", {}, "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg=="], + + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], + + "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], + + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + + "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + + "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + + "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], + + "is-empty": ["is-empty@1.2.0", "", {}, "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], + + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-subdir": ["is-subdir@1.2.0", "", { "dependencies": { "better-path-resolve": "1.0.0" } }, "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "is-windows": ["is-windows@1.0.2", "", {}, "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + + "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + + "jju": ["jju@1.4.0", "", {}, "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-parse-even-better-errors": ["json-parse-even-better-errors@3.0.2", "", {}, "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], + + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lines-and-columns": ["lines-and-columns@2.0.4", "", {}, "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A=="], + + "load-plugin": ["load-plugin@6.0.3", "", { "dependencies": { "@npmcli/config": "^8.0.0", "import-meta-resolve": "^4.0.0" } }, "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w=="], + + "local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="], + + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="], + + "mdast-util-mdx": ["mdast-util-mdx@3.0.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w=="], + + "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], + + "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], + + "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + + "micromark-extension-mdx-expression": ["micromark-extension-mdx-expression@3.0.1", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q=="], + + "micromark-extension-mdx-jsx": ["micromark-extension-mdx-jsx@3.0.2", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ=="], + + "micromark-extension-mdx-md": ["micromark-extension-mdx-md@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ=="], + + "micromark-extension-mdxjs": ["micromark-extension-mdxjs@3.0.0", "", { "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ=="], + + "micromark-extension-mdxjs-esm": ["micromark-extension-mdxjs-esm@3.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-mdx-expression": ["micromark-factory-mdx-expression@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ=="], + + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-events-to-acorn": ["micromark-util-events-to-acorn@2.0.3", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + + "mlly": ["mlly@1.8.0", "", { "dependencies": { "acorn": "^8.15.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.1" } }, "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g=="], + + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "muggle-string": ["muggle-string@0.4.1", "", {}, "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], + + "nopt": ["nopt@7.2.1", "", { "dependencies": { "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w=="], + + "normalize-package-data": ["normalize-package-data@6.0.2", "", { "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g=="], + + "npm-install-checks": ["npm-install-checks@6.3.0", "", { "dependencies": { "semver": "^7.1.1" } }, "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw=="], + + "npm-normalize-package-bin": ["npm-normalize-package-bin@3.0.1", "", {}, "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ=="], + + "npm-package-arg": ["npm-package-arg@11.0.3", "", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw=="], + + "npm-pick-manifest": ["npm-pick-manifest@9.1.0", "", { "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", "npm-package-arg": "^11.0.0", "semver": "^7.3.5" } }, "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA=="], + + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + + "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + + "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "outdent": ["outdent@0.5.0", "", {}, "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q=="], + + "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + + "p-filter": ["p-filter@2.1.0", "", { "dependencies": { "p-map": "^2.0.0" } }, "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw=="], + + "p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "p-map": ["p-map@2.1.0", "", {}, "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="], + + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + + "package-manager-detector": ["package-manager-detector@0.2.11", "", { "dependencies": { "quansync": "^0.2.7" } }, "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + + "parse-json": ["parse-json@7.1.1", "", { "dependencies": { "@babel/code-frame": "^7.21.4", "error-ex": "^1.3.2", "json-parse-even-better-errors": "^3.0.0", "lines-and-columns": "^2.0.3", "type-fest": "^3.8.0" } }, "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw=="], + + "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + + "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + + "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "pify": ["pify@4.0.1", "", {}, "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="], + + "pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.7.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA=="], + + "prettier-linter-helpers": ["prettier-linter-helpers@1.0.1", "", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg=="], + + "proc-log": ["proc-log@4.2.0", "", {}, "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="], + + "promise-inflight": ["promise-inflight@1.0.1", "", {}, "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="], + + "promise-retry": ["promise-retry@2.0.1", "", { "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g=="], + + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + + "read-package-json-fast": ["read-package-json-fast@3.0.2", "", { "dependencies": { "json-parse-even-better-errors": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" } }, "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw=="], + + "read-yaml-file": ["read-yaml-file@1.1.0", "", { "dependencies": { "graceful-fs": "^4.1.5", "js-yaml": "^3.6.1", "pify": "^4.0.1", "strip-bom": "^3.0.0" } }, "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA=="], + + "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + + "remark-mdx": ["remark-mdx@3.1.1", "", { "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" } }, "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg=="], + + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + + "resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], + + "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + + "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "rollup": ["rollup@4.54.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.54.0", "@rollup/rollup-android-arm64": "4.54.0", "@rollup/rollup-darwin-arm64": "4.54.0", "@rollup/rollup-darwin-x64": "4.54.0", "@rollup/rollup-freebsd-arm64": "4.54.0", "@rollup/rollup-freebsd-x64": "4.54.0", "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", "@rollup/rollup-linux-arm-musleabihf": "4.54.0", "@rollup/rollup-linux-arm64-gnu": "4.54.0", "@rollup/rollup-linux-arm64-musl": "4.54.0", "@rollup/rollup-linux-loong64-gnu": "4.54.0", "@rollup/rollup-linux-ppc64-gnu": "4.54.0", "@rollup/rollup-linux-riscv64-gnu": "4.54.0", "@rollup/rollup-linux-riscv64-musl": "4.54.0", "@rollup/rollup-linux-s390x-gnu": "4.54.0", "@rollup/rollup-linux-x64-gnu": "4.54.0", "@rollup/rollup-linux-x64-musl": "4.54.0", "@rollup/rollup-openharmony-arm64": "4.54.0", "@rollup/rollup-win32-arm64-msvc": "4.54.0", "@rollup/rollup-win32-ia32-msvc": "4.54.0", "@rollup/rollup-win32-x64-gnu": "4.54.0", "@rollup/rollup-win32-x64-msvc": "4.54.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], + + "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["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" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + + "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "spawndamnit": ["spawndamnit@3.0.1", "", { "dependencies": { "cross-spawn": "^7.0.5", "signal-exit": "^4.0.1" } }, "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg=="], + + "spdx-correct": ["spdx-correct@3.2.0", "", { "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA=="], + + "spdx-exceptions": ["spdx-exceptions@2.5.0", "", {}, "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="], + + "spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="], + + "spdx-license-ids": ["spdx-license-ids@3.0.22", "", {}, "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ=="], + + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], + + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + + "string-argv": ["string-argv@0.3.2", "", {}, "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q=="], + + "string-width": ["string-width@6.1.0", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^10.2.1", "strip-ansi": "^7.0.1" } }, "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ=="], + + "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], + + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], + + "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], + + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], + + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], + + "term-size": ["term-size@2.2.1", "", {}, "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="], + + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + + "ts-api-utils": ["ts-api-utils@2.3.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-6eg3Y9SF7SsAvGzRHQvvc1skDAhwI4YQ32ui1scxD1Ccr0G5qIIbUBT3pFTKX8kmWIQClHobtUdNuaBgwdfdWg=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "type-fest": ["type-fest@3.13.1", "", {}, "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g=="], + + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + + "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], + + "typedarray": ["typedarray@0.0.6", "", {}, "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "typescript-eslint": ["typescript-eslint@8.51.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.51.0", "@typescript-eslint/parser": "8.51.0", "@typescript-eslint/typescript-estree": "8.51.0", "@typescript-eslint/utils": "8.51.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA=="], + + "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], + + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unified-engine": ["unified-engine@11.2.2", "", { "dependencies": { "@types/concat-stream": "^2.0.0", "@types/debug": "^4.0.0", "@types/is-empty": "^1.0.0", "@types/node": "^22.0.0", "@types/unist": "^3.0.0", "concat-stream": "^2.0.0", "debug": "^4.0.0", "extend": "^3.0.0", "glob": "^10.0.0", "ignore": "^6.0.0", "is-empty": "^1.0.0", "is-plain-obj": "^4.0.0", "load-plugin": "^6.0.0", "parse-json": "^7.0.0", "trough": "^2.0.0", "unist-util-inspect": "^8.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0", "vfile-reporter": "^8.0.0", "vfile-statistics": "^3.0.0", "yaml": "^2.0.0" } }, "sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg=="], + + "unist-util-inspect": ["unist-util-inspect@8.1.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position-from-estree": ["unist-util-position-from-estree@2.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uvu": ["uvu@0.5.6", "", { "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", "kleur": "^4.0.3", "sade": "^1.7.3" }, "bin": { "uvu": "bin.js" } }, "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA=="], + + "validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="], + + "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vfile-reporter": ["vfile-reporter@8.1.1", "", { "dependencies": { "@types/supports-color": "^8.0.0", "string-width": "^6.0.0", "supports-color": "^9.0.0", "unist-util-stringify-position": "^4.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0", "vfile-sort": "^4.0.0", "vfile-statistics": "^3.0.0" } }, "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g=="], + + "vfile-sort": ["vfile-sort@4.0.0", "", { "dependencies": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ=="], + + "vfile-statistics": ["vfile-statistics@3.0.0", "", { "dependencies": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w=="], + + "vite": ["vite@7.3.0", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg=="], + + "vite-plugin-dts": ["vite-plugin-dts@4.5.4", "", { "dependencies": { "@microsoft/api-extractor": "^7.50.1", "@rollup/pluginutils": "^5.1.4", "@volar/typescript": "^2.4.11", "@vue/language-core": "2.2.0", "compare-versions": "^6.1.1", "debug": "^4.4.0", "kolorist": "^1.8.0", "local-pkg": "^1.0.0", "magic-string": "^0.30.17" }, "peerDependencies": { "typescript": "*", "vite": "*" }, "optionalPeers": ["vite"] }, "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg=="], + + "vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], + + "walk-up-path": ["walk-up-path@3.0.1", "", {}, "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + + "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "zod": ["zod@4.2.1", "", {}, "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw=="], + + "zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@changesets/apply-release-plan/prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + + "@changesets/write/prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + + "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "@manypkg/find-root/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="], + + "@manypkg/find-root/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + + "@manypkg/find-root/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + + "@manypkg/get-packages/@changesets/types": ["@changesets/types@4.1.0", "", {}, "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw=="], + + "@manypkg/get-packages/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + + "@microsoft/api-extractor/minimatch": ["minimatch@10.0.3", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw=="], + + "@microsoft/api-extractor/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "@microsoft/api-extractor/semver": ["semver@7.5.4", "", { "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" } }, "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA=="], + + "@microsoft/api-extractor/typescript": ["typescript@5.8.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ=="], + + "@microsoft/tsdoc-config/ajv": ["ajv@8.12.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA=="], + + "@microsoft/tsdoc-config/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "@npmcli/config/ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], + + "@npmcli/git/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "@npmcli/git/which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], + + "@npmcli/map-workspaces/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "@npmcli/promise-spawn/which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], + + "@rushstack/node-core-library/ajv": ["ajv@8.13.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.4.1" } }, "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA=="], + + "@rushstack/node-core-library/fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="], + + "@rushstack/node-core-library/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "@rushstack/node-core-library/semver": ["semver@7.5.4", "", { "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" } }, "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA=="], + + "@rushstack/rig-package/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "@rushstack/terminal/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "@vue/language-core/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "ajv-formats/ajv": ["ajv@8.13.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.4.1" } }, "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA=="], + + "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "hosted-git-info/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "mlly/pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], + + "p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "read-yaml-file/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], + + "string-width/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "unified-engine/ignore": ["ignore@6.0.2", "", {}, "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A=="], + + "uvu/diff": ["diff@5.2.0", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="], + + "vfile-reporter/supports-color": ["supports-color@9.4.0", "", {}, "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw=="], + + "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + + "wrap-ansi/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + + "wrap-ansi/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + + "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + + "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "@manypkg/find-root/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + + "@microsoft/tsdoc-config/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "@npmcli/git/which/isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="], + + "@npmcli/map-workspaces/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "@npmcli/promise-spawn/which/isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="], + + "@rushstack/node-core-library/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "@rushstack/node-core-library/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + + "@rushstack/node-core-library/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "@vue/language-core/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "wrap-ansi/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + + "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "@manypkg/find-root/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + } +} diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 0000000..fad5bd6 --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,4 @@ +[test] +coverage = true +coveragePathIgnorePatterns = ["node_modules", "**/dist/**"] +coverageSkipTestFiles = true diff --git a/eslint.config.mjs b/eslint.config.mjs index ffa906f..5a98dc7 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,10 +1,10 @@ -import eslintPlugin from 'eslint-plugin-eslint-plugin' - -import { configs } from './dist/index.js' -export default [ - ...configs.recommended, - { - ...eslintPlugin.configs['flat/recommended'], - files: ['src/**'], - }, -] +import eslintPlugin from 'eslint-plugin-eslint-plugin' + +import { configs } from './dist/index.mjs' +export default [ + ...configs.recommended, + { + ...eslintPlugin.configs['flat/recommended'], + files: ['src/**'], + }, +] diff --git a/package.json b/package.json index 77f5bfa..9e77c75 100644 --- a/package.json +++ b/package.json @@ -5,19 +5,24 @@ "main": "dist/index.cjs", "type": "module", "scripts": { - "test": "vitest run --coverage", - "test:s": "vitest run -u", + "test": "bun test", "lint": "eslint", - "build": "tsc && vite build", - "changeset": "changeset", + "build": "tsc && bun build --target node src/index.ts --production --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --outfile dist/index.mjs --format esm --packages external && cp dist/index.d.ts dist/index.d.cts", "prepare": "husky" }, "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.cjs" + } } }, + "types": "./dist/index.d.ts", "files": [ "dist" ], @@ -27,37 +32,33 @@ "author": "devfive", "license": "ISC", "dependencies": { - "@devup-ui/eslint-plugin": "^1.0", - "@eslint/js": "^9.37", - "@tanstack/eslint-plugin-query": "^5", - "eslint": "^9.37", - "eslint-config-prettier": "^10", - "eslint-plugin-mdx": "^3", - "eslint-plugin-prettier": "^5", - "eslint-plugin-react": "^7", - "eslint-plugin-react-hooks": "^7", - "eslint-plugin-simple-import-sort": "^12", - "eslint-plugin-unused-imports": "^4", - "prettier": "^3", - "typescript-eslint": "^8.46" + "@devup-ui/eslint-plugin": ">=1.0", + "@eslint/js": ">=9.39", + "@tanstack/eslint-plugin-query": ">=5", + "eslint": ">=9.39", + "eslint-config-prettier": ">=10", + "eslint-plugin-mdx": ">=3", + "eslint-plugin-prettier": ">=5", + "eslint-plugin-react": ">=7", + "eslint-plugin-react-hooks": ">=7", + "eslint-plugin-simple-import-sort": ">=12", + "eslint-plugin-unused-imports": ">=4", + "prettier": ">=3", + "typescript-eslint": ">=8.51" }, "peerDependencies": { "eslint": "*" }, "devDependencies": { "@changesets/cli": "^2.29", + "@types/bun": "^1.3", "@types/eslint": "^9.6", - "@types/eslint__js": "^9.14", - "@typescript-eslint/rule-tester": "^8.46", - "@typescript-eslint/utils": "^8.46", - "@vitest/coverage-v8": "3.2", - "eslint-plugin-eslint-plugin": "^7.0", + "@typescript-eslint/rule-tester": "^8.51", + "@typescript-eslint/utils": "^8.51", + "eslint-plugin-eslint-plugin": "^7.2", "husky": "^9.1", - "lint-staged": "^16.2.4", "typescript": "^5.9", - "vite": "^7.1", - "vite-plugin-dts": "^4.5", - "vitest": "^3.2" - }, - "packageManager": "pnpm@10.18.3" + "vite": "^7.3", + "vite-plugin-dts": "^4.5" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 0a9a983..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,6622 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@devup-ui/eslint-plugin': - specifier: ^1.0 - version: 1.0.0(eslint@9.37.0)(typescript@5.9.3) - '@eslint/js': - specifier: ^9.37 - version: 9.37.0 - '@tanstack/eslint-plugin-query': - specifier: ^5 - version: 5.68.0(eslint@9.37.0)(typescript@5.9.3) - eslint: - specifier: ^9.37 - version: 9.37.0 - eslint-config-prettier: - specifier: ^10 - version: 10.1.1(eslint@9.37.0) - eslint-plugin-mdx: - specifier: ^3 - version: 3.6.2(eslint@9.37.0) - eslint-plugin-prettier: - specifier: ^5 - version: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@10.1.1(eslint@9.37.0))(eslint@9.37.0)(prettier@3.5.3) - eslint-plugin-react: - specifier: ^7 - version: 7.37.4(eslint@9.37.0) - eslint-plugin-react-hooks: - specifier: ^7 - version: 7.0.0(eslint@9.37.0) - eslint-plugin-simple-import-sort: - specifier: ^12 - version: 12.1.1(eslint@9.37.0) - eslint-plugin-unused-imports: - specifier: ^4 - version: 4.1.4(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0) - prettier: - specifier: ^3 - version: 3.5.3 - typescript-eslint: - specifier: ^8.46 - version: 8.46.1(eslint@9.37.0)(typescript@5.9.3) - devDependencies: - '@changesets/cli': - specifier: ^2.29 - version: 2.29.7(@types/node@22.18.8) - '@types/eslint': - specifier: ^9.6 - version: 9.6.1 - '@types/eslint__js': - specifier: ^9.14 - version: 9.14.0 - '@typescript-eslint/rule-tester': - specifier: ^8.46 - version: 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/utils': - specifier: ^8.46 - version: 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@vitest/coverage-v8': - specifier: '3.2' - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.8)(yaml@2.8.1)) - eslint-plugin-eslint-plugin: - specifier: ^7.0 - version: 7.0.0(eslint@9.37.0) - husky: - specifier: ^9.1 - version: 9.1.7 - lint-staged: - specifier: ^16.2.4 - version: 16.2.4 - typescript: - specifier: ^5.9 - version: 5.9.3 - vite: - specifier: ^7.1 - version: 7.1.11(@types/node@22.18.8)(yaml@2.8.1) - vite-plugin-dts: - specifier: ^4.5 - version: 4.5.3(@types/node@22.18.8)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@22.18.8)(yaml@2.8.1)) - vitest: - specifier: ^3.2 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.8)(yaml@2.8.1) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.4': - resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.10': - resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/runtime@7.26.10': - resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.4': - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.10': - resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} - engines: {node: '>=18'} - - '@changesets/apply-release-plan@7.0.13': - resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==} - - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} - - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - - '@changesets/cli@2.29.7': - resolution: {integrity: sha512-R7RqWoaksyyKXbKXBTbT4REdy22yH81mcFK6sWtqSanxUCbUi9Uf+6aqxZtDQouIqPdem2W56CdxXgsxdq7FLQ==} - hasBin: true - - '@changesets/config@3.1.1': - resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} - - '@changesets/get-release-plan@4.0.13': - resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.1': - resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} - - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - - '@changesets/read@0.6.5': - resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} - - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} - - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - - '@devup-ui/eslint-plugin@1.0.0': - resolution: {integrity: sha512-nbafyA/qIYOQjBt+0iNbQvP/ph6Hc360y6OV4Okj+Pj/A4B9OdT/ujeTmv4FVXoDMkhlAexeYJG3AzXnqvw0/A==} - - '@esbuild/aix-ppc64@0.25.11': - resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.11': - resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.11': - resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.11': - resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.11': - resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.11': - resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.11': - resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.11': - resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.11': - resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.11': - resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.11': - resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.11': - resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.11': - resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.11': - resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.11': - resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.11': - resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.11': - resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.11': - resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.11': - resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.11': - resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.11': - resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.25.11': - resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.25.11': - resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.11': - resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.11': - resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.11': - resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.4.0': - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.37.0': - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.0': - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} - engines: {node: '>=18.18'} - - '@inquirer/external-editor@1.0.2': - resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - - '@microsoft/api-extractor-model@7.30.4': - resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==} - - '@microsoft/api-extractor@7.52.1': - resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==} - hasBin: true - - '@microsoft/tsdoc-config@0.17.1': - resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} - - '@microsoft/tsdoc@0.15.1': - resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@npmcli/config@8.3.4': - resolution: {integrity: sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/git@5.0.8': - resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/map-workspaces@3.0.6': - resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@5.2.1': - resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/promise-spawn@7.0.2': - resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.1.2': - resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.52.5': - resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.52.5': - resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.52.5': - resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.52.5': - resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.52.5': - resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.52.5': - resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.52.5': - resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.52.5': - resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loong64-gnu@4.52.5': - resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.52.5': - resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.52.5': - resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.52.5': - resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.52.5': - resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openharmony-arm64@4.52.5': - resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.52.5': - resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.52.5': - resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.52.5': - resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.52.5': - resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} - cpu: [x64] - os: [win32] - - '@rushstack/node-core-library@5.12.0': - resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.5.3': - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - - '@rushstack/terminal@0.15.1': - resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@4.23.6': - resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==} - - '@tanstack/eslint-plugin-query@5.68.0': - resolution: {integrity: sha512-w/+y5LILV1GTWBB2R/lKfUzgocKXU1B7O6jipLUJhmxCKPmJFy5zpfR1Vx7c6yCEsQoKcTbhuR/tIy+1sIGaiA==} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - - '@types/chai@5.2.2': - resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} - - '@types/concat-stream@2.0.3': - resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - - '@types/eslint__js@9.14.0': - resolution: {integrity: sha512-s0jepCjOJWB/GKcuba4jISaVpBudw3ClXJ3fUK4tugChUMQsp6kSwuA8Dcx6wFd/JsJqcY8n4rEpa5RTHs5ypA==} - deprecated: This is a stub types definition. @eslint/js provides its own type definitions, so you do not need this installed. - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/is-empty@1.2.3': - resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@22.18.8': - resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} - - '@types/supports-color@8.1.3': - resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@typescript-eslint/eslint-plugin@8.46.1': - resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.46.1 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/parser@8.46.1': - resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.46.1': - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/rule-tester@8.46.1': - resolution: {integrity: sha512-p1Dm7I6YrAM38bpBaDH30cEYjdrjikvAjxgj2npIZGJlhlyef/LGZtGqP6qbDdbH8D4kTln1psvW35lNccvn6Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/scope-manager@8.46.1': - resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.46.1': - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/type-utils@8.46.1': - resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.46.1': - resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.46.1': - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@8.46.1': - resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@8.46.1': - resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@vitest/coverage-v8@3.2.4': - resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} - peerDependencies: - '@vitest/browser': 3.2.4 - vitest: 3.2.4 - peerDependenciesMeta: - '@vitest/browser': - optional: true - - '@vitest/expect@3.2.4': - resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - - '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - - '@vitest/spy@3.2.4': - resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - - '@vitest/utils@3.2.4': - resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - - '@volar/language-core@2.4.12': - resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==} - - '@volar/source-map@2.4.12': - resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==} - - '@volar/typescript@2.4.12': - resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==} - - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@7.1.1: - resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} - engines: {node: '>=18'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-v8-to-istanbul@0.3.5: - resolution: {integrity: sha512-9SdXjNheSiE8bALAQCQQuT6fgQaoxJh7IRYrRGZ8/9nv8WhJeC1aXAwN8TbaOssGOukUvyvnkgD9+Yuykvl1aA==} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - baseline-browser-mapping@2.8.16: - resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} - hasBin: true - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.26.3: - resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - caniuse-lite@1.0.30001751: - resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} - - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - ci-info@4.3.0: - resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} - engines: {node: '>=8'} - - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - - cli-truncate@5.1.0: - resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==} - engines: {node: '>=20'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - commander@14.0.1: - resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} - engines: {node: '>=20'} - - compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.1: - resolution: {integrity: sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.5.237: - resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} - - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - esbuild@0.25.11: - resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@10.1.1: - resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-mdx@3.6.2: - resolution: {integrity: sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - remark-lint-file-extension: '*' - peerDependenciesMeta: - remark-lint-file-extension: - optional: true - - eslint-plugin-eslint-plugin@7.0.0: - resolution: {integrity: sha512-EgiW9zf4PbqA+yN9T6Z8bHx46+fWtAIXFrYkL4nSTnI84LnTKmzjh+cIJaVAyFVZveKUSG8LcVe1suGG78qZPw==} - engines: {node: ^20.19.0 || ^22.13.1 || >=24.0.0} - peerDependencies: - eslint: '>=9.0.0' - - eslint-plugin-mdx@3.6.2: - resolution: {integrity: sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - - eslint-plugin-prettier@5.2.3: - resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} - 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 - - eslint-plugin-react-hooks@7.0.0: - resolution: {integrity: sha512-fNXaOwvKwq2+pXiRpXc825Vd63+KM4DLL40Rtlycb8m7fYpp6efrTp1sa6ZbP/Ap58K2bEKFXRmhURE+CJAQWw==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react@7.37.4: - resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-simple-import-sort@12.1.1: - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} - peerDependencies: - eslint: '>=5.0.0' - - eslint-plugin-unused-imports@4.1.4: - resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 - eslint: ^9.0.0 || ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - 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.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - expect-type@1.2.2: - resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} - engines: {node: '>=12.0.0'} - - exsolve@1.0.4: - resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} - engines: {node: '>=14.14'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} - engines: {node: '>=18'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - human-id@4.1.1: - resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} - hasBin: true - - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - - iconv-lite@0.7.0: - resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} - engines: {node: '>=0.10.0'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - ignore@6.0.2: - resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} - engines: {node: '>= 4'} - - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-empty@1.2.0: - resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} - - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lint-staged@16.2.4: - resolution: {integrity: sha512-Pkyr/wd90oAyXk98i/2KwfkIhoYQUMtss769FIT9hFM5ogYZwrk+GRE46yKXSg2ZGhcJ1p38Gf5gmI5Ohjg2yg==} - engines: {node: '>=20.17'} - hasBin: true - - listr2@9.0.4: - resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==} - engines: {node: '>=20.0.0'} - - load-plugin@6.0.3: - resolution: {integrity: sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==} - - local-pkg@1.1.1: - resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - - loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} - - micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - nano-spawn@2.0.0: - resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} - engines: {node: '>=20.17'} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-releases@2.0.25: - resolution: {integrity: sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==} - - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - - 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} - - 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} - - npm-package-arg@11.0.3: - resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-pick-manifest@9.1.0: - resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} - engines: {node: ^16.14.0 || >=18.0.0} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.1.0: - resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} - engines: {node: '>=14'} - hasBin: true - - proc-log@4.2.0: - resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - quansync@0.2.10: - resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - 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} - - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - remark-mdx@3.1.1: - resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - 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@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - - rollup@4.52.5: - resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@7.1.2: - resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} - engines: {node: '>=18'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - - 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-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - - 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@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - string-width@8.1.0: - resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} - engines: {node: '>=20'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - 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-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@3.1.0: - resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} - engines: {node: ^14.18.0 || >=16.0.0} - - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} - engines: {node: ^14.18.0 || >=16.0.0} - - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - - tinyspy@4.0.4: - resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} - engines: {node: '>=14.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - typescript-eslint@8.46.1: - resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - unified-engine@11.2.2: - resolution: {integrity: sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unist-util-inspect@8.1.0: - resolution: {integrity: sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - - vfile-reporter@8.1.1: - resolution: {integrity: sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==} - - vfile-sort@4.0.0: - resolution: {integrity: sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==} - - vfile-statistics@3.0.0: - resolution: {integrity: sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite-plugin-dts@4.5.3: - resolution: {integrity: sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA==} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@7.1.11: - resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - 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'} - - 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.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} - engines: {node: '>= 14.6'} - hasBin: true - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - - zod@4.1.12: - resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.28.4': {} - - '@babel/core@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.3': - dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.4 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - - '@babel/parser@7.26.10': - dependencies: - '@babel/types': 7.26.10 - - '@babel/parser@7.28.4': - dependencies: - '@babel/types': 7.28.4 - - '@babel/runtime@7.26.10': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - - '@babel/traverse@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.10': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.28.4': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@bcoe/v8-coverage@1.0.2': {} - - '@changesets/apply-release-plan@7.0.13': - dependencies: - '@changesets/config': 3.1.1 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.7.1 - - '@changesets/assemble-release-plan@6.0.9': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.7.1 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/cli@2.29.7(@types/node@22.18.8)': - dependencies: - '@changesets/apply-release-plan': 7.0.13 - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.1 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.13 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.2(@types/node@22.18.8) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - ci-info: 3.9.0 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - p-limit: 2.3.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.7.1 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.1': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/logger': 0.1.1 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.3': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.7.1 - - '@changesets/get-release-plan@4.0.13': - dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.1': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 3.14.1 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.5': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.1 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.1 - prettier: 2.8.8 - - '@devup-ui/eslint-plugin@1.0.0(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - typescript-eslint: 8.46.1(eslint@9.37.0)(typescript@5.9.3) - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@esbuild/aix-ppc64@0.25.11': - optional: true - - '@esbuild/android-arm64@0.25.11': - optional: true - - '@esbuild/android-arm@0.25.11': - optional: true - - '@esbuild/android-x64@0.25.11': - optional: true - - '@esbuild/darwin-arm64@0.25.11': - optional: true - - '@esbuild/darwin-x64@0.25.11': - optional: true - - '@esbuild/freebsd-arm64@0.25.11': - optional: true - - '@esbuild/freebsd-x64@0.25.11': - optional: true - - '@esbuild/linux-arm64@0.25.11': - optional: true - - '@esbuild/linux-arm@0.25.11': - optional: true - - '@esbuild/linux-ia32@0.25.11': - optional: true - - '@esbuild/linux-loong64@0.25.11': - optional: true - - '@esbuild/linux-mips64el@0.25.11': - optional: true - - '@esbuild/linux-ppc64@0.25.11': - optional: true - - '@esbuild/linux-riscv64@0.25.11': - optional: true - - '@esbuild/linux-s390x@0.25.11': - optional: true - - '@esbuild/linux-x64@0.25.11': - optional: true - - '@esbuild/netbsd-arm64@0.25.11': - optional: true - - '@esbuild/netbsd-x64@0.25.11': - optional: true - - '@esbuild/openbsd-arm64@0.25.11': - optional: true - - '@esbuild/openbsd-x64@0.25.11': - optional: true - - '@esbuild/openharmony-arm64@0.25.11': - optional: true - - '@esbuild/sunos-x64@0.25.11': - optional: true - - '@esbuild/win32-arm64@0.25.11': - optional: true - - '@esbuild/win32-ia32@0.25.11': - optional: true - - '@esbuild/win32-x64@0.25.11': - optional: true - - '@eslint-community/eslint-utils@4.5.1(eslint@9.37.0)': - dependencies: - eslint: 9.37.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0)': - dependencies: - eslint: 9.37.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/config-array@0.21.0': - dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.4.0': - dependencies: - '@eslint/core': 0.16.0 - - '@eslint/core@0.16.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.37.0': {} - - '@eslint/object-schema@2.1.6': {} - - '@eslint/plugin-kit@0.4.0': - dependencies: - '@eslint/core': 0.16.0 - levn: 0.4.1 - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} - - '@inquirer/external-editor@1.0.2(@types/node@22.18.8)': - dependencies: - chardet: 2.1.0 - iconv-lite: 0.7.0 - optionalDependencies: - '@types/node': 22.18.8 - - '@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': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.31 - - '@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 - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.26.10 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.26.10 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - - '@microsoft/api-extractor-model@7.30.4(@types/node@22.18.8)': - dependencies: - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.12.0(@types/node@22.18.8) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.52.1(@types/node@22.18.8)': - dependencies: - '@microsoft/api-extractor-model': 7.30.4(@types/node@22.18.8) - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.12.0(@types/node@22.18.8) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.1(@types/node@22.18.8) - '@rushstack/ts-command-line': 4.23.6(@types/node@22.18.8) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.10 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.17.1': - dependencies: - '@microsoft/tsdoc': 0.15.1 - ajv: 8.12.0 - jju: 1.4.0 - resolve: 1.22.10 - - '@microsoft/tsdoc@0.15.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.19.1 - - '@npmcli/config@8.3.4': - dependencies: - '@npmcli/map-workspaces': 3.0.6 - '@npmcli/package-json': 5.2.1 - ci-info: 4.3.0 - ini: 4.1.3 - nopt: 7.2.1 - proc-log: 4.2.0 - semver: 7.7.1 - walk-up-path: 3.0.1 - transitivePeerDependencies: - - bluebird - - '@npmcli/git@5.0.8': - dependencies: - '@npmcli/promise-spawn': 7.0.2 - ini: 4.1.3 - lru-cache: 10.4.3 - npm-pick-manifest: 9.1.0 - proc-log: 4.2.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.7.1 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - - '@npmcli/map-workspaces@3.0.6': - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.5 - minimatch: 9.0.5 - read-package-json-fast: 3.0.2 - - '@npmcli/name-from-folder@2.0.0': {} - - '@npmcli/package-json@5.2.1': - dependencies: - '@npmcli/git': 5.0.8 - glob: 10.4.5 - hosted-git-info: 7.0.2 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 6.0.2 - proc-log: 4.2.0 - semver: 7.7.1 - transitivePeerDependencies: - - bluebird - - '@npmcli/promise-spawn@7.0.2': - dependencies: - which: 4.0.0 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.1.2': {} - - '@pkgr/core@0.2.9': {} - - '@rollup/pluginutils@5.1.4(rollup@4.52.5)': - dependencies: - '@types/estree': 1.0.7 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.52.5 - - '@rollup/rollup-android-arm-eabi@4.52.5': - optional: true - - '@rollup/rollup-android-arm64@4.52.5': - optional: true - - '@rollup/rollup-darwin-arm64@4.52.5': - optional: true - - '@rollup/rollup-darwin-x64@4.52.5': - optional: true - - '@rollup/rollup-freebsd-arm64@4.52.5': - optional: true - - '@rollup/rollup-freebsd-x64@4.52.5': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.52.5': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.52.5': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.52.5': - optional: true - - '@rollup/rollup-linux-x64-musl@4.52.5': - optional: true - - '@rollup/rollup-openharmony-arm64@4.52.5': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.52.5': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.52.5': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.52.5': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.52.5': - optional: true - - '@rushstack/node-core-library@5.12.0(@types/node@22.18.8)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.0 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.18.8 - - '@rushstack/rig-package@0.5.3': - dependencies: - resolve: 1.22.10 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.15.1(@types/node@22.18.8)': - dependencies: - '@rushstack/node-core-library': 5.12.0(@types/node@22.18.8) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.18.8 - - '@rushstack/ts-command-line@4.23.6(@types/node@22.18.8)': - dependencies: - '@rushstack/terminal': 0.15.1(@types/node@22.18.8) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@tanstack/eslint-plugin-query@5.68.0(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - eslint: 9.37.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@types/argparse@1.0.38': {} - - '@types/chai@5.2.2': - dependencies: - '@types/deep-eql': 4.0.2 - - '@types/concat-stream@2.0.3': - dependencies: - '@types/node': 22.18.8 - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/deep-eql@4.0.2': {} - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - - '@types/eslint__js@9.14.0': - dependencies: - '@eslint/js': 9.37.0 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.8 - - '@types/estree@1.0.6': {} - - '@types/estree@1.0.7': {} - - '@types/estree@1.0.8': {} - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/is-empty@1.2.3': {} - - '@types/json-schema@7.0.15': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/ms@2.1.0': {} - - '@types/node@12.20.55': {} - - '@types/node@22.18.8': - dependencies: - undici-types: 6.21.0 - - '@types/supports-color@8.1.3': {} - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 - eslint: 9.37.0 - graphemer: 1.4.0 - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.3 - eslint: 9.37.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/rule-tester@8.46.1(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - ajv: 6.12.6 - eslint: 9.37.0 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/scope-manager@8.46.1': - dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - - '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - debug: 4.4.3 - eslint: 9.37.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.46.1': {} - - '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.46.1(eslint@9.37.0)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - eslint: 9.37.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.46.1': - dependencies: - '@typescript-eslint/types': 8.46.1 - eslint-visitor-keys: 4.2.1 - - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.8)(yaml@2.8.1))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 1.0.2 - ast-v8-to-istanbul: 0.3.5 - debug: 4.4.3 - 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.17 - magicast: 0.3.5 - std-env: 3.9.0 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.8)(yaml@2.8.1) - transitivePeerDependencies: - - supports-color - - '@vitest/expect@3.2.4': - dependencies: - '@types/chai': 5.2.2 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.2.0 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.2.4(vite@7.1.11(@types/node@22.18.8)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 7.1.11(@types/node@22.18.8)(yaml@2.8.1) - - '@vitest/pretty-format@3.2.4': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.2.4': - dependencies: - '@vitest/utils': 3.2.4 - pathe: 2.0.3 - strip-literal: 3.1.0 - - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.17 - pathe: 2.0.3 - - '@vitest/spy@3.2.4': - dependencies: - tinyspy: 4.0.4 - - '@vitest/utils@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 - loupe: 3.2.1 - tinyrainbow: 2.0.0 - - '@volar/language-core@2.4.12': - dependencies: - '@volar/source-map': 2.4.12 - - '@volar/source-map@2.4.12': {} - - '@volar/typescript@2.4.12': - dependencies: - '@volar/language-core': 2.4.12 - path-browserify: 1.0.1 - vscode-uri: 3.1.0 - - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.26.10 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - '@vue/language-core@2.2.0(typescript@5.9.3)': - dependencies: - '@volar/language-core': 2.4.12 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 0.4.14 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.9.3 - - '@vue/shared@3.5.13': {} - - abbrev@2.0.0: {} - - acorn-jsx@5.3.2(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn@8.14.1: {} - - acorn@8.15.0: {} - - ajv-draft-04@1.0.0(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.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.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - alien-signals@0.4.14: {} - - ansi-colors@4.1.3: {} - - ansi-escapes@7.1.1: - dependencies: - environment: 1.1.0 - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - - array-union@2.1.0: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - assertion-error@2.0.1: {} - - ast-v8-to-istanbul@0.3.5: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - estree-walker: 3.0.3 - js-tokens: 9.0.1 - - async-function@1.0.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - baseline-browser-mapping@2.8.16: {} - - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - - 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@4.26.3: - dependencies: - baseline-browser-mapping: 2.8.16 - caniuse-lite: 1.0.30001751 - electron-to-chromium: 1.5.237 - node-releases: 2.0.25 - update-browserslist-db: 1.1.3(browserslist@4.26.3) - - buffer-from@1.1.2: {} - - cac@6.7.14: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - caniuse-lite@1.0.30001751: {} - - ccount@2.0.1: {} - - chai@5.2.0: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - - chardet@2.1.0: {} - - check-error@2.1.1: {} - - ci-info@3.9.0: {} - - ci-info@4.3.0: {} - - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - - cli-truncate@5.1.0: - dependencies: - slice-ansi: 7.1.2 - string-width: 8.1.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colorette@2.0.20: {} - - commander@14.0.1: {} - - compare-versions@6.1.1: {} - - concat-map@0.0.1: {} - - concat-stream@2.0.0: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - - confbox@0.1.8: {} - - confbox@0.2.1: {} - - convert-source-map@2.0.0: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - de-indent@1.0.2: {} - - debug@4.4.0: - dependencies: - ms: 2.1.3 - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - decode-named-character-reference@1.2.0: - dependencies: - character-entities: 2.0.2 - - deep-eql@5.0.2: {} - - deep-is@0.1.4: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - dequal@2.0.3: {} - - detect-indent@6.1.0: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - diff@5.2.0: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.5.237: {} - - emoji-regex@10.5.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - - entities@4.5.0: {} - - environment@1.1.0: {} - - err-code@2.0.3: {} - - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - - es-module-lexer@1.7.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - esbuild@0.25.11: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.11 - '@esbuild/android-arm': 0.25.11 - '@esbuild/android-arm64': 0.25.11 - '@esbuild/android-x64': 0.25.11 - '@esbuild/darwin-arm64': 0.25.11 - '@esbuild/darwin-x64': 0.25.11 - '@esbuild/freebsd-arm64': 0.25.11 - '@esbuild/freebsd-x64': 0.25.11 - '@esbuild/linux-arm': 0.25.11 - '@esbuild/linux-arm64': 0.25.11 - '@esbuild/linux-ia32': 0.25.11 - '@esbuild/linux-loong64': 0.25.11 - '@esbuild/linux-mips64el': 0.25.11 - '@esbuild/linux-ppc64': 0.25.11 - '@esbuild/linux-riscv64': 0.25.11 - '@esbuild/linux-s390x': 0.25.11 - '@esbuild/linux-x64': 0.25.11 - '@esbuild/netbsd-arm64': 0.25.11 - '@esbuild/netbsd-x64': 0.25.11 - '@esbuild/openbsd-arm64': 0.25.11 - '@esbuild/openbsd-x64': 0.25.11 - '@esbuild/openharmony-arm64': 0.25.11 - '@esbuild/sunos-x64': 0.25.11 - '@esbuild/win32-arm64': 0.25.11 - '@esbuild/win32-ia32': 0.25.11 - '@esbuild/win32-x64': 0.25.11 - - escalade@3.2.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@10.1.1(eslint@9.37.0): - dependencies: - eslint: 9.37.0 - - eslint-mdx@3.6.2(eslint@9.37.0): - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint: 9.37.0 - espree: 10.4.0 - estree-util-visit: 2.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - synckit: 0.11.11 - unified: 11.0.5 - unified-engine: 11.2.2 - unist-util-visit: 5.0.0 - uvu: 0.5.6 - vfile: 6.0.3 - transitivePeerDependencies: - - bluebird - - supports-color - - eslint-plugin-eslint-plugin@7.0.0(eslint@9.37.0): - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.37.0) - eslint: 9.37.0 - estraverse: 5.3.0 - - eslint-plugin-mdx@3.6.2(eslint@9.37.0): - dependencies: - eslint: 9.37.0 - eslint-mdx: 3.6.2(eslint@9.37.0) - mdast-util-from-markdown: 2.0.2 - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - synckit: 0.11.11 - unified: 11.0.5 - vfile: 6.0.3 - transitivePeerDependencies: - - bluebird - - remark-lint-file-extension - - supports-color - - eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@10.1.1(eslint@9.37.0))(eslint@9.37.0)(prettier@3.5.3): - dependencies: - eslint: 9.37.0 - prettier: 3.5.3 - prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.1(eslint@9.37.0) - - eslint-plugin-react-hooks@7.0.0(eslint@9.37.0): - dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.26.10 - eslint: 9.37.0 - hermes-parser: 0.25.1 - zod: 4.1.12 - zod-validation-error: 4.0.2(zod@4.1.12) - transitivePeerDependencies: - - supports-color - - eslint-plugin-react@7.37.4(eslint@9.37.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.37.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-plugin-simple-import-sort@12.1.1(eslint@9.37.0): - dependencies: - eslint: 9.37.0 - - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0): - dependencies: - eslint: 9.37.0 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3) - - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@9.37.0: - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 - '@eslint/plugin-kit': 0.4.0 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.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.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - transitivePeerDependencies: - - supports-color - - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - - esprima@4.0.1: {} - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-util-is-identifier-name@3.0.0: {} - - estree-util-visit@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.3 - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - esutils@2.0.3: {} - - eventemitter3@5.0.1: {} - - expect-type@1.2.2: {} - - exsolve@1.0.4: {} - - extend@3.0.2: {} - - extendable-error@0.1.7: {} - - fast-deep-equal@3.1.3: {} - - fast-diff@1.3.0: {} - - fast-glob@3.3.3: - 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.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - 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 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - - flatted@3.3.3: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - fs-extra@11.3.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - gensync@1.0.0-beta.2: {} - - get-east-asian-width@1.4.0: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - 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.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - globals@14.0.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - gopd@1.2.0: {} - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - he@1.2.0: {} - - hermes-estree@0.25.1: {} - - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 - - html-escaper@2.0.2: {} - - human-id@4.1.1: {} - - husky@9.1.7: {} - - iconv-lite@0.7.0: - dependencies: - safer-buffer: 2.1.2 - - ignore@5.3.2: {} - - ignore@6.0.2: {} - - ignore@7.0.5: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - import-meta-resolve@4.2.0: {} - - imurmurhash@0.1.4: {} - - inherits@2.0.4: {} - - ini@4.1.3: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-arrayish@0.2.1: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-decimal@2.0.1: {} - - is-empty@1.2.0: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-fullwidth-code-point@3.0.0: {} - - is-fullwidth-code-point@5.1.0: - dependencies: - get-east-asian-width: 1.4.0 - - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-hexadecimal@2.0.1: {} - - is-map@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-plain-obj@4.1.0: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-windows@1.0.2: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isexe@3.1.1: {} - - istanbul-lib-coverage@3.2.2: {} - - 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.4.3 - 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 - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jju@1.4.0: {} - - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@3.0.2: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@2.2.3: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kleur@4.1.5: {} - - kolorist@1.8.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lines-and-columns@2.0.4: {} - - lint-staged@16.2.4: - dependencies: - commander: 14.0.1 - listr2: 9.0.4 - micromatch: 4.0.8 - nano-spawn: 2.0.0 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.8.1 - - listr2@9.0.4: - dependencies: - cli-truncate: 5.1.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 6.1.0 - rfdc: 1.4.1 - wrap-ansi: 9.0.2 - - load-plugin@6.0.3: - dependencies: - '@npmcli/config': 8.3.4 - import-meta-resolve: 4.2.0 - transitivePeerDependencies: - - bluebird - - local-pkg@1.1.1: - dependencies: - mlly: 1.7.4 - pkg-types: 2.1.0 - quansync: 0.2.10 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash.startcase@4.4.0: {} - - lodash@4.17.21: {} - - log-update@6.1.0: - dependencies: - ansi-escapes: 7.1.1 - cli-cursor: 5.0.0 - slice-ansi: 7.1.2 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.2 - - longest-streak@3.1.0: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - loupe@3.1.3: {} - - loupe@3.2.1: {} - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - magicast@0.3.5: - dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - source-map-js: 1.2.1 - - make-dir@4.0.0: - dependencies: - semver: 7.7.1 - - math-intrinsics@1.1.0: {} - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx@3.0.0: - dependencies: - mdast-util-from-markdown: 2.0.2 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - merge2@1.4.1: {} - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-mdx-expression@3.0.1: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-mdx-jsx@3.0.2: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - - micromark-extension-mdx-md@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-mdxjs-esm@3.0.0: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - - micromark-extension-mdxjs@3.0.0: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - micromark-extension-mdx-expression: 3.0.1 - micromark-extension-mdx-jsx: 3.0.2 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-mdx-expression@2.0.3: - dependencies: - '@types/estree': 1.0.8 - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.3 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.2.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-events-to-acorn@2.0.3: - dependencies: - '@types/estree': 1.0.8 - '@types/unist': 3.0.3 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.0 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mimic-function@5.0.1: {} - - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.11 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minipass@7.1.2: {} - - mlly@1.7.4: - dependencies: - acorn: 8.14.1 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.5.4 - - mri@1.2.0: {} - - ms@2.1.3: {} - - muggle-string@0.4.1: {} - - nano-spawn@2.0.0: {} - - nanoid@3.3.11: {} - - natural-compare@1.4.0: {} - - node-releases@2.0.25: {} - - nopt@7.2.1: - dependencies: - abbrev: 2.0.0 - - normalize-package-data@6.0.2: - dependencies: - hosted-git-info: 7.0.2 - semver: 7.7.1 - validate-npm-package-license: 3.0.4 - - npm-install-checks@6.3.0: - dependencies: - semver: 7.7.1 - - npm-normalize-package-bin@3.0.1: {} - - npm-package-arg@11.0.3: - dependencies: - hosted-git-info: 7.0.2 - proc-log: 4.2.0 - semver: 7.7.1 - validate-npm-package-name: 5.0.1 - - npm-pick-manifest@9.1.0: - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.3 - semver: 7.7.1 - - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - 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 - - outdent@0.5.0: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-filter@2.1.0: - dependencies: - p-map: 2.1.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@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-map@2.1.0: {} - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.10 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@7.1.1: - dependencies: - '@babel/code-frame': 7.27.1 - error-ex: 1.3.4 - json-parse-even-better-errors: 3.0.2 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 - - path-browserify@1.0.1: {} - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-type@4.0.0: {} - - pathe@2.0.3: {} - - pathval@2.0.0: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - picomatch@4.0.3: {} - - pidtree@0.6.0: {} - - pify@4.0.1: {} - - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - - pkg-types@2.1.0: - dependencies: - confbox: 0.2.1 - exsolve: 1.0.4 - pathe: 2.0.3 - - possible-typed-array-names@1.1.0: {} - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier@2.8.8: {} - - prettier@3.5.3: {} - - proc-log@4.2.0: {} - - promise-inflight@1.0.1: {} - - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - punycode@2.3.1: {} - - quansync@0.2.10: {} - - queue-microtask@1.2.3: {} - - react-is@16.13.1: {} - - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.2 - npm-normalize-package-bin: 3.0.1 - - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regenerator-runtime@0.14.1: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - remark-mdx@3.1.1: - dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - transitivePeerDependencies: - - supports-color - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-stringify@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.2 - unified: 11.0.5 - - require-from-string@2.0.2: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - - retry@0.12.0: {} - - reusify@1.1.0: {} - - rfdc@1.4.1: {} - - rollup@4.52.5: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.5 - '@rollup/rollup-android-arm64': 4.52.5 - '@rollup/rollup-darwin-arm64': 4.52.5 - '@rollup/rollup-darwin-x64': 4.52.5 - '@rollup/rollup-freebsd-arm64': 4.52.5 - '@rollup/rollup-freebsd-x64': 4.52.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 - '@rollup/rollup-linux-arm-musleabihf': 4.52.5 - '@rollup/rollup-linux-arm64-gnu': 4.52.5 - '@rollup/rollup-linux-arm64-musl': 4.52.5 - '@rollup/rollup-linux-loong64-gnu': 4.52.5 - '@rollup/rollup-linux-ppc64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-musl': 4.52.5 - '@rollup/rollup-linux-s390x-gnu': 4.52.5 - '@rollup/rollup-linux-x64-gnu': 4.52.5 - '@rollup/rollup-linux-x64-musl': 4.52.5 - '@rollup/rollup-openharmony-arm64': 4.52.5 - '@rollup/rollup-win32-arm64-msvc': 4.52.5 - '@rollup/rollup-win32-ia32-msvc': 4.52.5 - '@rollup/rollup-win32-x64-gnu': 4.52.5 - '@rollup/rollup-win32-x64-msvc': 4.52.5 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.2.1: {} - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safer-buffer@2.1.2: {} - - semver@6.3.1: {} - - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - - semver@7.7.1: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - 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 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - siginfo@2.0.0: {} - - signal-exit@4.1.0: {} - - slash@3.0.0: {} - - slice-ansi@7.1.2: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 5.1.0 - - source-map-js@1.2.1: {} - - source-map@0.6.1: {} - - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 - - spdx-license-ids@3.0.22: {} - - sprintf-js@1.0.3: {} - - stackback@0.0.2: {} - - std-env@3.9.0: {} - - string-argv@0.3.2: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string-width@6.1.0: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 10.5.0 - strip-ansi: 7.1.0 - - string-width@7.2.0: - dependencies: - emoji-regex: 10.5.0 - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.0 - - string-width@8.1.0: - dependencies: - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.0 - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-bom@3.0.0: {} - - strip-json-comments@3.1.1: {} - - strip-literal@3.1.0: - dependencies: - js-tokens: 9.0.1 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-color@9.4.0: {} - - supports-preserve-symlinks-flag@1.0.0: {} - - synckit@0.11.11: - dependencies: - '@pkgr/core': 0.2.9 - - synckit@0.9.2: - dependencies: - '@pkgr/core': 0.1.2 - tslib: 2.8.1 - - term-size@2.2.1: {} - - test-exclude@7.0.1: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 - minimatch: 9.0.5 - - tinybench@2.9.0: {} - - tinyexec@0.3.2: {} - - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - - tinypool@1.1.1: {} - - tinyrainbow@2.0.0: {} - - tinyspy@4.0.4: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - trough@2.2.0: {} - - ts-api-utils@2.1.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - - tslib@2.8.1: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@3.13.1: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typedarray@0.0.6: {} - - typescript-eslint@8.46.1(eslint@9.37.0)(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0)(typescript@5.9.3) - eslint: 9.37.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - typescript@5.8.2: {} - - typescript@5.9.3: {} - - ufo@1.5.4: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - undici-types@6.21.0: {} - - unified-engine@11.2.2: - dependencies: - '@types/concat-stream': 2.0.3 - '@types/debug': 4.1.12 - '@types/is-empty': 1.2.3 - '@types/node': 22.18.8 - '@types/unist': 3.0.3 - concat-stream: 2.0.0 - debug: 4.4.0 - extend: 3.0.2 - glob: 10.4.5 - ignore: 6.0.2 - is-empty: 1.2.0 - is-plain-obj: 4.1.0 - load-plugin: 6.0.3 - parse-json: 7.1.1 - trough: 2.2.0 - unist-util-inspect: 8.1.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - vfile-reporter: 8.1.1 - vfile-statistics: 3.0.0 - yaml: 2.8.1 - transitivePeerDependencies: - - bluebird - - supports-color - - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - - unist-util-inspect@8.1.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position-from-estree@2.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universalify@0.1.2: {} - - universalify@2.0.1: {} - - update-browserslist-db@1.1.3(browserslist@4.26.3): - dependencies: - browserslist: 4.26.3 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - util-deprecate@1.0.2: {} - - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@5.0.1: {} - - vfile-message@4.0.3: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile-reporter@8.1.1: - dependencies: - '@types/supports-color': 8.1.3 - string-width: 6.1.0 - supports-color: 9.4.0 - unist-util-stringify-position: 4.0.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - vfile-sort: 4.0.0 - vfile-statistics: 3.0.0 - - vfile-sort@4.0.0: - dependencies: - vfile: 6.0.3 - vfile-message: 4.0.3 - - vfile-statistics@3.0.0: - dependencies: - vfile: 6.0.3 - vfile-message: 4.0.3 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.3 - - vite-node@3.2.4(@types/node@22.18.8)(yaml@2.8.1): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 7.1.11(@types/node@22.18.8)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite-plugin-dts@4.5.3(@types/node@22.18.8)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@22.18.8)(yaml@2.8.1)): - dependencies: - '@microsoft/api-extractor': 7.52.1(@types/node@22.18.8) - '@rollup/pluginutils': 5.1.4(rollup@4.52.5) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.2.0(typescript@5.9.3) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 1.1.1 - magic-string: 0.30.17 - typescript: 5.9.3 - optionalDependencies: - vite: 7.1.11(@types/node@22.18.8)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite@7.1.11(@types/node@22.18.8)(yaml@2.8.1): - dependencies: - esbuild: 0.25.11 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.52.5 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 22.18.8 - fsevents: 2.3.3 - yaml: 2.8.1 - - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.8)(yaml@2.8.1): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.8)(yaml@2.8.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.2.0 - debug: 4.4.3 - expect-type: 1.2.2 - magic-string: 0.30.17 - pathe: 2.0.3 - picomatch: 4.0.2 - std-env: 3.9.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 7.1.11(@types/node@22.18.8)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@22.18.8)(yaml@2.8.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.18.8 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vscode-uri@3.1.0: {} - - walk-up-path@3.0.1: {} - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - which@4.0.0: - dependencies: - isexe: 3.1.1 - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrap-ansi@9.0.2: - dependencies: - ansi-styles: 6.2.1 - string-width: 7.2.0 - strip-ansi: 7.1.0 - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yaml@2.8.1: {} - - yocto-queue@0.1.0: {} - - zod-validation-error@4.0.2(zod@4.1.12): - dependencies: - zod: 4.1.12 - - zod@4.1.12: {} - - zwitch@2.0.4: {} diff --git a/src/__tests__/index.test.ts b/src/__tests__/index.test.ts index d5aa258..27e5d3e 100644 --- a/src/__tests__/index.test.ts +++ b/src/__tests__/index.test.ts @@ -1,16 +1,21 @@ -import * as index from '../index' -describe('export index', () => { - it('export', () => { - expect({ ...index }).toEqual({ - rules: expect.any(Object), - configs: { - recommended: expect.any(Object), - }, - default: { - configs: { - recommended: expect.any(Object), - }, - }, - }) - }) -}) +import { describe, expect, it } from 'bun:test' + +import * as index from '../index' + +describe('export index', () => { + it('should export rules object', () => { + expect(index.rules).toBeDefined() + expect(typeof index.rules).toBe('object') + }) + + it('should export configs with recommended', () => { + expect(index.configs).toBeDefined() + expect(index.configs.recommended).toBeDefined() + }) + + it('should export default with configs', () => { + expect(index.default).toBeDefined() + expect(index.default.configs).toBeDefined() + expect(index.default.configs.recommended).toBeDefined() + }) +}) diff --git a/src/configs/__tests__/__snapshots__/recommended.test.ts.snap b/src/configs/__tests__/__snapshots__/recommended.test.ts.snap deleted file mode 100644 index 23a55de..0000000 --- a/src/configs/__tests__/__snapshots__/recommended.test.ts.snap +++ /dev/null @@ -1,16840 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`recommended > export recommended config 1`] = ` -[ - { - "ignores": [ - "**/node_modules/", - "**/build/", - "**/storybook-static/", - "**/dist/", - "**/next-env.d.ts", - "**/out/", - "**/.next/", - "**/public/", - "**/.df/", - "**/df/", - "**/coverage/", - "**/target/", - "**/venv/", - "**/.venv/", - ".husky/", - "!**/src/**", - "!vite.config.ts", - "!**/.storybook/**", - "**/__snapshots__/", - "**/.cache/", - ], - }, - { - "plugins": { - "@devup-ui": { - "rules": { - "css-utils-literal-only": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "CSS utils should only be used with literal values.", - "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/css-utils-literal-only", - }, - "messages": { - "cssUtilsLiteralOnly": "CSS utils should only be used with literal values.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-duplicate-value": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "No duplicate value.", - "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-duplicate-value", - }, - "fixable": "code", - "messages": { - "duplicateValue": "Duplicate value found: {{value}}.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-useless-responsive": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "No useless responsive.", - "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-useless-responsive", - }, - "fixable": "code", - "messages": { - "uselessResponsive": "Responsive are useless. Remove them.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-useless-tailing-nulls": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "No useless tailing nulls.", - "url": "https://github.com/dev-five-git/devup-ui/tree/main/packages/eslint-plugin/src/rules/no-useless-tailing-nulls", - }, - "fixable": "code", - "messages": { - "uselessTailingNulls": "Trailing nulls are useless. Remove them.", - }, - "schema": [], - "type": "problem", - }, - }, - }, - }, - }, - "rules": { - "@devup-ui/css-utils-literal-only": "error", - "@devup-ui/no-duplicate-value": "error", - "@devup-ui/no-useless-responsive": "error", - "@devup-ui/no-useless-tailing-nulls": "error", - }, - }, - { - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - }, - }, - "plugins": { - "react": { - "configs": { - "all": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - }, - "plugins": [ - "react", - ], - "rules": { - "react/boolean-prop-naming": 2, - "react/button-has-type": 2, - "react/checked-requires-onchange-or-readonly": 2, - "react/default-props-match-prop-types": 2, - "react/destructuring-assignment": 2, - "react/display-name": 2, - "react/forbid-component-props": 2, - "react/forbid-dom-props": 2, - "react/forbid-elements": 2, - "react/forbid-foreign-prop-types": 2, - "react/forbid-prop-types": 2, - "react/forward-ref-uses-ref": 2, - "react/function-component-definition": 2, - "react/hook-use-state": 2, - "react/iframe-missing-sandbox": 2, - "react/jsx-boolean-value": 2, - "react/jsx-child-element-spacing": 2, - "react/jsx-closing-bracket-location": 2, - "react/jsx-closing-tag-location": 2, - "react/jsx-curly-brace-presence": 2, - "react/jsx-curly-newline": 2, - "react/jsx-curly-spacing": 2, - "react/jsx-equals-spacing": 2, - "react/jsx-filename-extension": 2, - "react/jsx-first-prop-new-line": 2, - "react/jsx-fragments": 2, - "react/jsx-handler-names": 2, - "react/jsx-indent": 2, - "react/jsx-indent-props": 2, - "react/jsx-key": 2, - "react/jsx-max-depth": 2, - "react/jsx-max-props-per-line": 2, - "react/jsx-newline": 2, - "react/jsx-no-bind": 2, - "react/jsx-no-comment-textnodes": 2, - "react/jsx-no-constructed-context-values": 2, - "react/jsx-no-duplicate-props": 2, - "react/jsx-no-leaked-render": 2, - "react/jsx-no-literals": 2, - "react/jsx-no-script-url": 2, - "react/jsx-no-target-blank": 2, - "react/jsx-no-undef": 2, - "react/jsx-no-useless-fragment": 2, - "react/jsx-one-expression-per-line": 2, - "react/jsx-pascal-case": 2, - "react/jsx-props-no-multi-spaces": 2, - "react/jsx-props-no-spread-multi": 2, - "react/jsx-props-no-spreading": 2, - "react/jsx-sort-props": 2, - "react/jsx-tag-spacing": 2, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/jsx-wrap-multilines": 2, - "react/no-access-state-in-setstate": 2, - "react/no-adjacent-inline-elements": 2, - "react/no-array-index-key": 2, - "react/no-arrow-function-lifecycle": 2, - "react/no-children-prop": 2, - "react/no-danger": 2, - "react/no-danger-with-children": 2, - "react/no-deprecated": 2, - "react/no-did-mount-set-state": 2, - "react/no-did-update-set-state": 2, - "react/no-direct-mutation-state": 2, - "react/no-find-dom-node": 2, - "react/no-invalid-html-attribute": 2, - "react/no-is-mounted": 2, - "react/no-multi-comp": 2, - "react/no-namespace": 2, - "react/no-object-type-as-default-prop": 2, - "react/no-redundant-should-component-update": 2, - "react/no-render-return-value": 2, - "react/no-set-state": 2, - "react/no-string-refs": 2, - "react/no-this-in-sfc": 2, - "react/no-typos": 2, - "react/no-unescaped-entities": 2, - "react/no-unknown-property": 2, - "react/no-unsafe": 2, - "react/no-unstable-nested-components": 2, - "react/no-unused-class-component-methods": 2, - "react/no-unused-prop-types": 2, - "react/no-unused-state": 2, - "react/no-will-update-set-state": 2, - "react/prefer-es6-class": 2, - "react/prefer-exact-props": 2, - "react/prefer-read-only-props": 2, - "react/prefer-stateless-function": 2, - "react/prop-types": 2, - "react/react-in-jsx-scope": 2, - "react/require-default-props": 2, - "react/require-optimization": 2, - "react/require-render-return": 2, - "react/self-closing-comp": 2, - "react/sort-comp": 2, - "react/sort-default-props": 2, - "react/sort-prop-types": 2, - "react/state-in-constructor": 2, - "react/static-property-placement": 2, - "react/style-prop-object": 2, - "react/void-dom-elements-no-children": 2, - }, - }, - "flat": { - "all": { - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - }, - }, - "plugins": { - "react": [Circular], - }, - "rules": { - "react/boolean-prop-naming": 2, - "react/button-has-type": 2, - "react/checked-requires-onchange-or-readonly": 2, - "react/default-props-match-prop-types": 2, - "react/destructuring-assignment": 2, - "react/display-name": 2, - "react/forbid-component-props": 2, - "react/forbid-dom-props": 2, - "react/forbid-elements": 2, - "react/forbid-foreign-prop-types": 2, - "react/forbid-prop-types": 2, - "react/forward-ref-uses-ref": 2, - "react/function-component-definition": 2, - "react/hook-use-state": 2, - "react/iframe-missing-sandbox": 2, - "react/jsx-boolean-value": 2, - "react/jsx-child-element-spacing": 2, - "react/jsx-closing-bracket-location": 2, - "react/jsx-closing-tag-location": 2, - "react/jsx-curly-brace-presence": 2, - "react/jsx-curly-newline": 2, - "react/jsx-curly-spacing": 2, - "react/jsx-equals-spacing": 2, - "react/jsx-filename-extension": 2, - "react/jsx-first-prop-new-line": 2, - "react/jsx-fragments": 2, - "react/jsx-handler-names": 2, - "react/jsx-indent": 2, - "react/jsx-indent-props": 2, - "react/jsx-key": 2, - "react/jsx-max-depth": 2, - "react/jsx-max-props-per-line": 2, - "react/jsx-newline": 2, - "react/jsx-no-bind": 2, - "react/jsx-no-comment-textnodes": 2, - "react/jsx-no-constructed-context-values": 2, - "react/jsx-no-duplicate-props": 2, - "react/jsx-no-leaked-render": 2, - "react/jsx-no-literals": 2, - "react/jsx-no-script-url": 2, - "react/jsx-no-target-blank": 2, - "react/jsx-no-undef": 2, - "react/jsx-no-useless-fragment": 2, - "react/jsx-one-expression-per-line": 2, - "react/jsx-pascal-case": 2, - "react/jsx-props-no-multi-spaces": 2, - "react/jsx-props-no-spread-multi": 2, - "react/jsx-props-no-spreading": 2, - "react/jsx-sort-props": 2, - "react/jsx-tag-spacing": 2, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/jsx-wrap-multilines": 2, - "react/no-access-state-in-setstate": 2, - "react/no-adjacent-inline-elements": 2, - "react/no-array-index-key": 2, - "react/no-arrow-function-lifecycle": 2, - "react/no-children-prop": 2, - "react/no-danger": 2, - "react/no-danger-with-children": 2, - "react/no-deprecated": 2, - "react/no-did-mount-set-state": 2, - "react/no-did-update-set-state": 2, - "react/no-direct-mutation-state": 2, - "react/no-find-dom-node": 2, - "react/no-invalid-html-attribute": 2, - "react/no-is-mounted": 2, - "react/no-multi-comp": 2, - "react/no-namespace": 2, - "react/no-object-type-as-default-prop": 2, - "react/no-redundant-should-component-update": 2, - "react/no-render-return-value": 2, - "react/no-set-state": 2, - "react/no-string-refs": 2, - "react/no-this-in-sfc": 2, - "react/no-typos": 2, - "react/no-unescaped-entities": 2, - "react/no-unknown-property": 2, - "react/no-unsafe": 2, - "react/no-unstable-nested-components": 2, - "react/no-unused-class-component-methods": 2, - "react/no-unused-prop-types": 2, - "react/no-unused-state": 2, - "react/no-will-update-set-state": 2, - "react/prefer-es6-class": 2, - "react/prefer-exact-props": 2, - "react/prefer-read-only-props": 2, - "react/prefer-stateless-function": 2, - "react/prop-types": 2, - "react/react-in-jsx-scope": 2, - "react/require-default-props": 2, - "react/require-optimization": 2, - "react/require-render-return": 2, - "react/self-closing-comp": 2, - "react/sort-comp": 2, - "react/sort-default-props": 2, - "react/sort-prop-types": 2, - "react/state-in-constructor": 2, - "react/static-property-placement": 2, - "react/style-prop-object": 2, - "react/void-dom-elements-no-children": 2, - }, - }, - "jsx-runtime": { - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - "jsxPragma": null, - }, - }, - "plugins": { - "react": [Circular], - }, - "rules": { - "react/jsx-uses-react": 0, - "react/react-in-jsx-scope": 0, - }, - }, - "recommended": [Circular], - }, - "jsx-runtime": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - "jsxPragma": null, - }, - "plugins": [ - "react", - ], - "rules": { - "react/jsx-uses-react": 0, - "react/react-in-jsx-scope": 0, - }, - }, - "recommended": { - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - }, - }, - "plugins": [ - "react", - ], - "rules": { - "react/display-name": 2, - "react/jsx-key": 2, - "react/jsx-no-comment-textnodes": 2, - "react/jsx-no-duplicate-props": 2, - "react/jsx-no-target-blank": 2, - "react/jsx-no-undef": 2, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/no-children-prop": 2, - "react/no-danger-with-children": 2, - "react/no-deprecated": 2, - "react/no-direct-mutation-state": 2, - "react/no-find-dom-node": 2, - "react/no-is-mounted": 2, - "react/no-render-return-value": 2, - "react/no-string-refs": 2, - "react/no-unescaped-entities": 2, - "react/no-unknown-property": 2, - "react/no-unsafe": 0, - "react/prop-types": 2, - "react/react-in-jsx-scope": 2, - "react/require-render-return": 2, - }, - }, - }, - "deprecatedRules": { - "jsx-sort-default-props": { - "create": [Function], - "meta": { - "deprecated": true, - "docs": { - "category": "Stylistic Issues", - "description": "Enforce defaultProps declarations alphabetical sorting", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md", - }, - "messages": { - "propsNotSorted": "Default prop types declarations should be sorted alphabetically", - }, - "replacedBy": [ - "sort-default-props", - ], - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreCase": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-space-before-closing": { - "create": [Function], - "meta": { - "deprecated": true, - "docs": { - "category": "Stylistic Issues", - "description": "Enforce spacing before closing bracket in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md", - }, - "fixable": "code", - "messages": { - "needSpaceBeforeClose": "A space is required before closing bracket", - "noSpaceBeforeClose": "A space is forbidden before closing bracket", - }, - "replacedBy": [ - "jsx-tag-spacing", - ], - "schema": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - }, - }, - "rules": { - "boolean-prop-naming": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforces consistent naming for boolean props", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md", - }, - "messages": { - "patternMismatch": "Prop name \`{{propName}}\` doesn’t match rule \`{{pattern}}\`", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "message": { - "minLength": 1, - "type": "string", - }, - "propTypeNames": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "rule": { - "default": "^(is|has)[A-Z]([A-Za-z0-9]?)+", - "minLength": 1, - "type": "string", - }, - "validateNested": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "button-has-type": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow usage of \`button\` elements without an explicit \`type\` attribute", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/button-has-type.md", - }, - "messages": { - "complexType": "The button type attribute must be specified by a static string or a trivial ternary expression", - "forbiddenValue": ""{{value}}" is an invalid value for button type attribute", - "invalidValue": ""{{value}}" is an invalid value for button type attribute", - "missingType": "Missing an explicit type attribute for button", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "button": { - "default": true, - "type": "boolean", - }, - "reset": { - "default": true, - "type": "boolean", - }, - "submit": { - "default": true, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "checked-requires-onchange-or-readonly": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Enforce using \`onChange\` or \`readonly\` attribute when \`checked\` is used", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/checked-requires-onchange-or-readonly.md", - }, - "messages": { - "exclusiveCheckedAttribute": "Use either \`checked\` or \`defaultChecked\`, but not both.", - "missingProperty": "\`checked\` should be used with either \`onChange\` or \`readOnly\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreExclusiveCheckedAttribute": { - "type": "boolean", - }, - "ignoreMissingProperties": { - "type": "boolean", - }, - }, - }, - ], - }, - }, - "default-props-match-prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Enforce all defaultProps have a corresponding non-required PropType", - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/default-props-match-prop-types.md", - }, - "messages": { - "defaultHasNoType": "defaultProp "{{name}}" has no corresponding propTypes declaration.", - "requiredHasDefault": "defaultProp "{{name}}" defined for isRequired propType.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowRequiredDefaults": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "destructuring-assignment": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce consistent usage of destructuring assignment of props, state, and context", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md", - }, - "fixable": "code", - "messages": { - "destructureInSignature": "Must destructure props in the function signature.", - "noDestructAssignment": "Must never use destructuring {{type}} assignment", - "noDestructContextInSFCArg": "Must never use destructuring context assignment in SFC argument", - "noDestructPropsInSFCArg": "Must never use destructuring props assignment in SFC argument", - "useDestructAssignment": "Must use destructuring {{type}} assignment", - }, - "schema": [ - { - "enum": [ - "always", - "never", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "destructureInSignature": { - "enum": [ - "always", - "ignore", - ], - "type": "string", - }, - "ignoreClassFields": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "display-name": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow missing displayName in a React component definition", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/display-name.md", - }, - "messages": { - "noContextDisplayName": "Context definition is missing display name", - "noDisplayName": "Component definition is missing display name", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkContextObjects": { - "type": "boolean", - }, - "ignoreTranspilerName": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "forbid-component-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow certain props on components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-component-props.md", - }, - "messages": { - "propIsForbidden": "Prop "{{prop}}" is forbidden on Components", - }, - "schema": [ - { - "properties": { - "forbid": { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "allowedFor": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "allowedForPatterns": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "message": { - "type": "string", - }, - "propName": { - "type": "string", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "disallowedFor", - ], - }, - { - "required": [ - "disallowedForPatterns", - ], - }, - ], - "properties": { - "disallowedFor": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "disallowedForPatterns": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "message": { - "type": "string", - }, - "propName": { - "type": "string", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "allowedFor": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "allowedForPatterns": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "message": { - "type": "string", - }, - "propNamePattern": { - "type": "string", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "disallowedFor", - ], - }, - { - "required": [ - "disallowedForPatterns", - ], - }, - ], - "properties": { - "disallowedFor": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "disallowedForPatterns": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "message": { - "type": "string", - }, - "propNamePattern": { - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "forbid-dom-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow certain props on DOM Nodes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-dom-props.md", - }, - "messages": { - "propIsForbidden": "Prop "{{prop}}" is forbidden on DOM Nodes", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "forbid": { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "properties": { - "disallowedFor": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "message": { - "type": "string", - }, - "propName": { - "type": "string", - }, - }, - "type": "object", - }, - ], - "minLength": 1, - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - }, - "forbid-elements": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow certain elements", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-elements.md", - }, - "messages": { - "forbiddenElement": "<{{element}}> is forbidden", - "forbiddenElement_message": "<{{element}}> is forbidden, {{message}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "forbid": { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "element": { - "type": "string", - }, - "message": { - "type": "string", - }, - }, - "required": [ - "element", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "forbid-foreign-prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow using another component's propTypes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-foreign-prop-types.md", - }, - "messages": { - "forbiddenPropType": "Using propTypes from another component is not safe because they may be removed in production builds", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowInPropTypes": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "forbid-prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow certain propTypes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-prop-types.md", - }, - "messages": { - "forbiddenPropType": "Prop type "{{target}}" is forbidden", - }, - "schema": [ - { - "additionalProperties": true, - "properties": { - "checkChildContextTypes": { - "type": "boolean", - }, - "checkContextTypes": { - "type": "boolean", - }, - "forbid": { - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "forward-ref-uses-ref": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Require all forwardRef components include a ref parameter", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forward-ref-uses-ref.md", - }, - "hasSuggestions": true, - "messages": { - "addRefParameter": "Add a ref parameter", - "missingRefParameter": "forwardRef is used with this component but no ref parameter is set", - "removeForwardRef": "Remove forwardRef wrapper", - }, - "schema": [], - "type": "suggestion", - }, - }, - "function-component-definition": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce a specific function type for function components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/function-component-definition.md", - }, - "fixable": "code", - "messages": { - "arrow-function": "Function component is not an arrow function", - "function-declaration": "Function component is not a function declaration", - "function-expression": "Function component is not a function expression", - }, - "schema": [ - { - "properties": { - "namedComponents": { - "anyOf": [ - { - "enum": [ - "function-declaration", - "arrow-function", - "function-expression", - ], - }, - { - "items": { - "enum": [ - "function-declaration", - "arrow-function", - "function-expression", - ], - "type": "string", - }, - "type": "array", - }, - ], - }, - "unnamedComponents": { - "anyOf": [ - { - "enum": [ - "arrow-function", - "function-expression", - ], - }, - { - "items": { - "enum": [ - "arrow-function", - "function-expression", - ], - "type": "string", - }, - "type": "array", - }, - ], - }, - }, - "type": "object", - }, - ], - }, - }, - "hook-use-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Ensure destructuring and symmetric naming of useState hook value and setter variables", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/hook-use-state.md", - }, - "hasSuggestions": true, - "messages": { - "suggestMemo": "Replace useState call with useMemo", - "suggestPair": "Destructure useState call into value + setter pair", - "useStateErrorMessage": "useState call is not destructured into value + setter pair", - "useStateErrorMessageOrAddOption": "useState call is not destructured into value + setter pair (you can allow destructuring by enabling "allowDestructuredState" option)", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowDestructuredState": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "iframe-missing-sandbox": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Enforce sandbox attribute on iframe elements", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/iframe-missing-sandbox.md", - }, - "messages": { - "attributeMissing": "An iframe element is missing a sandbox attribute", - "invalidCombination": "An iframe element defines a sandbox attribute with both allow-scripts and allow-same-origin which is invalid", - "invalidValue": "An iframe element defines a sandbox attribute with invalid value "{{ value }}"", - }, - "schema": [], - }, - }, - "jsx-boolean-value": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce boolean attributes notation in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-boolean-value.md", - }, - "fixable": "code", - "messages": { - "omitBoolean": "Value must be omitted for boolean attribute \`{{propName}}\`", - "omitPropAndBoolean": "Value must be omitted for \`false\` attribute: \`{{propName}}\`", - "setBoolean": "Value must be set for boolean attribute \`{{propName}}\`", - }, - "schema": { - "anyOf": [ - { - "additionalItems": false, - "items": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - "type": "array", - }, - { - "additionalItems": false, - "items": [ - { - "enum": [ - "always", - ], - }, - { - "additionalProperties": false, - "properties": { - "assumeUndefinedIsFalse": { - "type": "boolean", - }, - "never": { - "items": { - "minLength": 1, - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - { - "additionalItems": false, - "items": [ - { - "enum": [ - "never", - ], - }, - { - "additionalProperties": false, - "properties": { - "always": { - "items": { - "minLength": 1, - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "assumeUndefinedIsFalse": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - ], - }, - }, - }, - "jsx-child-element-spacing": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-child-element-spacing.md", - }, - "fixable": null, - "messages": { - "spacingAfterPrev": "Ambiguous spacing after previous element {{element}}", - "spacingBeforeNext": "Ambiguous spacing before next element {{element}}", - }, - "schema": [], - }, - }, - "jsx-closing-bracket-location": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce closing bracket location in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-bracket-location.md", - }, - "fixable": "code", - "messages": { - "bracketLocation": "The closing bracket must be {{location}}{{details}}", - }, - "schema": [ - { - "anyOf": [ - { - "enum": [ - "after-props", - "props-aligned", - "tag-aligned", - "line-aligned", - ], - }, - { - "additionalProperties": false, - "properties": { - "location": { - "enum": [ - "after-props", - "props-aligned", - "tag-aligned", - "line-aligned", - ], - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "nonEmpty": { - "enum": [ - "after-props", - "props-aligned", - "tag-aligned", - "line-aligned", - false, - ], - }, - "selfClosing": { - "enum": [ - "after-props", - "props-aligned", - "tag-aligned", - "line-aligned", - false, - ], - }, - }, - "type": "object", - }, - ], - }, - ], - }, - }, - "jsx-closing-tag-location": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce closing tag location for multiline JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-tag-location.md", - }, - "fixable": "whitespace", - "messages": { - "alignWithOpening": "Expected closing tag to be aligned with the line containing the opening tag", - "matchIndent": "Expected closing tag to match indentation of opening.", - "onOwnLine": "Closing tag of a multiline JSX expression must be on its own line.", - }, - "schema": [ - { - "anyOf": [ - { - "enum": [ - "tag-aligned", - "line-aligned", - ], - }, - { - "additionalProperties": false, - "properties": { - "location": { - "enum": [ - "tag-aligned", - "line-aligned", - ], - }, - }, - "type": "object", - }, - ], - }, - ], - }, - }, - "jsx-curly-brace-presence": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md", - }, - "fixable": "code", - "messages": { - "missingCurly": "Need to wrap this literal in a JSX expression.", - "unnecessaryCurly": "Curly braces are unnecessary here.", - }, - "schema": [ - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "children": { - "enum": [ - "always", - "never", - "ignore", - ], - }, - "propElementValues": { - "enum": [ - "always", - "never", - "ignore", - ], - }, - "props": { - "enum": [ - "always", - "never", - "ignore", - ], - }, - }, - "type": "object", - }, - { - "enum": [ - "always", - "never", - "ignore", - ], - }, - ], - }, - ], - }, - }, - "jsx-curly-newline": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce consistent linebreaks in curly braces in JSX attributes and expressions", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-newline.md", - }, - "fixable": "whitespace", - "messages": { - "expectedAfter": "Expected newline after '{'.", - "expectedBefore": "Expected newline before '}'.", - "unexpectedAfter": "Unexpected newline after '{'.", - "unexpectedBefore": "Unexpected newline before '}'.", - }, - "schema": [ - { - "anyOf": [ - { - "enum": [ - "consistent", - "never", - ], - }, - { - "additionalProperties": false, - "properties": { - "multiline": { - "enum": [ - "consistent", - "require", - "forbid", - ], - }, - "singleline": { - "enum": [ - "consistent", - "require", - "forbid", - ], - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "layout", - }, - }, - "jsx-curly-spacing": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-spacing.md", - }, - "fixable": "code", - "messages": { - "noNewlineAfter": "There should be no newline after '{{token}}'", - "noNewlineBefore": "There should be no newline before '{{token}}'", - "noSpaceAfter": "There should be no space after '{{token}}'", - "noSpaceBefore": "There should be no space before '{{token}}'", - "spaceNeededAfter": "A space is required after '{{token}}'", - "spaceNeededBefore": "A space is required before '{{token}}'", - }, - "schema": { - "definitions": { - "basicConfig": { - "properties": { - "allowMultiline": { - "type": "boolean", - }, - "spacing": { - "properties": { - "objectLiterals": { - "enum": [ - "always", - "never", - ], - }, - }, - "type": "object", - }, - "when": { - "enum": [ - "always", - "never", - ], - }, - }, - "type": "object", - }, - "basicConfigOrBoolean": { - "anyOf": [ - { - "$ref": "#/definitions/basicConfig", - }, - { - "type": "boolean", - }, - ], - }, - }, - "items": [ - { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#/definitions/basicConfig", - }, - { - "properties": { - "attributes": { - "$ref": "#/definitions/basicConfigOrBoolean", - }, - "children": { - "$ref": "#/definitions/basicConfigOrBoolean", - }, - }, - "type": "object", - }, - ], - }, - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - { - "additionalProperties": false, - "properties": { - "allowMultiline": { - "type": "boolean", - }, - "spacing": { - "properties": { - "objectLiterals": { - "enum": [ - "always", - "never", - ], - }, - }, - "type": "object", - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - }, - }, - "jsx-equals-spacing": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce or disallow spaces around equal signs in JSX attributes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-equals-spacing.md", - }, - "fixable": "code", - "messages": { - "needSpaceAfter": "A space is required after '='", - "needSpaceBefore": "A space is required before '='", - "noSpaceAfter": "There should be no space after '='", - "noSpaceBefore": "There should be no space before '='", - }, - "schema": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - }, - "jsx-filename-extension": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow file extensions that may contain JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-filename-extension.md", - }, - "messages": { - "extensionOnlyForJSX": "Only files containing JSX may use the extension '{{ext}}'", - "noJSXWithExtension": "JSX not allowed in files with extension '{{ext}}'", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "enum": [ - "always", - "as-needed", - ], - }, - "extensions": { - "items": { - "type": "string", - }, - "type": "array", - }, - "ignoreFilesWithoutCode": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-first-prop-new-line": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce proper position of the first property in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-first-prop-new-line.md", - }, - "fixable": "code", - "messages": { - "propOnNewLine": "Property should be placed on a new line", - "propOnSameLine": "Property should be placed on the same line as the component declaration", - }, - "schema": [ - { - "enum": [ - "always", - "never", - "multiline", - "multiline-multiprop", - "multiprop", - ], - }, - ], - }, - }, - "jsx-fragments": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce shorthand or standard form for React fragments", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-fragments.md", - }, - "fixable": "code", - "messages": { - "fragmentsNotSupported": "Fragments are only supported starting from React v16.2. Please disable the \`react/jsx-fragments\` rule in \`eslint\` settings or upgrade your version of React.", - "preferFragment": "Prefer fragment shorthand over {{react}}.{{fragment}}", - "preferPragma": "Prefer {{react}}.{{fragment}} over fragment shorthand", - }, - "schema": [ - { - "enum": [ - "syntax", - "element", - ], - }, - ], - }, - }, - "jsx-handler-names": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce event handler naming conventions in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-handler-names.md", - }, - "messages": { - "badHandlerName": "Handler function for {{propKey}} prop key must be a camelCase name beginning with '{{handlerPrefix}}' only", - "badPropKey": "Prop key for {{propValue}} must begin with '{{handlerPropPrefix}}'", - }, - "schema": [ - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "checkInlineFunction": { - "type": "boolean", - }, - "checkLocalVariables": { - "type": "boolean", - }, - "eventHandlerPrefix": { - "type": "string", - }, - "eventHandlerPropPrefix": { - "type": "string", - }, - "ignoreComponentNames": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "checkInlineFunction": { - "type": "boolean", - }, - "checkLocalVariables": { - "type": "boolean", - }, - "eventHandlerPrefix": { - "type": "string", - }, - "eventHandlerPropPrefix": { - "enum": [ - false, - ], - "type": "boolean", - }, - "ignoreComponentNames": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "checkInlineFunction": { - "type": "boolean", - }, - "checkLocalVariables": { - "type": "boolean", - }, - "eventHandlerPrefix": { - "enum": [ - false, - ], - "type": "boolean", - }, - "eventHandlerPropPrefix": { - "type": "string", - }, - "ignoreComponentNames": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "checkLocalVariables": { - "type": "boolean", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "checkInlineFunction": { - "type": "boolean", - }, - }, - "type": "object", - }, - { - "properties": { - "ignoreComponentNames": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - ], - }, - }, - "jsx-indent": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce JSX indentation", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent.md", - }, - "fixable": "whitespace", - "messages": { - "wrongIndent": "Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}.", - }, - "schema": [ - { - "anyOf": [ - { - "enum": [ - "tab", - ], - }, - { - "type": "integer", - }, - ], - }, - { - "additionalProperties": false, - "properties": { - "checkAttributes": { - "type": "boolean", - }, - "indentLogicalExpressions": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-indent-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce props indentation in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent-props.md", - }, - "fixable": "code", - "messages": { - "wrongIndent": "Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}.", - }, - "schema": [ - { - "anyOf": [ - { - "enum": [ - "tab", - "first", - ], - }, - { - "type": "integer", - }, - { - "properties": { - "ignoreTernaryOperator": { - "type": "boolean", - }, - "indentMode": { - "anyOf": [ - { - "enum": [ - "tab", - "first", - ], - }, - { - "type": "integer", - }, - ], - }, - }, - "type": "object", - }, - ], - }, - ], - }, - }, - "jsx-key": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow missing \`key\` props in iterators/collection literals", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-key.md", - }, - "messages": { - "keyBeforeSpread": "\`key\` prop must be placed before any \`{...spread}, to avoid conflicting with React’s new JSX transform: https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html\`", - "missingArrayKey": "Missing "key" prop for element in array", - "missingArrayKeyUsePrag": "Missing "key" prop for element in array. Shorthand fragment syntax does not support providing keys. Use {{reactPrag}}.{{fragPrag}} instead", - "missingIterKey": "Missing "key" prop for element in iterator", - "missingIterKeyUsePrag": "Missing "key" prop for element in iterator. Shorthand fragment syntax does not support providing keys. Use {{reactPrag}}.{{fragPrag}} instead", - "nonUniqueKeys": "\`key\` prop must be unique", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkFragmentShorthand": { - "default": false, - "type": "boolean", - }, - "checkKeyMustBeforeSpread": { - "default": false, - "type": "boolean", - }, - "warnOnDuplicates": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-max-depth": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce JSX maximum depth", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-depth.md", - }, - "messages": { - "wrongDepth": "Expected the depth of nested jsx elements to be <= {{needed}}, but found {{found}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "max": { - "minimum": 0, - "type": "integer", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-max-props-per-line": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce maximum of props on a single line in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-props-per-line.md", - }, - "fixable": "code", - "messages": { - "newLine": "Prop \`{{prop}}\` must be placed on a new line", - }, - "schema": [ - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "maximum": { - "properties": { - "multi": { - "minimum": 1, - "type": "integer", - }, - "single": { - "minimum": 1, - "type": "integer", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "maximum": { - "minimum": 1, - "type": "number", - }, - "when": { - "enum": [ - "always", - "multiline", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - ], - }, - }, - "jsx-newline": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Require or prevent a new line after jsx elements and expressions.", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-newline.md", - }, - "fixable": "code", - "messages": { - "allowMultilines": "Multiline JSX elements should start in a new line", - "prevent": "JSX element should not start in a new line", - "require": "JSX element should start in a new line", - }, - "schema": [ - { - "additionalProperties": false, - "if": { - "properties": { - "allowMultilines": { - "const": true, - }, - }, - }, - "properties": { - "allowMultilines": { - "default": false, - "type": "boolean", - }, - "prevent": { - "default": false, - "type": "boolean", - }, - }, - "then": { - "properties": { - "prevent": { - "const": true, - }, - }, - "required": [ - "prevent", - ], - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-bind": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow \`.bind()\` or arrow functions in JSX props", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-bind.md", - }, - "messages": { - "arrowFunc": "JSX props should not use arrow functions", - "bindCall": "JSX props should not use .bind()", - "bindExpression": "JSX props should not use ::", - "func": "JSX props should not use functions", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowArrowFunctions": { - "default": false, - "type": "boolean", - }, - "allowBind": { - "default": false, - "type": "boolean", - }, - "allowFunctions": { - "default": false, - "type": "boolean", - }, - "ignoreDOMComponents": { - "default": false, - "type": "boolean", - }, - "ignoreRefs": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-comment-textnodes": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow comments from being inserted as text nodes", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-comment-textnodes.md", - }, - "messages": { - "putCommentInBraces": "Comments inside children section of tag should be placed inside braces", - }, - "schema": [], - }, - }, - "jsx-no-constructed-context-values": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallows JSX context provider values from taking values that will cause needless rerenders", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-constructed-context-values.md", - }, - "messages": { - "defaultMsg": "The {{type}} passed as the value prop to the Context provider (at line {{nodeLine}}) changes every render. To fix this consider wrapping it in a useMemo hook.", - "defaultMsgFunc": "The {{type}} passed as the value prop to the Context provider (at line {{nodeLine}}) changes every render. To fix this consider wrapping it in a useCallback hook.", - "withIdentifierMsg": "The '{{variableName}}' {{type}} (at line {{nodeLine}}) passed as the value prop to the Context provider (at line {{usageLine}}) changes every render. To fix this consider wrapping it in a useMemo hook.", - "withIdentifierMsgFunc": "The '{{variableName}}' {{type}} (at line {{nodeLine}}) passed as the value prop to the Context provider (at line {{usageLine}}) changes every render. To fix this consider wrapping it in a useCallback hook.", - }, - "schema": false, - }, - }, - "jsx-no-duplicate-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow duplicate properties in JSX", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-duplicate-props.md", - }, - "messages": { - "noDuplicateProps": "No duplicate props allowed", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreCase": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-leaked-render": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow problematic leaked values from being rendered", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-leaked-render.md", - }, - "fixable": "code", - "messages": { - "noPotentialLeakedRender": "Potential leaked value that might cause unintentionally rendered values or rendering crashes", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "validStrategies": { - "default": [ - "ternary", - "coerce", - ], - "items": { - "enum": [ - "ternary", - "coerce", - ], - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-literals": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow usage of string literals in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-literals.md", - }, - "messages": { - "invalidPropValue": "Invalid prop value: "{{text}}"", - "invalidPropValueInElement": "Invalid prop value: "{{text}}" in {{element}}", - "literalNotInJSXExpression": "Missing JSX expression container around literal string: "{{text}}"", - "literalNotInJSXExpressionInElement": "Missing JSX expression container around literal string: "{{text}}" in {{element}}", - "noStringsInAttributes": "Strings not allowed in attributes: "{{text}}"", - "noStringsInAttributesInElement": "Strings not allowed in attributes: "{{text}}" in {{element}}", - "noStringsInJSX": "Strings not allowed in JSX files: "{{text}}"", - "noStringsInJSXInElement": "Strings not allowed in JSX files: "{{text}}" in {{element}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowedStrings": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "elementOverrides": { - "patternProperties": { - "^[A-Z][\\w.]*$": { - "properties": { - "allowedStrings": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "applyToNestedElements": { - "type": "boolean", - }, - "ignoreProps": { - "type": "boolean", - }, - "noAttributeStrings": { - "type": "boolean", - }, - "noStrings": { - "type": "boolean", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, - "ignoreProps": { - "type": "boolean", - }, - "noAttributeStrings": { - "type": "boolean", - }, - "noStrings": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-script-url": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of \`javascript:\` URLs", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-script-url.md", - }, - "messages": { - "noScriptURL": "A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML, try using dangerouslySetInnerHTML instead.", - }, - "schema": { - "anyOf": [ - { - "additionalItems": false, - "items": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - }, - "props": { - "items": { - "type": "string", - "uniqueItems": true, - }, - "type": "array", - }, - }, - "required": [ - "name", - "props", - ], - "type": "object", - }, - "type": "array", - "uniqueItems": true, - }, - { - "additionalItems": false, - "properties": { - "includeFromSettings": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - { - "additionalItems": false, - "items": [ - { - "additionalItems": false, - "properties": { - "includeFromSettings": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - ], - }, - }, - }, - "jsx-no-target-blank": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow \`target="_blank"\` attribute without \`rel="noreferrer"\`", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-target-blank.md", - }, - "fixable": "code", - "messages": { - "noTargetBlankWithoutNoopener": "Using target="_blank" without rel="noreferrer" or rel="noopener" (the former implies the latter and is preferred due to wider support) is a security risk: see https://mathiasbynens.github.io/rel-noopener/#recommendations", - "noTargetBlankWithoutNoreferrer": "Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowReferrer": { - "type": "boolean", - }, - "enforceDynamicLinks": { - "enum": [ - "always", - "never", - ], - }, - "forms": { - "default": false, - "type": "boolean", - }, - "links": { - "default": true, - "type": "boolean", - }, - "warnOnSpreadAttributes": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-undef": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow undeclared variables in JSX", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-undef.md", - }, - "messages": { - "undefined": "'{{identifier}}' is not defined.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowGlobals": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-no-useless-fragment": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow unnecessary fragments", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-useless-fragment.md", - }, - "fixable": "code", - "messages": { - "ChildOfHtmlElement": "Passing a fragment to an HTML element is useless.", - "NeedsMoreChildren": "Fragments should contain more than one child - otherwise, there’s no need for a Fragment at all.", - }, - "schema": [ - { - "properties": { - "allowExpressions": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "jsx-one-expression-per-line": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Require one JSX element per line", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md", - }, - "fixable": "whitespace", - "messages": { - "moveToNewLine": "\`{{descriptor}}\` must be placed on a new line", - }, - "schema": [ - { - "additionalProperties": false, - "default": { - "allow": "none", - }, - "properties": { - "allow": { - "enum": [ - "none", - "literal", - "single-child", - "non-jsx", - ], - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-pascal-case": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce PascalCase for user-defined JSX components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-pascal-case.md", - }, - "messages": { - "usePascalCase": "Imported JSX component {{name}} must be in PascalCase", - "usePascalOrSnakeCase": "Imported JSX component {{name}} must be in PascalCase or SCREAMING_SNAKE_CASE", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAllCaps": { - "type": "boolean", - }, - "allowLeadingUnderscore": { - "type": "boolean", - }, - "allowNamespace": { - "type": "boolean", - }, - "ignore": { - "items": [ - { - "type": "string", - }, - ], - "minItems": 0, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-props-no-multi-spaces": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow multiple spaces between inline JSX props", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-multi-spaces.md", - }, - "fixable": "code", - "messages": { - "noLineGap": "Expected no line gap between “{{prop1}}” and “{{prop2}}”", - "onlyOneSpace": "Expected only one space between “{{prop1}}” and “{{prop2}}”", - }, - "schema": [], - }, - }, - "jsx-props-no-spread-multi": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow JSX prop spreading the same identifier multiple times", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spread-multi.md", - }, - "messages": { - "noMultiSpreading": "Spreading the same expression multiple times is forbidden", - }, - }, - }, - "jsx-props-no-spreading": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow JSX prop spreading", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spreading.md", - }, - "messages": { - "noSpreading": "Prop spreading is forbidden", - }, - "schema": [ - { - "allOf": [ - { - "properties": { - "custom": { - "enum": [ - "enforce", - "ignore", - ], - }, - "exceptions": { - "items": { - "type": "string", - "uniqueItems": true, - }, - "type": "array", - }, - "explicitSpread": { - "enum": [ - "enforce", - "ignore", - ], - }, - "html": { - "enum": [ - "enforce", - "ignore", - ], - }, - }, - "type": "object", - }, - { - "not": { - "properties": { - "custom": { - "enum": [ - "ignore", - ], - }, - "exceptions": { - "maxItems": 0, - "minItems": 0, - "type": "array", - }, - "html": { - "enum": [ - "ignore", - ], - }, - }, - "required": [ - "html", - "custom", - ], - "type": "object", - }, - }, - ], - }, - ], - }, - }, - "jsx-sort-default-props": { - "create": [Function], - "meta": { - "deprecated": true, - "docs": { - "category": "Stylistic Issues", - "description": "Enforce defaultProps declarations alphabetical sorting", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md", - }, - "messages": { - "propsNotSorted": "Default prop types declarations should be sorted alphabetically", - }, - "replacedBy": [ - "sort-default-props", - ], - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreCase": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-sort-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce props alphabetical sorting", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-props.md", - }, - "fixable": "code", - "messages": { - "listCallbacksLast": "Callbacks must be listed after all other props", - "listIsEmpty": "A customized reserved first list must not be empty", - "listMultilineFirst": "Multiline props must be listed before all other props", - "listMultilineLast": "Multiline props must be listed after all other props", - "listReservedPropsFirst": "Reserved props must be listed before all other props", - "listShorthandFirst": "Shorthand props must be listed before all other props", - "listShorthandLast": "Shorthand props must be listed after all other props", - "noUnreservedProps": "A customized reserved first list must only contain a subset of React reserved props. Remove: {{unreservedWords}}", - "sortPropsByAlpha": "Props should be sorted alphabetically", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "callbacksLast": { - "type": "boolean", - }, - "ignoreCase": { - "type": "boolean", - }, - "locale": { - "default": "auto", - "type": "string", - }, - "multiline": { - "default": "ignore", - "enum": [ - "ignore", - "first", - "last", - ], - }, - "noSortAlphabetically": { - "type": "boolean", - }, - "reservedFirst": { - "type": [ - "array", - "boolean", - ], - }, - "shorthandFirst": { - "type": "boolean", - }, - "shorthandLast": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-space-before-closing": { - "create": [Function], - "meta": { - "deprecated": true, - "docs": { - "category": "Stylistic Issues", - "description": "Enforce spacing before closing bracket in JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md", - }, - "fixable": "code", - "messages": { - "needSpaceBeforeClose": "A space is required before closing bracket", - "noSpaceBeforeClose": "A space is forbidden before closing bracket", - }, - "replacedBy": [ - "jsx-tag-spacing", - ], - "schema": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - }, - "jsx-tag-spacing": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce whitespace in and around the JSX opening and closing brackets", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-tag-spacing.md", - }, - "fixable": "whitespace", - "messages": { - "afterOpenNeedSpace": "A space is required after opening bracket", - "afterOpenNoSpace": "A space is forbidden after opening bracket", - "beforeCloseNeedNewline": "A newline is required before closing bracket", - "beforeCloseNeedSpace": "Whitespace is required before closing bracket", - "beforeCloseNoSpace": "A space is forbidden before closing bracket", - "beforeSelfCloseNeedNewline": "A newline is required before closing bracket", - "beforeSelfCloseNeedSpace": "A space is required before closing bracket", - "beforeSelfCloseNoSpace": "A space is forbidden before closing bracket", - "closeSlashNeedSpace": "Whitespace is required between \`<\` and \`/\`; write \`< /\`", - "closeSlashNoSpace": "Whitespace is forbidden between \`<\` and \`/\`; write \`\`; write \`/ >\`", - "selfCloseSlashNoSpace": "Whitespace is forbidden between \`/\` and \`>\`; write \`/>\`", - }, - "schema": [ - { - "additionalProperties": false, - "default": { - "afterOpening": "never", - "beforeClosing": "allow", - "beforeSelfClosing": "always", - "closingSlash": "never", - }, - "properties": { - "afterOpening": { - "enum": [ - "always", - "allow-multiline", - "never", - "allow", - ], - }, - "beforeClosing": { - "enum": [ - "always", - "proportional-always", - "never", - "allow", - ], - }, - "beforeSelfClosing": { - "enum": [ - "always", - "proportional-always", - "never", - "allow", - ], - }, - "closingSlash": { - "enum": [ - "always", - "never", - "allow", - ], - }, - }, - "type": "object", - }, - ], - }, - }, - "jsx-uses-react": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow React to be incorrectly marked as unused", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-react.md", - }, - "schema": [], - }, - }, - "jsx-uses-vars": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow variables used in JSX to be incorrectly marked as unused", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-vars.md", - }, - "schema": [], - }, - }, - "jsx-wrap-multilines": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow missing parentheses around multiline JSX", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-wrap-multilines.md", - }, - "fixable": "code", - "messages": { - "extraParens": "Expected no parentheses around multilines JSX", - "missingParens": "Missing parentheses around multilines JSX", - "parensOnNewLines": "Parentheses around JSX should be on separate lines", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "arrow": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "assignment": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "condition": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "declaration": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "logical": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "prop": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - "return": { - "enum": [ - true, - false, - "ignore", - "parens", - "parens-new-line", - "never", - ], - }, - }, - "type": "object", - }, - ], - }, - }, - "no-access-state-in-setstate": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow when this.state is accessed within setState", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md", - }, - "messages": { - "useCallback": "Use callback in setState when referencing the previous state.", - }, - }, - }, - "no-adjacent-inline-elements": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow adjacent inline elements not separated by whitespace.", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-adjacent-inline-elements.md", - }, - "messages": { - "inlineElement": "Child elements which render as inline HTML elements should be separated by a space or wrapped in block level elements.", - }, - "schema": [], - }, - }, - "no-array-index-key": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of Array index in keys", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-array-index-key.md", - }, - "messages": { - "noArrayIndex": "Do not use Array index in keys", - }, - "schema": [], - }, - }, - "no-arrow-function-lifecycle": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Lifecycle methods should be methods on the prototype, not class fields", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-arrow-function-lifecycle.md", - }, - "fixable": "code", - "messages": { - "lifecycle": "{{propertyName}} is a React lifecycle method, and should not be an arrow function or in a class field. Use an instance method instead.", - }, - "schema": [], - }, - }, - "no-children-prop": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow passing of children as props", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-children-prop.md", - }, - "messages": { - "nestChildren": "Do not pass children as props. Instead, nest children between the opening and closing tags.", - "nestFunction": "Do not nest a function between the opening and closing tags. Instead, pass it as a prop.", - "passChildrenAsArgs": "Do not pass children as props. Instead, pass them as additional arguments to React.createElement.", - "passFunctionAsArgs": "Do not pass a function as an additional argument to React.createElement. Instead, pass it as a prop.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowFunctions": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-danger": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of dangerous JSX properties", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger.md", - }, - "messages": { - "dangerousProp": "Dangerous property '{{name}}' found", - }, - "schema": [ - { - "properties": { - "customComponentNames": { - "items": { - "type": "string", - }, - "minItems": 0, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - }, - "no-danger-with-children": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow when a DOM element is using both children and dangerouslySetInnerHTML", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger-with-children.md", - }, - "messages": { - "dangerWithChildren": "Only set one of \`children\` or \`props.dangerouslySetInnerHTML\`", - }, - "schema": [], - }, - }, - "no-deprecated": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of deprecated methods", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-deprecated.md", - }, - "messages": { - "deprecated": "{{oldMethod}} is deprecated since React {{version}}{{newMethod}}{{refs}}", - }, - "schema": [], - }, - }, - "no-did-mount-set-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of setState in componentDidMount", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-mount-set-state.md", - }, - "messages": { - "noSetState": "Do not use setState in {{name}}", - }, - "schema": [ - { - "enum": [ - "disallow-in-func", - ], - }, - ], - }, - }, - "no-did-update-set-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of setState in componentDidUpdate", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-update-set-state.md", - }, - "messages": { - "noSetState": "Do not use setState in {{name}}", - }, - "schema": [ - { - "enum": [ - "disallow-in-func", - ], - }, - ], - }, - }, - "no-direct-mutation-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow direct mutation of this.state", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-direct-mutation-state.md", - }, - "messages": { - "noDirectMutation": "Do not mutate state directly. Use setState().", - }, - }, - }, - "no-find-dom-node": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of findDOMNode", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-find-dom-node.md", - }, - "messages": { - "noFindDOMNode": "Do not use findDOMNode. It doesn’t work with function components and is deprecated in StrictMode. See https://reactjs.org/docs/react-dom.html#finddomnode", - }, - "schema": [], - }, - }, - "no-invalid-html-attribute": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow usage of invalid attributes", - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-invalid-html-attribute.md", - }, - "hasSuggestions": true, - "messages": { - "emptyIsMeaningless": "An empty “{{attributeName}}” attribute is meaningless.", - "neverValid": "“{{reportingValue}}” is never a valid “{{attributeName}}” attribute value.", - "noEmpty": "An empty “{{attributeName}}” attribute is meaningless.", - "noMethod": "The ”{{attributeName}}“ attribute cannot be a method.", - "notAlone": "“{{reportingValue}}” must be directly followed by “{{missingValue}}”.", - "notPaired": "“{{reportingValue}}” can not be directly followed by “{{secondValue}}” without “{{missingValue}}”.", - "notValidFor": "“{{reportingValue}}” is not a valid “{{attributeName}}” attribute value for <{{elementName}}>.", - "onlyMeaningfulFor": "The ”{{attributeName}}“ attribute only has meaning on the tags: {{tagNames}}", - "onlyStrings": "“{{attributeName}}” attribute only supports strings.", - "spaceDelimited": "”{{attributeName}}“ attribute values should be space delimited.", - "suggestRemoveDefault": ""remove {{attributeName}}"", - "suggestRemoveEmpty": ""remove empty attribute {{attributeName}}"", - "suggestRemoveInvalid": "“remove invalid attribute {{reportingValue}}”", - "suggestRemoveNonString": "remove non-string value in “{{attributeName}}”", - "suggestRemoveWhitespaces": "remove whitespaces in “{{attributeName}}”", - }, - "schema": [ - { - "items": { - "enum": [ - "rel", - ], - }, - "type": "array", - "uniqueItems": true, - }, - ], - "type": "suggestion", - }, - }, - "no-is-mounted": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of isMounted", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-is-mounted.md", - }, - "messages": { - "noIsMounted": "Do not use isMounted", - }, - "schema": [], - }, - }, - "no-multi-comp": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow multiple component definition per file", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-multi-comp.md", - }, - "messages": { - "onlyOneComponent": "Declare only one React component per file", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreStateless": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-namespace": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Enforce that namespaces are not used in React elements", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-namespace.md", - }, - "messages": { - "noNamespace": "React component {{name}} must not be in a namespace, as React does not support them", - }, - "schema": [], - }, - }, - "no-object-type-as-default-prop": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of referential-type variables as default param in functional component", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-object-type-as-default-prop.md", - }, - "messages": { - "forbiddenTypeDefaultParam": "{{propName}} has a/an {{forbiddenType}} as default prop. This could lead to potential infinite render loop in React. Use a variable reference instead of {{forbiddenType}}.", - }, - }, - }, - "no-redundant-should-component-update": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow usage of shouldComponentUpdate when extending React.PureComponent", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-redundant-should-component-update.md", - }, - "messages": { - "noShouldCompUpdate": "{{component}} does not need shouldComponentUpdate when extending React.PureComponent.", - }, - "schema": [], - }, - }, - "no-render-return-value": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of the return value of ReactDOM.render", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-render-return-value.md", - }, - "messages": { - "noReturnValue": "Do not depend on the return value from {{node}}.render", - }, - "schema": [], - }, - }, - "no-set-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow usage of setState", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-set-state.md", - }, - "messages": { - "noSetState": "Do not use setState", - }, - "schema": [], - }, - }, - "no-string-refs": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow using string references", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-string-refs.md", - }, - "messages": { - "stringInRefDeprecated": "Using string literals in ref attributes is deprecated.", - "thisRefsDeprecated": "Using this.refs is deprecated.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "noTemplateLiterals": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-this-in-sfc": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow \`this\` from being used in stateless functional components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-this-in-sfc.md", - }, - "messages": { - "noThisInSFC": "Stateless functional components should not use \`this\`", - }, - "schema": [], - }, - }, - "no-typos": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow common typos", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md", - }, - "messages": { - "noPropTypesBinding": "\`'prop-types'\` imported without a local \`PropTypes\` binding.", - "noReactBinding": "\`'react'\` imported without a local \`React\` binding.", - "staticLifecycleMethod": "Lifecycle method should be static: {{method}}", - "typoLifecycleMethod": "Typo in component lifecycle method declaration: {{actual}} should be {{expected}}", - "typoPropDeclaration": "Typo in property declaration", - "typoPropType": "Typo in declared prop type: {{name}}", - "typoPropTypeChain": "Typo in prop type chain qualifier: {{name}}", - "typoStaticClassProp": "Typo in static class property declaration", - }, - "schema": [], - }, - }, - "no-unescaped-entities": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow unescaped HTML entities from appearing in markup", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unescaped-entities.md", - }, - "hasSuggestions": true, - "messages": { - "replaceWithAlt": "Replace with \`{{alt}}\`.", - "unescapedEntity": "HTML entity, \`{{entity}}\` , must be escaped.", - "unescapedEntityAlts": "\`{{entity}}\` can be escaped with {{alts}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "forbid": { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "properties": { - "alternatives": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "char": { - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-unknown-property": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow usage of unknown DOM property", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unknown-property.md", - }, - "fixable": "code", - "messages": { - "dataLowercaseRequired": "React does not recognize data-* props with uppercase characters on a DOM element. Found '{{name}}', use '{{lowerCaseName}}' instead", - "invalidPropOnTag": "Invalid property '{{name}}' found on tag '{{tagName}}', but it is only allowed on: {{allowedTags}}", - "unknownProp": "Unknown property '{{name}}' found", - "unknownPropWithStandardName": "Unknown property '{{name}}' found, use '{{standardName}}' instead", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignore": { - "items": { - "type": "string", - }, - "type": "array", - }, - "requireDataLowercase": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-unsafe": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of unsafe lifecycle methods", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unsafe.md", - }, - "messages": { - "unsafeMethod": "{{method}} is unsafe for use in async rendering. Update the component to use {{newMethod}} instead. {{details}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkAliases": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-unstable-nested-components": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow creating unstable components inside components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unstable-nested-components.md", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAsProps": { - "type": "boolean", - }, - "customValidators": { - "items": { - "type": "string", - }, - "type": "array", - }, - "propNamePattern": { - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-unused-class-component-methods": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow declaring unused methods of component class", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-class-component-methods.md", - }, - "messages": { - "unused": "Unused method or property "{{name}}"", - "unusedWithClass": "Unused method or property "{{name}}" of class "{{className}}"", - }, - "schema": [], - }, - }, - "no-unused-prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow definitions of unused propTypes", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-prop-types.md", - }, - "messages": { - "unusedPropType": "'{{name}}' PropType is defined but prop is never used", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "customValidators": { - "items": { - "type": "string", - }, - "type": "array", - }, - "ignore": { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - "skipShapeProps": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "no-unused-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow definitions of unused state", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-state.md", - }, - "messages": { - "unusedStateField": "Unused state field: '{{name}}'", - }, - "schema": [], - }, - }, - "no-will-update-set-state": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow usage of setState in componentWillUpdate", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-will-update-set-state.md", - }, - "messages": { - "noSetState": "Do not use setState in {{name}}", - }, - "schema": [ - { - "enum": [ - "disallow-in-func", - ], - }, - ], - }, - }, - "prefer-es6-class": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce ES5 or ES6 class for React Components", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-es6-class.md", - }, - "messages": { - "shouldUseCreateClass": "Component should use createClass instead of es6 class", - "shouldUseES6Class": "Component should use es6 class instead of createClass", - }, - "schema": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - }, - "prefer-exact-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Prefer exact proptype definitions", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-exact-props.md", - }, - "messages": { - "flow": "Component flow props should be set with exact objects.", - "propTypes": "Component propTypes should be exact by using {{exactPropWrappers}}.", - }, - "schema": [], - }, - }, - "prefer-read-only-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce that props are read-only", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-read-only-props.md", - }, - "fixable": "code", - "messages": { - "readOnlyProp": "Prop '{{name}}' should be read-only.", - }, - "schema": [], - }, - }, - "prefer-stateless-function": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce stateless components to be written as a pure function", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-stateless-function.md", - }, - "messages": { - "componentShouldBePure": "Component should be written as a pure function", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignorePureComponents": { - "default": false, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow missing props validation in a React component definition", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prop-types.md", - }, - "messages": { - "missingPropType": "'{{name}}' is missing in props validation", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "customValidators": { - "items": { - "type": "string", - }, - "type": "array", - }, - "ignore": { - "items": { - "type": "string", - }, - "type": "array", - }, - "skipUndeclared": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "react-in-jsx-scope": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Disallow missing React when using JSX", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/react-in-jsx-scope.md", - }, - "messages": { - "notInScope": "'{{name}}' must be in scope when using JSX", - }, - "schema": [], - }, - }, - "require-default-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Enforce a defaultProps definition for every prop that is not a required prop", - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-default-props.md", - }, - "messages": { - "destructureInSignature": "Must destructure props in the function signature to initialize an optional prop.", - "noDefaultPropsWithFunction": "Don’t use defaultProps with function components.", - "noDefaultWithRequired": "propType "{{name}}" is required and should not have a defaultProps declaration.", - "shouldAssignObjectDefault": "propType "{{name}}" is not required, but has no corresponding default argument value.", - "shouldHaveDefault": "propType "{{name}}" is not required, but has no corresponding defaultProps declaration.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "classes": { - "enum": [ - "defaultProps", - "ignore", - ], - }, - "forbidDefaultForRequired": { - "type": "boolean", - }, - "functions": { - "enum": [ - "defaultArguments", - "defaultProps", - "ignore", - ], - }, - "ignoreFunctionalComponents": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "require-optimization": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Enforce React components to have a shouldComponentUpdate method", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-optimization.md", - }, - "messages": { - "noShouldComponentUpdate": "Component is not optimized. Please add a shouldComponentUpdate method.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowDecorators": { - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "require-render-return": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Enforce ES5 or ES6 class for returning value in render function", - "recommended": true, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-render-return.md", - }, - "messages": { - "noRenderReturn": "Your render method should have a return statement", - }, - "schema": [], - }, - }, - "self-closing-comp": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Disallow extra closing tags for components without children", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/self-closing-comp.md", - }, - "fixable": "code", - "messages": { - "notSelfClosing": "Empty components are self-closing", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "component": { - "default": true, - "type": "boolean", - }, - "html": { - "default": true, - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "sort-comp": { - "create": [Function], - "defaultConfig": { - "groups": { - "lifecycle": [ - "displayName", - "propTypes", - "contextTypes", - "childContextTypes", - "mixins", - "statics", - "defaultProps", - "constructor", - "getDefaultProps", - "state", - "getInitialState", - "getChildContext", - "getDerivedStateFromProps", - "componentWillMount", - "UNSAFE_componentWillMount", - "componentDidMount", - "componentWillReceiveProps", - "UNSAFE_componentWillReceiveProps", - "shouldComponentUpdate", - "componentWillUpdate", - "UNSAFE_componentWillUpdate", - "getSnapshotBeforeUpdate", - "componentDidUpdate", - "componentDidCatch", - "componentWillUnmount", - ], - }, - "order": [ - "static-methods", - "lifecycle", - "everything-else", - "render", - ], - }, - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce component methods order", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-comp.md", - }, - "messages": { - "unsortedProps": "{{propA}} should be placed {{position}} {{propB}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "groups": { - "patternProperties": { - "^.*$": { - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - "order": { - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "sort-default-props": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce defaultProps declarations alphabetical sorting", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-default-props.md", - }, - "messages": { - "propsNotSorted": "Default prop types declarations should be sorted alphabetically", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreCase": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "sort-prop-types": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce propTypes declarations alphabetical sorting", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-prop-types.md", - }, - "fixable": "code", - "messages": { - "callbackPropsLast": "Callback prop types must be listed after all other prop types", - "propsNotSorted": "Prop types declarations should be sorted alphabetically", - "requiredPropsFirst": "Required prop types must be listed before all other prop types", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "callbacksLast": { - "type": "boolean", - }, - "checkTypes": { - "type": "boolean", - }, - "ignoreCase": { - "type": "boolean", - }, - "noSortAlphabetically": { - "type": "boolean", - }, - "requiredFirst": { - "type": "boolean", - }, - "sortShapeProp": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "state-in-constructor": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforce class component state initialization style", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/state-in-constructor.md", - }, - "messages": { - "stateInitClassProp": "State initialization should be in a class property", - "stateInitConstructor": "State initialization should be in a constructor", - }, - "schema": [ - { - "enum": [ - "always", - "never", - ], - }, - ], - }, - }, - "static-property-placement": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Enforces where React component static properties should be positioned.", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/static-property-placement.md", - }, - "fixable": null, - "messages": { - "declareOutsideClass": "'{{name}}' should be declared outside the class body.", - "notGetterClassFunc": "'{{name}}' should be declared as a static getter class function.", - "notStaticClassProp": "'{{name}}' should be declared as a static class property.", - }, - "schema": [ - { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - { - "additionalProperties": false, - "properties": { - "childContextTypes": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - "contextType": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - "contextTypes": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - "defaultProps": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - "displayName": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - "propTypes": { - "enum": [ - "static public field", - "static getter", - "property assignment", - ], - }, - }, - "type": "object", - }, - ], - }, - }, - "style-prop-object": { - "create": [Function], - "meta": { - "docs": { - "category": "Possible Errors", - "description": "Enforce style prop value is an object", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/style-prop-object.md", - }, - "messages": { - "stylePropNotObject": "Style prop value must be an object", - }, - "schema": [ - { - "properties": { - "allow": { - "additionalItems": false, - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - }, - }, - "void-dom-elements-no-children": { - "create": [Function], - "meta": { - "docs": { - "category": "Best Practices", - "description": "Disallow void DOM elements (e.g. \`\`, \`
\`) from receiving children", - "recommended": false, - "url": "https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/void-dom-elements-no-children.md", - }, - "messages": { - "noChildrenInVoidEl": "Void DOM element <{{element}} /> cannot receive children.", - }, - "schema": [], - }, - }, - }, - }, - }, - "rules": { - "react/display-name": 2, - "react/jsx-key": 2, - "react/jsx-no-comment-textnodes": 2, - "react/jsx-no-duplicate-props": 2, - "react/jsx-no-target-blank": 2, - "react/jsx-no-undef": 2, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/no-children-prop": 2, - "react/no-danger-with-children": 2, - "react/no-deprecated": 2, - "react/no-direct-mutation-state": 2, - "react/no-find-dom-node": 2, - "react/no-is-mounted": 2, - "react/no-render-return-value": 2, - "react/no-string-refs": 2, - "react/no-unescaped-entities": 2, - "react/no-unknown-property": 2, - "react/no-unsafe": 0, - "react/prop-types": 2, - "react/react-in-jsx-scope": 2, - "react/require-render-return": 2, - }, - }, - { - "rules": { - "constructor-super": "error", - "for-direction": "error", - "getter-return": "error", - "no-async-promise-executor": "error", - "no-case-declarations": "error", - "no-class-assign": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": "error", - "no-const-assign": "error", - "no-constant-binary-expression": "error", - "no-constant-condition": "error", - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-else-if": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty": "error", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-empty-static-block": "error", - "no-ex-assign": "error", - "no-extra-boolean-cast": "error", - "no-fallthrough": "error", - "no-func-assign": "error", - "no-global-assign": "error", - "no-import-assign": "error", - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-loss-of-precision": "error", - "no-misleading-character-class": "error", - "no-new-native-nonconstructor": "error", - "no-nonoctal-decimal-escape": "error", - "no-obj-calls": "error", - "no-octal": "error", - "no-prototype-builtins": "error", - "no-redeclare": "error", - "no-regex-spaces": "error", - "no-self-assign": "error", - "no-setter-return": "error", - "no-shadow-restricted-names": "error", - "no-sparse-arrays": "error", - "no-this-before-super": "error", - "no-undef": "error", - "no-unexpected-multiline": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unsafe-optional-chaining": "error", - "no-unused-labels": "error", - "no-unused-private-class-members": "error", - "no-unused-vars": "error", - "no-useless-backreference": "error", - "no-useless-catch": "error", - "no-useless-escape": "error", - "no-with": "error", - "require-yield": "error", - "use-isnan": "error", - "valid-typeof": "error", - }, - }, - { - "name": "eslint-plugin-prettier/recommended", - "plugins": { - "prettier": { - "configs": { - "recommended": { - "extends": [ - "prettier", - ], - "plugins": [ - "prettier", - ], - "rules": { - "arrow-body-style": "off", - "prefer-arrow-callback": "off", - "prettier/prettier": "error", - }, - }, - }, - "meta": { - "name": "eslint-plugin-prettier", - "version": "5.2.3", - }, - "rules": { - "prettier": { - "create": [Function], - "meta": { - "docs": { - "url": "https://github.com/prettier/eslint-plugin-prettier#options", - }, - "fixable": "code", - "messages": { - "delete": "Delete \`{{ deleteText }}\`", - "insert": "Insert \`{{ insertText }}\`", - "replace": "Replace \`{{ deleteText }}\` with \`{{ insertText }}\`", - }, - "schema": [ - { - "additionalProperties": true, - "properties": {}, - "type": "object", - }, - { - "additionalProperties": true, - "properties": { - "fileInfoOptions": { - "additionalProperties": true, - "properties": {}, - "type": "object", - }, - "usePrettierrc": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "layout", - }, - }, - }, - }, - }, - "rules": { - "@babel/object-curly-spacing": "off", - "@babel/semi": "off", - "@stylistic/array-bracket-newline": "off", - "@stylistic/array-bracket-spacing": "off", - "@stylistic/array-element-newline": "off", - "@stylistic/arrow-parens": "off", - "@stylistic/arrow-spacing": "off", - "@stylistic/block-spacing": "off", - "@stylistic/brace-style": "off", - "@stylistic/comma-dangle": "off", - "@stylistic/comma-spacing": "off", - "@stylistic/comma-style": "off", - "@stylistic/computed-property-spacing": "off", - "@stylistic/dot-location": "off", - "@stylistic/eol-last": "off", - "@stylistic/func-call-spacing": "off", - "@stylistic/function-call-argument-newline": "off", - "@stylistic/function-call-spacing": "off", - "@stylistic/function-paren-newline": "off", - "@stylistic/generator-star-spacing": "off", - "@stylistic/implicit-arrow-linebreak": "off", - "@stylistic/indent": "off", - "@stylistic/indent-binary-ops": "off", - "@stylistic/js/array-bracket-newline": "off", - "@stylistic/js/array-bracket-spacing": "off", - "@stylistic/js/array-element-newline": "off", - "@stylistic/js/arrow-parens": "off", - "@stylistic/js/arrow-spacing": "off", - "@stylistic/js/block-spacing": "off", - "@stylistic/js/brace-style": "off", - "@stylistic/js/comma-dangle": "off", - "@stylistic/js/comma-spacing": "off", - "@stylistic/js/comma-style": "off", - "@stylistic/js/computed-property-spacing": "off", - "@stylistic/js/dot-location": "off", - "@stylistic/js/eol-last": "off", - "@stylistic/js/func-call-spacing": "off", - "@stylistic/js/function-call-argument-newline": "off", - "@stylistic/js/function-call-spacing": "off", - "@stylistic/js/function-paren-newline": "off", - "@stylistic/js/generator-star-spacing": "off", - "@stylistic/js/implicit-arrow-linebreak": "off", - "@stylistic/js/indent": "off", - "@stylistic/js/jsx-quotes": "off", - "@stylistic/js/key-spacing": "off", - "@stylistic/js/keyword-spacing": "off", - "@stylistic/js/linebreak-style": "off", - "@stylistic/js/lines-around-comment": 0, - "@stylistic/js/max-len": 0, - "@stylistic/js/max-statements-per-line": "off", - "@stylistic/js/multiline-ternary": "off", - "@stylistic/js/new-parens": "off", - "@stylistic/js/newline-per-chained-call": "off", - "@stylistic/js/no-confusing-arrow": 0, - "@stylistic/js/no-extra-parens": "off", - "@stylistic/js/no-extra-semi": "off", - "@stylistic/js/no-floating-decimal": "off", - "@stylistic/js/no-mixed-operators": 0, - "@stylistic/js/no-mixed-spaces-and-tabs": "off", - "@stylistic/js/no-multi-spaces": "off", - "@stylistic/js/no-multiple-empty-lines": "off", - "@stylistic/js/no-tabs": 0, - "@stylistic/js/no-trailing-spaces": "off", - "@stylistic/js/no-whitespace-before-property": "off", - "@stylistic/js/nonblock-statement-body-position": "off", - "@stylistic/js/object-curly-newline": "off", - "@stylistic/js/object-curly-spacing": "off", - "@stylistic/js/object-property-newline": "off", - "@stylistic/js/one-var-declaration-per-line": "off", - "@stylistic/js/operator-linebreak": "off", - "@stylistic/js/padded-blocks": "off", - "@stylistic/js/quote-props": "off", - "@stylistic/js/quotes": 0, - "@stylistic/js/rest-spread-spacing": "off", - "@stylistic/js/semi": "off", - "@stylistic/js/semi-spacing": "off", - "@stylistic/js/semi-style": "off", - "@stylistic/js/space-before-blocks": "off", - "@stylistic/js/space-before-function-paren": "off", - "@stylistic/js/space-in-parens": "off", - "@stylistic/js/space-infix-ops": "off", - "@stylistic/js/space-unary-ops": "off", - "@stylistic/js/switch-colon-spacing": "off", - "@stylistic/js/template-curly-spacing": "off", - "@stylistic/js/template-tag-spacing": "off", - "@stylistic/js/wrap-iife": "off", - "@stylistic/js/wrap-regex": "off", - "@stylistic/js/yield-star-spacing": "off", - "@stylistic/jsx-child-element-spacing": "off", - "@stylistic/jsx-closing-bracket-location": "off", - "@stylistic/jsx-closing-tag-location": "off", - "@stylistic/jsx-curly-newline": "off", - "@stylistic/jsx-curly-spacing": "off", - "@stylistic/jsx-equals-spacing": "off", - "@stylistic/jsx-first-prop-new-line": "off", - "@stylistic/jsx-indent": "off", - "@stylistic/jsx-indent-props": "off", - "@stylistic/jsx-max-props-per-line": "off", - "@stylistic/jsx-newline": "off", - "@stylistic/jsx-one-expression-per-line": "off", - "@stylistic/jsx-props-no-multi-spaces": "off", - "@stylistic/jsx-quotes": "off", - "@stylistic/jsx-tag-spacing": "off", - "@stylistic/jsx-wrap-multilines": "off", - "@stylistic/jsx/jsx-child-element-spacing": "off", - "@stylistic/jsx/jsx-closing-bracket-location": "off", - "@stylistic/jsx/jsx-closing-tag-location": "off", - "@stylistic/jsx/jsx-curly-newline": "off", - "@stylistic/jsx/jsx-curly-spacing": "off", - "@stylistic/jsx/jsx-equals-spacing": "off", - "@stylistic/jsx/jsx-first-prop-new-line": "off", - "@stylistic/jsx/jsx-indent": "off", - "@stylistic/jsx/jsx-indent-props": "off", - "@stylistic/jsx/jsx-max-props-per-line": "off", - "@stylistic/key-spacing": "off", - "@stylistic/keyword-spacing": "off", - "@stylistic/linebreak-style": "off", - "@stylistic/lines-around-comment": 0, - "@stylistic/max-len": 0, - "@stylistic/max-statements-per-line": "off", - "@stylistic/member-delimiter-style": "off", - "@stylistic/multiline-ternary": "off", - "@stylistic/new-parens": "off", - "@stylistic/newline-per-chained-call": "off", - "@stylistic/no-confusing-arrow": 0, - "@stylistic/no-extra-parens": "off", - "@stylistic/no-extra-semi": "off", - "@stylistic/no-floating-decimal": "off", - "@stylistic/no-mixed-operators": 0, - "@stylistic/no-mixed-spaces-and-tabs": "off", - "@stylistic/no-multi-spaces": "off", - "@stylistic/no-multiple-empty-lines": "off", - "@stylistic/no-tabs": 0, - "@stylistic/no-trailing-spaces": "off", - "@stylistic/no-whitespace-before-property": "off", - "@stylistic/nonblock-statement-body-position": "off", - "@stylistic/object-curly-newline": "off", - "@stylistic/object-curly-spacing": "off", - "@stylistic/object-property-newline": "off", - "@stylistic/one-var-declaration-per-line": "off", - "@stylistic/operator-linebreak": "off", - "@stylistic/padded-blocks": "off", - "@stylistic/quote-props": "off", - "@stylistic/quotes": 0, - "@stylistic/rest-spread-spacing": "off", - "@stylistic/semi": "off", - "@stylistic/semi-spacing": "off", - "@stylistic/semi-style": "off", - "@stylistic/space-before-blocks": "off", - "@stylistic/space-before-function-paren": "off", - "@stylistic/space-in-parens": "off", - "@stylistic/space-infix-ops": "off", - "@stylistic/space-unary-ops": "off", - "@stylistic/switch-colon-spacing": "off", - "@stylistic/template-curly-spacing": "off", - "@stylistic/template-tag-spacing": "off", - "@stylistic/ts/block-spacing": "off", - "@stylistic/ts/brace-style": "off", - "@stylistic/ts/comma-dangle": "off", - "@stylistic/ts/comma-spacing": "off", - "@stylistic/ts/func-call-spacing": "off", - "@stylistic/ts/function-call-spacing": "off", - "@stylistic/ts/indent": "off", - "@stylistic/ts/key-spacing": "off", - "@stylistic/ts/keyword-spacing": "off", - "@stylistic/ts/lines-around-comment": 0, - "@stylistic/ts/member-delimiter-style": "off", - "@stylistic/ts/no-extra-parens": "off", - "@stylistic/ts/no-extra-semi": "off", - "@stylistic/ts/object-curly-spacing": "off", - "@stylistic/ts/quotes": 0, - "@stylistic/ts/semi": "off", - "@stylistic/ts/space-before-blocks": "off", - "@stylistic/ts/space-before-function-paren": "off", - "@stylistic/ts/space-infix-ops": "off", - "@stylistic/ts/type-annotation-spacing": "off", - "@stylistic/type-annotation-spacing": "off", - "@stylistic/type-generic-spacing": "off", - "@stylistic/type-named-tuple-spacing": "off", - "@stylistic/wrap-iife": "off", - "@stylistic/wrap-regex": "off", - "@stylistic/yield-star-spacing": "off", - "@typescript-eslint/block-spacing": "off", - "@typescript-eslint/brace-style": "off", - "@typescript-eslint/comma-dangle": "off", - "@typescript-eslint/comma-spacing": "off", - "@typescript-eslint/func-call-spacing": "off", - "@typescript-eslint/indent": "off", - "@typescript-eslint/key-spacing": "off", - "@typescript-eslint/keyword-spacing": "off", - "@typescript-eslint/lines-around-comment": 0, - "@typescript-eslint/member-delimiter-style": "off", - "@typescript-eslint/no-extra-parens": "off", - "@typescript-eslint/no-extra-semi": "off", - "@typescript-eslint/object-curly-spacing": "off", - "@typescript-eslint/quotes": 0, - "@typescript-eslint/semi": "off", - "@typescript-eslint/space-before-blocks": "off", - "@typescript-eslint/space-before-function-paren": "off", - "@typescript-eslint/space-infix-ops": "off", - "@typescript-eslint/type-annotation-spacing": "off", - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-element-newline": "off", - "arrow-body-style": "off", - "arrow-parens": "off", - "arrow-spacing": "off", - "babel/object-curly-spacing": "off", - "babel/quotes": 0, - "babel/semi": "off", - "block-spacing": "off", - "brace-style": "off", - "comma-dangle": "off", - "comma-spacing": "off", - "comma-style": "off", - "computed-property-spacing": "off", - "curly": 0, - "dot-location": "off", - "eol-last": "off", - "flowtype/boolean-style": "off", - "flowtype/delimiter-dangle": "off", - "flowtype/generic-spacing": "off", - "flowtype/object-type-curly-spacing": "off", - "flowtype/object-type-delimiter": "off", - "flowtype/quotes": "off", - "flowtype/semi": "off", - "flowtype/space-after-type-colon": "off", - "flowtype/space-before-generic-bracket": "off", - "flowtype/space-before-type-colon": "off", - "flowtype/union-intersection-spacing": "off", - "func-call-spacing": "off", - "function-call-argument-newline": "off", - "function-paren-newline": "off", - "generator-star": "off", - "generator-star-spacing": "off", - "implicit-arrow-linebreak": "off", - "indent": "off", - "indent-legacy": "off", - "jsx-quotes": "off", - "key-spacing": "off", - "keyword-spacing": "off", - "linebreak-style": "off", - "lines-around-comment": 0, - "max-len": 0, - "max-statements-per-line": "off", - "multiline-ternary": "off", - "new-parens": "off", - "newline-per-chained-call": "off", - "no-arrow-condition": "off", - "no-comma-dangle": "off", - "no-confusing-arrow": 0, - "no-extra-parens": "off", - "no-extra-semi": "off", - "no-floating-decimal": "off", - "no-mixed-operators": 0, - "no-mixed-spaces-and-tabs": "off", - "no-multi-spaces": "off", - "no-multiple-empty-lines": "off", - "no-reserved-keys": "off", - "no-space-before-semi": "off", - "no-spaced-func": "off", - "no-tabs": 0, - "no-trailing-spaces": "off", - "no-unexpected-multiline": 0, - "no-whitespace-before-property": "off", - "no-wrap-func": "off", - "nonblock-statement-body-position": "off", - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "one-var-declaration-per-line": "off", - "operator-linebreak": "off", - "padded-blocks": "off", - "prefer-arrow-callback": "off", - "prettier/prettier": "error", - "quote-props": "off", - "quotes": 0, - "react/jsx-child-element-spacing": "off", - "react/jsx-closing-bracket-location": "off", - "react/jsx-closing-tag-location": "off", - "react/jsx-curly-newline": "off", - "react/jsx-curly-spacing": "off", - "react/jsx-equals-spacing": "off", - "react/jsx-first-prop-new-line": "off", - "react/jsx-indent": "off", - "react/jsx-indent-props": "off", - "react/jsx-max-props-per-line": "off", - "react/jsx-newline": "off", - "react/jsx-one-expression-per-line": "off", - "react/jsx-props-no-multi-spaces": "off", - "react/jsx-space-before-closing": "off", - "react/jsx-tag-spacing": "off", - "react/jsx-wrap-multilines": "off", - "rest-spread-spacing": "off", - "semi": "off", - "semi-spacing": "off", - "semi-style": "off", - "space-after-function-name": "off", - "space-after-keywords": "off", - "space-before-blocks": "off", - "space-before-function-paren": "off", - "space-before-function-parentheses": "off", - "space-before-keywords": "off", - "space-in-brackets": "off", - "space-in-parens": "off", - "space-infix-ops": "off", - "space-return-throw-case": "off", - "space-unary-ops": "off", - "space-unary-word-ops": "off", - "standard/array-bracket-even-spacing": "off", - "standard/computed-property-even-spacing": "off", - "standard/object-curly-even-spacing": "off", - "switch-colon-spacing": "off", - "template-curly-spacing": "off", - "template-tag-spacing": "off", - "unicorn/empty-brace-spaces": "off", - "unicorn/no-nested-ternary": "off", - "unicorn/number-literal-case": "off", - "unicorn/template-indent": 0, - "vue/array-bracket-newline": "off", - "vue/array-bracket-spacing": "off", - "vue/array-element-newline": "off", - "vue/arrow-spacing": "off", - "vue/block-spacing": "off", - "vue/block-tag-newline": "off", - "vue/brace-style": "off", - "vue/comma-dangle": "off", - "vue/comma-spacing": "off", - "vue/comma-style": "off", - "vue/dot-location": "off", - "vue/func-call-spacing": "off", - "vue/html-closing-bracket-newline": "off", - "vue/html-closing-bracket-spacing": "off", - "vue/html-end-tags": "off", - "vue/html-indent": "off", - "vue/html-quotes": "off", - "vue/html-self-closing": 0, - "vue/key-spacing": "off", - "vue/keyword-spacing": "off", - "vue/max-attributes-per-line": "off", - "vue/max-len": 0, - "vue/multiline-html-element-content-newline": "off", - "vue/multiline-ternary": "off", - "vue/mustache-interpolation-spacing": "off", - "vue/no-extra-parens": "off", - "vue/no-multi-spaces": "off", - "vue/no-spaces-around-equal-signs-in-attribute": "off", - "vue/object-curly-newline": "off", - "vue/object-curly-spacing": "off", - "vue/object-property-newline": "off", - "vue/operator-linebreak": "off", - "vue/quote-props": "off", - "vue/script-indent": "off", - "vue/singleline-html-element-content-newline": "off", - "vue/space-in-parens": "off", - "vue/space-infix-ops": "off", - "vue/space-unary-ops": "off", - "vue/template-curly-spacing": "off", - "wrap-iife": "off", - "wrap-regex": "off", - "yield-star-spacing": "off", - }, - }, - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": { - "configs": { - "all": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/class-methods-use-this": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-return": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/consistent-type-exports": "error", - "@typescript-eslint/consistent-type-imports": "error", - "@typescript-eslint/default-param-last": "error", - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/explicit-function-return-type": "error", - "@typescript-eslint/explicit-member-accessibility": "error", - "@typescript-eslint/explicit-module-boundary-types": "error", - "@typescript-eslint/init-declarations": "error", - "@typescript-eslint/max-params": "error", - "@typescript-eslint/member-ordering": "error", - "@typescript-eslint/method-signature-style": "error", - "@typescript-eslint/naming-convention": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-dupe-class-members": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-import-type-side-effects": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/no-invalid-this": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-loop-func": "error", - "@typescript-eslint/no-magic-numbers": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-redeclare": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-restricted-imports": "error", - "@typescript-eslint/no-restricted-types": "error", - "@typescript-eslint/no-shadow": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error", - "@typescript-eslint/no-unnecessary-qualifier": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-type-assertion": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-use-before-define": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-useless-empty-export": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/parameter-properties": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-destructuring": "error", - "@typescript-eslint/prefer-enum-initializers": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-readonly": "error", - "@typescript-eslint/prefer-readonly-parameter-types": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "@typescript-eslint/promise-function-async": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-array-sort-compare": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/return-await": "error", - "@typescript-eslint/strict-boolean-expressions": "error", - "@typescript-eslint/switch-exhaustiveness-check": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "class-methods-use-this": "off", - "consistent-return": "off", - "default-param-last": "off", - "dot-notation": "off", - "init-declarations": "off", - "max-params": "off", - "no-array-constructor": "off", - "no-dupe-class-members": "off", - "no-empty-function": "off", - "no-implied-eval": "off", - "no-invalid-this": "off", - "no-loop-func": "off", - "no-magic-numbers": "off", - "no-redeclare": "off", - "no-restricted-imports": "off", - "no-return-await": "off", - "no-shadow": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-use-before-define": "off", - "no-useless-constructor": "off", - "prefer-destructuring": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "base": { - "parser": "@typescript-eslint/parser", - "parserOptions": { - "sourceType": "module", - }, - "plugins": [ - "@typescript-eslint", - ], - }, - "disable-type-checked": { - "parserOptions": { - "program": null, - "project": false, - "projectService": false, - }, - "rules": { - "@typescript-eslint/await-thenable": "off", - "@typescript-eslint/consistent-return": "off", - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/no-array-delete": "off", - "@typescript-eslint/no-base-to-string": "off", - "@typescript-eslint/no-confusing-void-expression": "off", - "@typescript-eslint/no-deprecated": "off", - "@typescript-eslint/no-duplicate-type-constituents": "off", - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-for-in-array": "off", - "@typescript-eslint/no-implied-eval": "off", - "@typescript-eslint/no-meaningless-void-operator": "off", - "@typescript-eslint/no-misused-promises": "off", - "@typescript-eslint/no-misused-spread": "off", - "@typescript-eslint/no-mixed-enums": "off", - "@typescript-eslint/no-redundant-type-constituents": "off", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off", - "@typescript-eslint/no-unnecessary-condition": "off", - "@typescript-eslint/no-unnecessary-qualifier": "off", - "@typescript-eslint/no-unnecessary-template-expression": "off", - "@typescript-eslint/no-unnecessary-type-arguments": "off", - "@typescript-eslint/no-unnecessary-type-assertion": "off", - "@typescript-eslint/no-unnecessary-type-conversion": "off", - "@typescript-eslint/no-unnecessary-type-parameters": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-enum-comparison": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/no-unsafe-type-assertion": "off", - "@typescript-eslint/no-unsafe-unary-minus": "off", - "@typescript-eslint/non-nullable-type-assertion-style": "off", - "@typescript-eslint/only-throw-error": "off", - "@typescript-eslint/prefer-destructuring": "off", - "@typescript-eslint/prefer-find": "off", - "@typescript-eslint/prefer-includes": "off", - "@typescript-eslint/prefer-nullish-coalescing": "off", - "@typescript-eslint/prefer-optional-chain": "off", - "@typescript-eslint/prefer-promise-reject-errors": "off", - "@typescript-eslint/prefer-readonly": "off", - "@typescript-eslint/prefer-readonly-parameter-types": "off", - "@typescript-eslint/prefer-reduce-type-parameter": "off", - "@typescript-eslint/prefer-regexp-exec": "off", - "@typescript-eslint/prefer-return-this-type": "off", - "@typescript-eslint/prefer-string-starts-ends-with": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/related-getter-setter-pairs": "off", - "@typescript-eslint/require-array-sort-compare": "off", - "@typescript-eslint/require-await": "off", - "@typescript-eslint/restrict-plus-operands": "off", - "@typescript-eslint/restrict-template-expressions": "off", - "@typescript-eslint/return-await": "off", - "@typescript-eslint/strict-boolean-expressions": "off", - "@typescript-eslint/switch-exhaustiveness-check": "off", - "@typescript-eslint/unbound-method": "off", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "off", - }, - }, - "eslint-recommended": { - "overrides": [ - { - "files": [ - "*.ts", - "*.tsx", - "*.mts", - "*.cts", - ], - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - ], - }, - "flat/all": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/all", - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/class-methods-use-this": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-return": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/consistent-type-exports": "error", - "@typescript-eslint/consistent-type-imports": "error", - "@typescript-eslint/default-param-last": "error", - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/explicit-function-return-type": "error", - "@typescript-eslint/explicit-member-accessibility": "error", - "@typescript-eslint/explicit-module-boundary-types": "error", - "@typescript-eslint/init-declarations": "error", - "@typescript-eslint/max-params": "error", - "@typescript-eslint/member-ordering": "error", - "@typescript-eslint/method-signature-style": "error", - "@typescript-eslint/naming-convention": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-dupe-class-members": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-import-type-side-effects": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/no-invalid-this": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-loop-func": "error", - "@typescript-eslint/no-magic-numbers": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-redeclare": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-restricted-imports": "error", - "@typescript-eslint/no-restricted-types": "error", - "@typescript-eslint/no-shadow": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error", - "@typescript-eslint/no-unnecessary-qualifier": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-type-assertion": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-use-before-define": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-useless-empty-export": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/parameter-properties": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-destructuring": "error", - "@typescript-eslint/prefer-enum-initializers": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-readonly": "error", - "@typescript-eslint/prefer-readonly-parameter-types": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "@typescript-eslint/promise-function-async": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-array-sort-compare": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/return-await": "error", - "@typescript-eslint/strict-boolean-expressions": "error", - "@typescript-eslint/switch-exhaustiveness-check": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "class-methods-use-this": "off", - "consistent-return": "off", - "default-param-last": "off", - "dot-notation": "off", - "init-declarations": "off", - "max-params": "off", - "no-array-constructor": "off", - "no-dupe-class-members": "off", - "no-empty-function": "off", - "no-implied-eval": "off", - "no-invalid-this": "off", - "no-loop-func": "off", - "no-magic-numbers": "off", - "no-redeclare": "off", - "no-restricted-imports": "off", - "no-return-await": "off", - "no-shadow": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-use-before-define": "off", - "no-useless-constructor": "off", - "prefer-destructuring": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - ], - "flat/base": { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - "flat/disable-type-checked": { - "languageOptions": { - "parserOptions": { - "program": null, - "project": false, - "projectService": false, - }, - }, - "name": "typescript-eslint/disable-type-checked", - "rules": { - "@typescript-eslint/await-thenable": "off", - "@typescript-eslint/consistent-return": "off", - "@typescript-eslint/consistent-type-exports": "off", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/no-array-delete": "off", - "@typescript-eslint/no-base-to-string": "off", - "@typescript-eslint/no-confusing-void-expression": "off", - "@typescript-eslint/no-deprecated": "off", - "@typescript-eslint/no-duplicate-type-constituents": "off", - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-for-in-array": "off", - "@typescript-eslint/no-implied-eval": "off", - "@typescript-eslint/no-meaningless-void-operator": "off", - "@typescript-eslint/no-misused-promises": "off", - "@typescript-eslint/no-misused-spread": "off", - "@typescript-eslint/no-mixed-enums": "off", - "@typescript-eslint/no-redundant-type-constituents": "off", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off", - "@typescript-eslint/no-unnecessary-condition": "off", - "@typescript-eslint/no-unnecessary-qualifier": "off", - "@typescript-eslint/no-unnecessary-template-expression": "off", - "@typescript-eslint/no-unnecessary-type-arguments": "off", - "@typescript-eslint/no-unnecessary-type-assertion": "off", - "@typescript-eslint/no-unnecessary-type-conversion": "off", - "@typescript-eslint/no-unnecessary-type-parameters": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-enum-comparison": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/no-unsafe-type-assertion": "off", - "@typescript-eslint/no-unsafe-unary-minus": "off", - "@typescript-eslint/non-nullable-type-assertion-style": "off", - "@typescript-eslint/only-throw-error": "off", - "@typescript-eslint/prefer-destructuring": "off", - "@typescript-eslint/prefer-find": "off", - "@typescript-eslint/prefer-includes": "off", - "@typescript-eslint/prefer-nullish-coalescing": "off", - "@typescript-eslint/prefer-optional-chain": "off", - "@typescript-eslint/prefer-promise-reject-errors": "off", - "@typescript-eslint/prefer-readonly": "off", - "@typescript-eslint/prefer-readonly-parameter-types": "off", - "@typescript-eslint/prefer-reduce-type-parameter": "off", - "@typescript-eslint/prefer-regexp-exec": "off", - "@typescript-eslint/prefer-return-this-type": "off", - "@typescript-eslint/prefer-string-starts-ends-with": "off", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/related-getter-setter-pairs": "off", - "@typescript-eslint/require-array-sort-compare": "off", - "@typescript-eslint/require-await": "off", - "@typescript-eslint/restrict-plus-operands": "off", - "@typescript-eslint/restrict-template-expressions": "off", - "@typescript-eslint/return-await": "off", - "@typescript-eslint/strict-boolean-expressions": "off", - "@typescript-eslint/switch-exhaustiveness-check": "off", - "@typescript-eslint/unbound-method": "off", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "off", - }, - }, - "flat/eslint-recommended": { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - "flat/recommended": [ - [Circular], - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/recommended", - "rules": { - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/triple-slash-reference": "error", - "no-array-constructor": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - }, - }, - ], - "flat/recommended-type-checked": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/recommended-type-checked", - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "no-array-constructor": "off", - "no-implied-eval": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - ], - "flat/recommended-type-checked-only": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/recommended-type-checked-only", - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/unbound-method": "error", - "no-implied-eval": "off", - "no-throw-literal": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - ], - "flat/strict": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/strict", - "rules": { - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "minimumDescriptionLength": 10, - }, - ], - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unified-signatures": "error", - "no-array-constructor": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-useless-constructor": "off", - }, - }, - ], - "flat/strict-type-checked": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/strict-type-checked", - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "minimumDescriptionLength": 10, - }, - ], - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNullish": false, - "allowNumberAndString": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNever": false, - "allowNullish": false, - "allowNumber": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/return-await": [ - "error", - "error-handling-correctness-only", - ], - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "no-array-constructor": "off", - "no-implied-eval": "off", - "no-return-await": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-useless-constructor": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - ], - "flat/strict-type-checked-only": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/strict-type-checked-only", - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNullish": false, - "allowNumberAndString": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNever": false, - "allowNullish": false, - "allowNumber": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/return-await": [ - "error", - "error-handling-correctness-only", - ], - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "no-implied-eval": "off", - "no-return-await": "off", - "no-throw-literal": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - ], - "flat/stylistic": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/stylistic", - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "no-empty-function": "off", - }, - }, - ], - "flat/stylistic-type-checked": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/stylistic-type-checked", - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "dot-notation": "off", - "no-empty-function": "off", - }, - }, - ], - "flat/stylistic-type-checked-only": [ - { - "languageOptions": { - "parser": { - "meta": { - "name": "typescript-eslint/parser", - "version": "8.46.1", - }, - "parseForESLint": [Function], - }, - "sourceType": "module", - }, - "name": "typescript-eslint/base", - "plugins": { - "@typescript-eslint": [Circular], - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/stylistic-type-checked-only", - "rules": { - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "dot-notation": "off", - }, - }, - ], - "recommended": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/triple-slash-reference": "error", - "no-array-constructor": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - }, - }, - "recommended-requiring-type-checking": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "no-array-constructor": "off", - "no-implied-eval": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "recommended-type-checked": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "no-array-constructor": "off", - "no-implied-eval": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "recommended-type-checked-only": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/restrict-template-expressions": "error", - "@typescript-eslint/unbound-method": "error", - "no-implied-eval": "off", - "no-throw-literal": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "strict": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "minimumDescriptionLength": 10, - }, - ], - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unified-signatures": "error", - "no-array-constructor": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-useless-constructor": "off", - }, - }, - "strict-type-checked": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/ban-ts-comment": [ - "error", - { - "minimumDescriptionLength": 10, - }, - ], - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-dynamic-delete": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-literal-enum-member": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNullish": false, - "allowNumberAndString": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNever": false, - "allowNullish": false, - "allowNumber": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/return-await": [ - "error", - "error-handling-correctness-only", - ], - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "no-array-constructor": "off", - "no-implied-eval": "off", - "no-return-await": "off", - "no-throw-literal": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-useless-constructor": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "strict-type-checked-only": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-array-delete": "error", - "@typescript-eslint/no-base-to-string": "error", - "@typescript-eslint/no-confusing-void-expression": "error", - "@typescript-eslint/no-deprecated": "error", - "@typescript-eslint/no-duplicate-type-constituents": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-implied-eval": "error", - "@typescript-eslint/no-meaningless-void-operator": "error", - "@typescript-eslint/no-misused-promises": "error", - "@typescript-eslint/no-misused-spread": "error", - "@typescript-eslint/no-mixed-enums": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", - "@typescript-eslint/no-unnecessary-condition": "error", - "@typescript-eslint/no-unnecessary-template-expression": "error", - "@typescript-eslint/no-unnecessary-type-arguments": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-unnecessary-type-conversion": "error", - "@typescript-eslint/no-unnecessary-type-parameters": "error", - "@typescript-eslint/no-unsafe-argument": "error", - "@typescript-eslint/no-unsafe-assignment": "error", - "@typescript-eslint/no-unsafe-call": "error", - "@typescript-eslint/no-unsafe-enum-comparison": "error", - "@typescript-eslint/no-unsafe-member-access": "error", - "@typescript-eslint/no-unsafe-return": "error", - "@typescript-eslint/no-unsafe-unary-minus": "error", - "@typescript-eslint/only-throw-error": "error", - "@typescript-eslint/prefer-promise-reject-errors": "error", - "@typescript-eslint/prefer-reduce-type-parameter": "error", - "@typescript-eslint/prefer-return-this-type": "error", - "@typescript-eslint/related-getter-setter-pairs": "error", - "@typescript-eslint/require-await": "error", - "@typescript-eslint/restrict-plus-operands": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNullish": false, - "allowNumberAndString": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - "allowAny": false, - "allowBoolean": false, - "allowNever": false, - "allowNullish": false, - "allowNumber": false, - "allowRegExp": false, - }, - ], - "@typescript-eslint/return-await": [ - "error", - "error-handling-correctness-only", - ], - "@typescript-eslint/unbound-method": "error", - "@typescript-eslint/use-unknown-in-catch-callback-variable": "error", - "no-implied-eval": "off", - "no-return-await": "off", - "no-throw-literal": "off", - "prefer-promise-reject-errors": "off", - "require-await": "off", - }, - }, - "stylistic": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "no-empty-function": "off", - }, - }, - "stylistic-type-checked": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/ban-tslint-comment": "error", - "@typescript-eslint/class-literal-property-style": "error", - "@typescript-eslint/consistent-generic-constructors": "error", - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/no-confusing-non-null-assertion": "error", - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "dot-notation": "off", - "no-empty-function": "off", - }, - }, - "stylistic-type-checked-only": { - "extends": [ - "./configs/eslintrc/base", - "./configs/eslintrc/eslint-recommended", - ], - "rules": { - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/prefer-find": "error", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-nullish-coalescing": "error", - "@typescript-eslint/prefer-optional-chain": "error", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "dot-notation": "off", - }, - }, - }, - "meta": { - "name": "@typescript-eslint/eslint-plugin", - "version": "8.46.1", - }, - "rules": { - "adjacent-overload-signatures": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Require that function overload signatures be consecutive", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/adjacent-overload-signatures", - }, - "messages": { - "adjacentSignature": "All {{name}} signatures should be adjacent.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "array-type": { - "create": [Function], - "defaultOptions": [ - { - "default": "array", - }, - ], - "meta": { - "docs": { - "description": "Require consistently using either \`T[]\` or \`Array\` for arrays", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/array-type", - }, - "fixable": "code", - "messages": { - "errorStringArray": "Array type using '{{className}}<{{type}}>' is forbidden. Use '{{readonlyPrefix}}{{type}}[]' instead.", - "errorStringArrayReadonly": "Array type using '{{className}}<{{type}}>' is forbidden. Use '{{readonlyPrefix}}{{type}}' instead.", - "errorStringArraySimple": "Array type using '{{className}}<{{type}}>' is forbidden for simple types. Use '{{readonlyPrefix}}{{type}}[]' instead.", - "errorStringArraySimpleReadonly": "Array type using '{{className}}<{{type}}>' is forbidden for simple types. Use '{{readonlyPrefix}}{{type}}' instead.", - "errorStringGeneric": "Array type using '{{readonlyPrefix}}{{type}}[]' is forbidden. Use '{{className}}<{{type}}>' instead.", - "errorStringGenericSimple": "Array type using '{{readonlyPrefix}}{{type}}[]' is forbidden for non-simple types. Use '{{className}}<{{type}}>' instead.", - }, - "schema": [ - { - "$defs": { - "arrayOption": { - "enum": [ - "array", - "generic", - "array-simple", - ], - "type": "string", - }, - }, - "additionalProperties": false, - "properties": { - "default": { - "$ref": "#/items/0/$defs/arrayOption", - "description": "The array type expected for mutable cases.", - }, - "readonly": { - "$ref": "#/items/0/$defs/arrayOption", - "description": "The array type expected for readonly cases. If omitted, the value for \`default\` will be used.", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "await-thenable": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow awaiting a value that is not a Thenable", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/await-thenable", - }, - "hasSuggestions": true, - "messages": { - "await": "Unexpected \`await\` of a non-Promise (non-"Thenable") value.", - "awaitUsingOfNonAsyncDisposable": "Unexpected \`await using\` of a value that is not async disposable.", - "convertToOrdinaryFor": "Convert to an ordinary \`for...of\` loop.", - "forAwaitOfNonAsyncIterable": "Unexpected \`for await...of\` of a value that is not async iterable.", - "invalidPromiseAggregatorInput": "Unexpected iterable of non-Promise (non-"Thenable") values passed to promise aggregator.", - "removeAwait": "Remove unnecessary \`await\`.", - }, - "schema": [], - "type": "problem", - }, - }, - "ban-ts-comment": { - "create": [Function], - "defaultOptions": [ - { - "minimumDescriptionLength": 3, - "ts-check": false, - "ts-expect-error": "allow-with-description", - "ts-ignore": true, - "ts-nocheck": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow \`@ts-\` comments or require descriptions after directives", - "recommended": { - "recommended": true, - "strict": [ - { - "minimumDescriptionLength": 10, - }, - ], - }, - "url": "https://typescript-eslint.io/rules/ban-ts-comment", - }, - "hasSuggestions": true, - "messages": { - "replaceTsIgnoreWithTsExpectError": "Replace "@ts-ignore" with "@ts-expect-error".", - "tsDirectiveComment": "Do not use "@ts-{{directive}}" because it alters compilation errors.", - "tsDirectiveCommentDescriptionNotMatchPattern": "The description for the "@ts-{{directive}}" directive must match the {{format}} format.", - "tsDirectiveCommentRequiresDescription": "Include a description after the "@ts-{{directive}}" directive to explain why the @ts-{{directive}} is necessary. The description must be {{minimumDescriptionLength}} characters or longer.", - "tsIgnoreInsteadOfExpectError": "Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free.", - }, - "schema": [ - { - "$defs": { - "directiveConfigSchema": { - "oneOf": [ - { - "default": true, - "type": "boolean", - }, - { - "enum": [ - "allow-with-description", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "descriptionFormat": { - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - }, - "additionalProperties": false, - "properties": { - "minimumDescriptionLength": { - "description": "A minimum character length for descriptions when \`allow-with-description\` is enabled.", - "type": "number", - }, - "ts-check": { - "$ref": "#/items/0/$defs/directiveConfigSchema", - "description": "Whether allow ts-check directives, and with which restrictions.", - }, - "ts-expect-error": { - "$ref": "#/items/0/$defs/directiveConfigSchema", - "description": "Whether and when expect-error directives, and with which restrictions.", - }, - "ts-ignore": { - "$ref": "#/items/0/$defs/directiveConfigSchema", - "description": "Whether allow ts-ignore directives, and with which restrictions.", - }, - "ts-nocheck": { - "$ref": "#/items/0/$defs/directiveConfigSchema", - "description": "Whether allow ts-nocheck directives, and with which restrictions.", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "ban-tslint-comment": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow \`// tslint:\` comments", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/ban-tslint-comment", - }, - "fixable": "code", - "messages": { - "commentDetected": "tslint comment detected: "{{ text }}"", - }, - "schema": [], - "type": "suggestion", - }, - }, - "class-literal-property-style": { - "create": [Function], - "defaultOptions": [ - "fields", - ], - "meta": { - "docs": { - "description": "Enforce that literals on classes are exposed in a consistent style", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/class-literal-property-style", - }, - "hasSuggestions": true, - "messages": { - "preferFieldStyle": "Literals should be exposed using readonly fields.", - "preferFieldStyleSuggestion": "Replace the literals with readonly fields.", - "preferGetterStyle": "Literals should be exposed using getters.", - "preferGetterStyleSuggestion": "Replace the literals with getters.", - }, - "schema": [ - { - "description": "Which literal class member syntax to prefer.", - "enum": [ - "fields", - "getters", - ], - "type": "string", - }, - ], - "type": "problem", - }, - }, - "class-methods-use-this": { - "create": [Function], - "defaultOptions": [ - { - "enforceForClassFields": true, - "exceptMethods": [], - "ignoreClassesThatImplementAnInterface": false, - "ignoreOverrideMethods": false, - }, - ], - "meta": { - "docs": { - "description": "Enforce that class methods utilize \`this\`", - "extendsBaseRule": true, - "requiresTypeChecking": false, - "url": "https://typescript-eslint.io/rules/class-methods-use-this", - }, - "messages": { - "missingThis": "Expected 'this' to be used by class {{name}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "enforceForClassFields": { - "description": "Enforces that functions used as instance field initializers utilize \`this\`.", - "type": "boolean", - }, - "exceptMethods": { - "description": "Allows specified method names to be ignored with this rule.", - "items": { - "type": "string", - }, - "type": "array", - }, - "ignoreClassesThatImplementAnInterface": { - "description": "Whether to ignore class members that are defined within a class that \`implements\` a type.", - "oneOf": [ - { - "description": "Ignore all classes that implement an interface", - "type": "boolean", - }, - { - "description": "Ignore only the public fields of classes that implement an interface", - "enum": [ - "public-fields", - ], - "type": "string", - }, - ], - }, - "ignoreOverrideMethods": { - "description": "Whether to ignore members marked with the \`override\` modifier.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "consistent-generic-constructors": { - "create": [Function], - "defaultOptions": [ - "constructor", - ], - "meta": { - "docs": { - "description": "Enforce specifying generic type arguments on type annotation or constructor name of a constructor call", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/consistent-generic-constructors", - }, - "fixable": "code", - "messages": { - "preferConstructor": "The generic type arguments should be specified as part of the constructor type arguments.", - "preferTypeAnnotation": "The generic type arguments should be specified as part of the type annotation.", - }, - "schema": [ - { - "description": "Which constructor call syntax to prefer.", - "enum": [ - "type-annotation", - "constructor", - ], - "type": "string", - }, - ], - "type": "suggestion", - }, - }, - "consistent-indexed-object-style": { - "create": [Function], - "defaultOptions": [ - "record", - ], - "meta": { - "docs": { - "description": "Require or disallow the \`Record\` type", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/consistent-indexed-object-style", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "preferIndexSignature": "An index signature is preferred over a record.", - "preferIndexSignatureSuggestion": "Change into an index signature instead of a record.", - "preferRecord": "A record is preferred over an index signature.", - }, - "schema": [ - { - "description": "Which indexed object syntax to prefer.", - "enum": [ - "record", - "index-signature", - ], - "type": "string", - }, - ], - "type": "suggestion", - }, - }, - "consistent-return": { - "create": [Function], - "defaultOptions": [ - { - "treatUndefinedAsUnspecified": false, - }, - ], - "meta": { - "defaultOptions": [ - { - "treatUndefinedAsUnspecified": false, - }, - ], - "docs": { - "description": "Require \`return\` statements to either always or never specify values", - "extendsBaseRule": true, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/consistent-return", - }, - "hasSuggestions": undefined, - "messages": { - "missingReturn": "Expected to return a value at the end of {{name}}.", - "missingReturnValue": "{{name}} expected a return value.", - "unexpectedReturnValue": "{{name}} expected no return value.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "treatUndefinedAsUnspecified": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "consistent-type-assertions": { - "create": [Function], - "defaultOptions": [ - { - "arrayLiteralTypeAssertions": "allow", - "assertionStyle": "as", - "objectLiteralTypeAssertions": "allow", - }, - ], - "meta": { - "docs": { - "description": "Enforce consistent usage of type assertions", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/consistent-type-assertions", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "angle-bracket": "Use '<{{cast}}>' instead of 'as {{cast}}'.", - "as": "Use 'as {{cast}}' instead of '<{{cast}}>'.", - "never": "Do not use any type assertions.", - "replaceArrayTypeAssertionWithAnnotation": "Use const x: {{cast}} = [ ... ] instead.", - "replaceArrayTypeAssertionWithSatisfies": "Use const x = [ ... ] satisfies {{cast}} instead.", - "replaceObjectTypeAssertionWithAnnotation": "Use const x: {{cast}} = { ... } instead.", - "replaceObjectTypeAssertionWithSatisfies": "Use const x = { ... } satisfies {{cast}} instead.", - "unexpectedArrayTypeAssertion": "Always prefer const x: T[] = [ ... ].", - "unexpectedObjectTypeAssertion": "Always prefer const x: T = { ... }.", - }, - "schema": [ - { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "assertionStyle": { - "description": "The expected assertion style to enforce.", - "enum": [ - "never", - ], - "type": "string", - }, - }, - "required": [ - "assertionStyle", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "arrayLiteralTypeAssertions": { - "description": "Whether to always prefer type declarations for array literals used as variable initializers, rather than type assertions.", - "enum": [ - "allow", - "allow-as-parameter", - "never", - ], - "type": "string", - }, - "assertionStyle": { - "description": "The expected assertion style to enforce.", - "enum": [ - "as", - "angle-bracket", - ], - "type": "string", - }, - "objectLiteralTypeAssertions": { - "description": "Whether to always prefer type declarations for object literals used as variable initializers, rather than type assertions.", - "enum": [ - "allow", - "allow-as-parameter", - "never", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "suggestion", - }, - }, - "consistent-type-definitions": { - "create": [Function], - "defaultOptions": [ - "interface", - ], - "meta": { - "docs": { - "description": "Enforce type definitions to consistently use either \`interface\` or \`type\`", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/consistent-type-definitions", - }, - "fixable": "code", - "messages": { - "interfaceOverType": "Use an \`interface\` instead of a \`type\`.", - "typeOverInterface": "Use a \`type\` instead of an \`interface\`.", - }, - "schema": [ - { - "description": "Which type definition syntax to prefer.", - "enum": [ - "interface", - "type", - ], - "type": "string", - }, - ], - "type": "suggestion", - }, - }, - "consistent-type-exports": { - "create": [Function], - "defaultOptions": [ - { - "fixMixedExportsWithInlineTypeSpecifier": false, - }, - ], - "meta": { - "docs": { - "description": "Enforce consistent usage of type exports", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/consistent-type-exports", - }, - "fixable": "code", - "messages": { - "multipleExportsAreTypes": "Type exports {{exportNames}} are not values and should be exported using \`export type\`.", - "singleExportIsType": "Type export {{exportNames}} is not a value and should be exported using \`export type\`.", - "typeOverValue": "All exports in the declaration are only used as types. Use \`export type\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "fixMixedExportsWithInlineTypeSpecifier": { - "description": "Whether the rule will autofix "mixed" export cases using TS inline type specifiers.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "consistent-type-imports": { - "create": [Function], - "defaultOptions": [ - { - "disallowTypeAnnotations": true, - "fixStyle": "separate-type-imports", - "prefer": "type-imports", - }, - ], - "meta": { - "docs": { - "description": "Enforce consistent usage of type imports", - "url": "https://typescript-eslint.io/rules/consistent-type-imports", - }, - "fixable": "code", - "messages": { - "avoidImportType": "Use an \`import\` instead of an \`import type\`.", - "noImportTypeAnnotations": "\`import()\` type annotations are forbidden.", - "someImportsAreOnlyTypes": "Imports {{typeImports}} are only used as type.", - "typeOverValue": "All imports in the declaration are only used as types. Use \`import type\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "disallowTypeAnnotations": { - "description": "Whether to disallow type imports in type annotations (\`import()\`).", - "type": "boolean", - }, - "fixStyle": { - "description": "The expected type modifier to be added when an import is detected as used only in the type position.", - "enum": [ - "separate-type-imports", - "inline-type-imports", - ], - "type": "string", - }, - "prefer": { - "description": "The expected import kind for type-only imports.", - "enum": [ - "type-imports", - "no-type-imports", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "default-param-last": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce default parameters to be last", - "extendsBaseRule": true, - "frozen": true, - "url": "https://typescript-eslint.io/rules/default-param-last", - }, - "messages": { - "shouldBeLast": "Default parameters should be last.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "dot-notation": { - "create": [Function], - "defaultOptions": [ - { - "allowIndexSignaturePropertyAccess": false, - "allowKeywords": true, - "allowPattern": "", - "allowPrivateClassPropertyAccess": false, - "allowProtectedClassPropertyAccess": false, - }, - ], - "meta": { - "defaultOptions": [ - { - "allowIndexSignaturePropertyAccess": false, - "allowKeywords": true, - "allowPattern": "", - "allowPrivateClassPropertyAccess": false, - "allowProtectedClassPropertyAccess": false, - }, - ], - "docs": { - "description": "Enforce dot notation whenever possible", - "extendsBaseRule": true, - "frozen": true, - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/dot-notation", - }, - "fixable": "code", - "hasSuggestions": undefined, - "messages": { - "useBrackets": ".{{key}} is a syntax error.", - "useDot": "[{{key}}] is better written in dot notation.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowIndexSignaturePropertyAccess": { - "description": "Whether to allow accessing properties matching an index signature with array notation.", - "type": "boolean", - }, - "allowKeywords": { - "description": "Whether to allow keywords such as ["class"]\`.", - "type": "boolean", - }, - "allowPattern": { - "description": "Regular expression of names to allow.", - "type": "string", - }, - "allowPrivateClassPropertyAccess": { - "description": "Whether to allow accessing class members marked as \`private\` with array notation.", - "type": "boolean", - }, - "allowProtectedClassPropertyAccess": { - "description": "Whether to allow accessing class members marked as \`protected\` with array notation.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "explicit-function-return-type": { - "create": [Function], - "defaultOptions": [ - { - "allowConciseArrowFunctionExpressionsStartingWithVoid": false, - "allowDirectConstAssertionInArrowFunctions": true, - "allowExpressions": false, - "allowFunctionsWithoutTypeParameters": false, - "allowHigherOrderFunctions": true, - "allowIIFEs": false, - "allowTypedFunctionExpressions": true, - "allowedNames": [], - }, - ], - "meta": { - "docs": { - "description": "Require explicit return types on functions and class methods", - "url": "https://typescript-eslint.io/rules/explicit-function-return-type", - }, - "messages": { - "missingReturnType": "Missing return type on function.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowConciseArrowFunctionExpressionsStartingWithVoid": { - "description": "Whether to allow arrow functions that start with the \`void\` keyword.", - "type": "boolean", - }, - "allowDirectConstAssertionInArrowFunctions": { - "description": "Whether to ignore arrow functions immediately returning a \`as const\` value.", - "type": "boolean", - }, - "allowExpressions": { - "description": "Whether to ignore function expressions (functions which are not part of a declaration).", - "type": "boolean", - }, - "allowFunctionsWithoutTypeParameters": { - "description": "Whether to ignore functions that don't have generic type parameters.", - "type": "boolean", - }, - "allowHigherOrderFunctions": { - "description": "Whether to ignore functions immediately returning another function expression.", - "type": "boolean", - }, - "allowIIFEs": { - "description": "Whether to ignore immediately invoked function expressions (IIFEs).", - "type": "boolean", - }, - "allowTypedFunctionExpressions": { - "description": "Whether to ignore type annotations on the variable of function expressions.", - "type": "boolean", - }, - "allowedNames": { - "description": "An array of function/method names that will not have their arguments or return values checked.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "explicit-member-accessibility": { - "create": [Function], - "defaultOptions": [ - { - "accessibility": "explicit", - }, - ], - "meta": { - "docs": { - "description": "Require explicit accessibility modifiers on class properties and methods", - "url": "https://typescript-eslint.io/rules/explicit-member-accessibility", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "addExplicitAccessibility": "Add '{{ type }}' accessibility modifier", - "missingAccessibility": "Missing accessibility modifier on {{type}} {{name}}.", - "unwantedPublicAccessibility": "Public accessibility modifier on {{type}} {{name}}.", - }, - "schema": [ - { - "$defs": { - "accessibilityLevel": { - "oneOf": [ - { - "description": "Always require an accessor.", - "enum": [ - "explicit", - ], - "type": "string", - }, - { - "description": "Require an accessor except when public.", - "enum": [ - "no-public", - ], - "type": "string", - }, - { - "description": "Never check whether there is an accessor.", - "enum": [ - "off", - ], - "type": "string", - }, - ], - }, - }, - "additionalProperties": false, - "properties": { - "accessibility": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which accessibility modifier is required to exist or not exist.", - }, - "ignoredMethodNames": { - "description": "Specific method names that may be ignored.", - "items": { - "type": "string", - }, - "type": "array", - }, - "overrides": { - "additionalProperties": false, - "description": "Changes to required accessibility modifiers for specific kinds of class members.", - "properties": { - "accessors": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which member accessibility modifier requirements to apply for accessors.", - }, - "constructors": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which member accessibility modifier requirements to apply for constructors.", - }, - "methods": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which member accessibility modifier requirements to apply for methods.", - }, - "parameterProperties": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which member accessibility modifier requirements to apply for parameterProperties.", - }, - "properties": { - "$ref": "#/items/0/$defs/accessibilityLevel", - "description": "Which member accessibility modifier requirements to apply for properties.", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "explicit-module-boundary-types": { - "create": [Function], - "defaultOptions": [ - { - "allowArgumentsExplicitlyTypedAsAny": false, - "allowDirectConstAssertionInArrowFunctions": true, - "allowHigherOrderFunctions": true, - "allowOverloadFunctions": false, - "allowTypedFunctionExpressions": true, - "allowedNames": [], - }, - ], - "meta": { - "docs": { - "description": "Require explicit return and argument types on exported functions' and classes' public class methods", - "url": "https://typescript-eslint.io/rules/explicit-module-boundary-types", - }, - "messages": { - "anyTypedArg": "Argument '{{name}}' should be typed with a non-any type.", - "anyTypedArgUnnamed": "{{type}} argument should be typed with a non-any type.", - "missingArgType": "Argument '{{name}}' should be typed.", - "missingArgTypeUnnamed": "{{type}} argument should be typed.", - "missingReturnType": "Missing return type on function.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowArgumentsExplicitlyTypedAsAny": { - "description": "Whether to ignore arguments that are explicitly typed as \`any\`.", - "type": "boolean", - }, - "allowDirectConstAssertionInArrowFunctions": { - "description": "Whether to ignore return type annotations on body-less arrow functions that return an \`as const\` type assertion. -You must still type the parameters of the function.", - "type": "boolean", - }, - "allowHigherOrderFunctions": { - "description": "Whether to ignore return type annotations on functions immediately returning another function expression. -You must still type the parameters of the function.", - "type": "boolean", - }, - "allowOverloadFunctions": { - "description": "Whether to ignore return type annotations on functions with overload signatures.", - "type": "boolean", - }, - "allowTypedFunctionExpressions": { - "description": "Whether to ignore type annotations on the variable of a function expression.", - "type": "boolean", - }, - "allowedNames": { - "description": "An array of function/method names that will not have their arguments or return values checked.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "init-declarations": { - "create": [Function], - "defaultOptions": [ - "always", - ], - "meta": { - "docs": { - "description": "Require or disallow initialization in variable declarations", - "extendsBaseRule": true, - "frozen": true, - "url": "https://typescript-eslint.io/rules/init-declarations", - }, - "hasSuggestions": undefined, - "messages": { - "initialized": "Variable '{{idName}}' should be initialized on declaration.", - "notInitialized": "Variable '{{idName}}' should not be initialized on declaration.", - }, - "schema": { - "anyOf": [ - { - "items": [ - { - "enum": [ - "always", - ], - }, - ], - "maxItems": 1, - "minItems": 0, - "type": "array", - }, - { - "items": [ - { - "enum": [ - "never", - ], - }, - { - "additionalProperties": false, - "properties": { - "ignoreForLoopInit": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "maxItems": 2, - "minItems": 0, - "type": "array", - }, - ], - }, - "type": "suggestion", - }, - }, - "max-params": { - "create": [Function], - "defaultOptions": [ - { - "countVoidThis": false, - "max": 3, - }, - ], - "meta": { - "docs": { - "description": "Enforce a maximum number of parameters in function definitions", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/max-params", - }, - "messages": { - "exceed": "{{name}} has too many parameters ({{count}}). Maximum allowed is {{max}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "countVoidThis": { - "description": "Whether to count a \`this\` declaration when the type is \`void\`.", - "type": "boolean", - }, - "max": { - "description": "A maximum number of parameters in function definitions.", - "minimum": 0, - "type": "integer", - }, - "maximum": { - "description": "(deprecated) A maximum number of parameters in function definitions.", - "minimum": 0, - "type": "integer", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "member-ordering": { - "create": [Function], - "defaultOptions": [ - { - "default": { - "memberTypes": [ - "signature", - "call-signature", - "public-static-field", - "protected-static-field", - "private-static-field", - "#private-static-field", - "public-decorated-field", - "protected-decorated-field", - "private-decorated-field", - "public-instance-field", - "protected-instance-field", - "private-instance-field", - "#private-instance-field", - "public-abstract-field", - "protected-abstract-field", - "public-field", - "protected-field", - "private-field", - "#private-field", - "static-field", - "instance-field", - "abstract-field", - "decorated-field", - "field", - "static-initialization", - "public-constructor", - "protected-constructor", - "private-constructor", - "constructor", - "public-static-accessor", - "protected-static-accessor", - "private-static-accessor", - "#private-static-accessor", - "public-decorated-accessor", - "protected-decorated-accessor", - "private-decorated-accessor", - "public-instance-accessor", - "protected-instance-accessor", - "private-instance-accessor", - "#private-instance-accessor", - "public-abstract-accessor", - "protected-abstract-accessor", - "public-accessor", - "protected-accessor", - "private-accessor", - "#private-accessor", - "static-accessor", - "instance-accessor", - "abstract-accessor", - "decorated-accessor", - "accessor", - "public-static-get", - "protected-static-get", - "private-static-get", - "#private-static-get", - "public-decorated-get", - "protected-decorated-get", - "private-decorated-get", - "public-instance-get", - "protected-instance-get", - "private-instance-get", - "#private-instance-get", - "public-abstract-get", - "protected-abstract-get", - "public-get", - "protected-get", - "private-get", - "#private-get", - "static-get", - "instance-get", - "abstract-get", - "decorated-get", - "get", - "public-static-set", - "protected-static-set", - "private-static-set", - "#private-static-set", - "public-decorated-set", - "protected-decorated-set", - "private-decorated-set", - "public-instance-set", - "protected-instance-set", - "private-instance-set", - "#private-instance-set", - "public-abstract-set", - "protected-abstract-set", - "public-set", - "protected-set", - "private-set", - "#private-set", - "static-set", - "instance-set", - "abstract-set", - "decorated-set", - "set", - "public-static-method", - "protected-static-method", - "private-static-method", - "#private-static-method", - "public-decorated-method", - "protected-decorated-method", - "private-decorated-method", - "public-instance-method", - "protected-instance-method", - "private-instance-method", - "#private-instance-method", - "public-abstract-method", - "protected-abstract-method", - "public-method", - "protected-method", - "private-method", - "#private-method", - "static-method", - "instance-method", - "abstract-method", - "decorated-method", - "method", - ], - }, - }, - ], - "meta": { - "docs": { - "description": "Require a consistent member declaration order", - "frozen": true, - "url": "https://typescript-eslint.io/rules/member-ordering", - }, - "messages": { - "incorrectGroupOrder": "Member {{name}} should be declared before all {{rank}} definitions.", - "incorrectOrder": "Member {{member}} should be declared before member {{beforeMember}}.", - "incorrectRequiredMembersOrder": "Member {{member}} should be declared after all {{optionalOrRequired}} members.", - }, - "schema": [ - { - "$defs": { - "allItems": { - "enum": [ - "readonly-signature", - "signature", - "readonly-field", - "public-readonly-field", - "public-decorated-readonly-field", - "decorated-readonly-field", - "static-readonly-field", - "public-static-readonly-field", - "instance-readonly-field", - "public-instance-readonly-field", - "abstract-readonly-field", - "public-abstract-readonly-field", - "protected-readonly-field", - "protected-decorated-readonly-field", - "protected-static-readonly-field", - "protected-instance-readonly-field", - "protected-abstract-readonly-field", - "private-readonly-field", - "private-decorated-readonly-field", - "private-static-readonly-field", - "private-instance-readonly-field", - "#private-readonly-field", - "#private-static-readonly-field", - "#private-instance-readonly-field", - "field", - "public-field", - "public-decorated-field", - "decorated-field", - "static-field", - "public-static-field", - "instance-field", - "public-instance-field", - "abstract-field", - "public-abstract-field", - "protected-field", - "protected-decorated-field", - "protected-static-field", - "protected-instance-field", - "protected-abstract-field", - "private-field", - "private-decorated-field", - "private-static-field", - "private-instance-field", - "#private-field", - "#private-static-field", - "#private-instance-field", - "method", - "public-method", - "public-decorated-method", - "decorated-method", - "static-method", - "public-static-method", - "instance-method", - "public-instance-method", - "abstract-method", - "public-abstract-method", - "protected-method", - "protected-decorated-method", - "protected-static-method", - "protected-instance-method", - "protected-abstract-method", - "private-method", - "private-decorated-method", - "private-static-method", - "private-instance-method", - "#private-method", - "#private-static-method", - "#private-instance-method", - "call-signature", - "constructor", - "public-constructor", - "protected-constructor", - "private-constructor", - "accessor", - "public-accessor", - "public-decorated-accessor", - "decorated-accessor", - "static-accessor", - "public-static-accessor", - "instance-accessor", - "public-instance-accessor", - "abstract-accessor", - "public-abstract-accessor", - "protected-accessor", - "protected-decorated-accessor", - "protected-static-accessor", - "protected-instance-accessor", - "protected-abstract-accessor", - "private-accessor", - "private-decorated-accessor", - "private-static-accessor", - "private-instance-accessor", - "#private-accessor", - "#private-static-accessor", - "#private-instance-accessor", - "get", - "public-get", - "public-decorated-get", - "decorated-get", - "static-get", - "public-static-get", - "instance-get", - "public-instance-get", - "abstract-get", - "public-abstract-get", - "protected-get", - "protected-decorated-get", - "protected-static-get", - "protected-instance-get", - "protected-abstract-get", - "private-get", - "private-decorated-get", - "private-static-get", - "private-instance-get", - "#private-get", - "#private-static-get", - "#private-instance-get", - "set", - "public-set", - "public-decorated-set", - "decorated-set", - "static-set", - "public-static-set", - "instance-set", - "public-instance-set", - "abstract-set", - "public-abstract-set", - "protected-set", - "protected-decorated-set", - "protected-static-set", - "protected-instance-set", - "protected-abstract-set", - "private-set", - "private-decorated-set", - "private-static-set", - "private-instance-set", - "#private-set", - "#private-static-set", - "#private-instance-set", - "static-initialization", - "static-static-initialization", - "public-static-static-initialization", - "instance-static-initialization", - "public-instance-static-initialization", - "abstract-static-initialization", - "public-abstract-static-initialization", - "protected-static-static-initialization", - "protected-instance-static-initialization", - "protected-abstract-static-initialization", - "private-static-static-initialization", - "private-instance-static-initialization", - "#private-static-static-initialization", - "#private-instance-static-initialization", - ], - "type": "string", - }, - "baseConfig": { - "oneOf": [ - { - "enum": [ - "never", - ], - "type": "string", - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/items/0/$defs/allItems", - }, - { - "items": { - "$ref": "#/items/0/$defs/allItems", - }, - "type": "array", - }, - ], - }, - "type": "array", - }, - { - "additionalProperties": false, - "properties": { - "memberTypes": { - "oneOf": [ - { - "items": { - "oneOf": [ - { - "$ref": "#/items/0/$defs/allItems", - }, - { - "items": { - "$ref": "#/items/0/$defs/allItems", - }, - "type": "array", - }, - ], - }, - "type": "array", - }, - { - "enum": [ - "never", - ], - "type": "string", - }, - ], - }, - "optionalityOrder": { - "$ref": "#/items/0/$defs/optionalityOrderOptions", - }, - "order": { - "$ref": "#/items/0/$defs/orderOptions", - }, - }, - "type": "object", - }, - ], - }, - "optionalityOrderOptions": { - "enum": [ - "optional-first", - "required-first", - ], - "type": "string", - }, - "orderOptions": { - "enum": [ - "alphabetically", - "alphabetically-case-insensitive", - "as-written", - "natural", - "natural-case-insensitive", - ], - "type": "string", - }, - "typeItems": { - "enum": [ - "readonly-signature", - "signature", - "readonly-field", - "field", - "method", - "constructor", - ], - "type": "string", - }, - "typesConfig": { - "oneOf": [ - { - "enum": [ - "never", - ], - "type": "string", - }, - { - "items": { - "oneOf": [ - { - "$ref": "#/items/0/$defs/typeItems", - }, - { - "items": { - "$ref": "#/items/0/$defs/typeItems", - }, - "type": "array", - }, - ], - }, - "type": "array", - }, - { - "additionalProperties": false, - "properties": { - "memberTypes": { - "oneOf": [ - { - "items": { - "oneOf": [ - { - "$ref": "#/items/0/$defs/typeItems", - }, - { - "items": { - "$ref": "#/items/0/$defs/typeItems", - }, - "type": "array", - }, - ], - }, - "type": "array", - }, - { - "enum": [ - "never", - ], - "type": "string", - }, - ], - }, - "optionalityOrder": { - "$ref": "#/items/0/$defs/optionalityOrderOptions", - }, - "order": { - "$ref": "#/items/0/$defs/orderOptions", - }, - }, - "type": "object", - }, - ], - }, - }, - "additionalProperties": false, - "properties": { - "classExpressions": { - "$ref": "#/items/0/$defs/baseConfig", - "description": "Which ordering to enforce for classExpressions.", - }, - "classes": { - "$ref": "#/items/0/$defs/baseConfig", - "description": "Which ordering to enforce for classes.", - }, - "default": { - "$ref": "#/items/0/$defs/baseConfig", - "description": "Which ordering to enforce for default.", - }, - "interfaces": { - "$ref": "#/items/0/$defs/typesConfig", - "description": "Which ordering to enforce for interfaces.", - }, - "typeLiterals": { - "$ref": "#/items/0/$defs/typesConfig", - "description": "Which ordering to enforce for typeLiterals.", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "method-signature-style": { - "create": [Function], - "defaultOptions": [ - "property", - ], - "meta": { - "docs": { - "description": "Enforce using a particular method signature syntax", - "url": "https://typescript-eslint.io/rules/method-signature-style", - }, - "fixable": "code", - "messages": { - "errorMethod": "Shorthand method signature is forbidden. Use a function property instead.", - "errorProperty": "Function property signature is forbidden. Use a method shorthand instead.", - }, - "schema": [ - { - "description": "The method signature style to enforce using.", - "enum": [ - "property", - "method", - ], - "type": "string", - }, - ], - "type": "suggestion", - }, - }, - "naming-convention": { - "create": [Function], - "defaultOptions": [ - { - "format": [ - "camelCase", - ], - "leadingUnderscore": "allow", - "selector": "default", - "trailingUnderscore": "allow", - }, - { - "format": [ - "camelCase", - "PascalCase", - ], - "selector": "import", - }, - { - "format": [ - "camelCase", - "UPPER_CASE", - ], - "leadingUnderscore": "allow", - "selector": "variable", - "trailingUnderscore": "allow", - }, - { - "format": [ - "PascalCase", - ], - "selector": "typeLike", - }, - ], - "meta": { - "docs": { - "description": "Enforce naming conventions for everything across a codebase", - "frozen": true, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/naming-convention", - }, - "messages": { - "doesNotMatchFormat": "{{type}} name \`{{name}}\` must match one of the following formats: {{formats}}", - "doesNotMatchFormatTrimmed": "{{type}} name \`{{name}}\` trimmed as \`{{processedName}}\` must match one of the following formats: {{formats}}", - "missingAffix": "{{type}} name \`{{name}}\` must have one of the following {{position}}es: {{affixes}}", - "missingUnderscore": "{{type}} name \`{{name}}\` must have {{count}} {{position}} underscore(s).", - "satisfyCustom": "{{type}} name \`{{name}}\` must {{regexMatch}} the RegExp: {{regex}}", - "unexpectedUnderscore": "{{type}} name \`{{name}}\` must not have a {{position}} underscore.", - }, - "schema": { - "$defs": { - "formatOptionsConfig": { - "oneOf": [ - { - "additionalItems": false, - "items": { - "$ref": "#/$defs/predefinedFormats", - }, - "type": "array", - }, - { - "type": "null", - }, - ], - }, - "matchRegexConfig": { - "additionalProperties": false, - "properties": { - "match": { - "type": "boolean", - }, - "regex": { - "type": "string", - }, - }, - "required": [ - "match", - "regex", - ], - "type": "object", - }, - "predefinedFormats": { - "enum": [ - "camelCase", - "strictCamelCase", - "PascalCase", - "StrictPascalCase", - "snake_case", - "UPPER_CASE", - ], - "type": "string", - }, - "prefixSuffixConfig": { - "additionalItems": false, - "items": { - "minLength": 1, - "type": "string", - }, - "type": "array", - }, - "typeModifiers": { - "enum": [ - "boolean", - "string", - "number", - "function", - "array", - ], - "type": "string", - }, - "underscoreOptions": { - "enum": [ - "forbid", - "allow", - "require", - "requireDouble", - "allowDouble", - "allowSingleOrDouble", - ], - "type": "string", - }, - }, - "additionalItems": false, - "items": { - "oneOf": [ - { - "additionalProperties": false, - "description": "Multiple selectors in one config", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "const", - "readonly", - "static", - "public", - "protected", - "private", - "#private", - "abstract", - "destructured", - "global", - "exported", - "unused", - "requiresQuotes", - "override", - "async", - "default", - "namespace", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "additionalItems": false, - "items": { - "enum": [ - "default", - "variableLike", - "memberLike", - "typeLike", - "method", - "property", - "accessor", - "variable", - "function", - "parameter", - "parameterProperty", - "classicAccessor", - "enumMember", - "classMethod", - "objectLiteralMethod", - "typeMethod", - "classProperty", - "objectLiteralProperty", - "typeProperty", - "autoAccessor", - "class", - "interface", - "typeAlias", - "enum", - "typeParameter", - "import", - ], - "type": "string", - }, - "type": "array", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'default'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "const", - "readonly", - "static", - "public", - "protected", - "private", - "#private", - "abstract", - "destructured", - "global", - "exported", - "unused", - "requiresQuotes", - "override", - "async", - "default", - "namespace", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "default", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'variableLike'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "unused", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "variableLike", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'variable'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "const", - "destructured", - "exported", - "global", - "unused", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "variable", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'function'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "exported", - "global", - "unused", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "function", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'parameter'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "destructured", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "parameter", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'memberLike'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "#private", - "protected", - "public", - "readonly", - "requiresQuotes", - "static", - "override", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "memberLike", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'classProperty'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "#private", - "protected", - "public", - "readonly", - "requiresQuotes", - "static", - "override", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "classProperty", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'objectLiteralProperty'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "public", - "requiresQuotes", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "objectLiteralProperty", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'typeProperty'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "public", - "readonly", - "requiresQuotes", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "typeProperty", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'parameterProperty'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "private", - "protected", - "public", - "readonly", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "parameterProperty", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'property'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "#private", - "protected", - "public", - "readonly", - "requiresQuotes", - "static", - "override", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "property", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'classMethod'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "#private", - "protected", - "public", - "requiresQuotes", - "static", - "override", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "classMethod", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'objectLiteralMethod'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "public", - "requiresQuotes", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "objectLiteralMethod", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'typeMethod'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "public", - "requiresQuotes", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "typeMethod", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'method'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "#private", - "protected", - "public", - "requiresQuotes", - "static", - "override", - "async", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "method", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'classicAccessor'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "protected", - "public", - "requiresQuotes", - "static", - "override", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "classicAccessor", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'autoAccessor'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "protected", - "public", - "requiresQuotes", - "static", - "override", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "autoAccessor", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'accessor'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "private", - "protected", - "public", - "requiresQuotes", - "static", - "override", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "accessor", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "types": { - "additionalItems": false, - "items": { - "$ref": "#/$defs/typeModifiers", - }, - "type": "array", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'enumMember'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "requiresQuotes", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "enumMember", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'typeLike'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "exported", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "typeLike", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'class'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "abstract", - "exported", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "class", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'interface'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "exported", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "interface", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'typeAlias'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "exported", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "typeAlias", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'enum'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "exported", - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "enum", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'typeParameter'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "unused", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "typeParameter", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - { - "additionalProperties": false, - "description": "Selector 'import'", - "properties": { - "custom": { - "$ref": "#/$defs/matchRegexConfig", - }, - "failureMessage": { - "type": "string", - }, - "filter": { - "oneOf": [ - { - "minLength": 1, - "type": "string", - }, - { - "$ref": "#/$defs/matchRegexConfig", - }, - ], - }, - "format": { - "$ref": "#/$defs/formatOptionsConfig", - }, - "leadingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - "modifiers": { - "additionalItems": false, - "items": { - "enum": [ - "default", - "namespace", - ], - "type": "string", - }, - "type": "array", - }, - "prefix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "selector": { - "enum": [ - "import", - ], - "type": "string", - }, - "suffix": { - "$ref": "#/$defs/prefixSuffixConfig", - }, - "trailingUnderscore": { - "$ref": "#/$defs/underscoreOptions", - }, - }, - "required": [ - "selector", - "format", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "type": "suggestion", - }, - }, - "no-array-constructor": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow generic \`Array\` constructors", - "extendsBaseRule": true, - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-array-constructor", - }, - "fixable": "code", - "messages": { - "useLiteral": "The array literal notation [] is preferable.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-array-delete": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow using the \`delete\` operator on array values", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-array-delete", - }, - "hasSuggestions": true, - "messages": { - "noArrayDelete": "Using the \`delete\` operator with an array expression is unsafe.", - "useSplice": "Use \`array.splice()\` instead.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-base-to-string": { - "create": [Function], - "defaultOptions": [ - { - "checkUnknown": false, - "ignoredTypeNames": [ - "Error", - "RegExp", - "URL", - "URLSearchParams", - ], - }, - ], - "meta": { - "docs": { - "description": "Require \`.toString()\` and \`.toLocaleString()\` to only be called on objects which provide useful information when stringified", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-base-to-string", - }, - "messages": { - "baseArrayJoin": "Using \`join()\` for {{name}} {{certainty}} use Object's default stringification format ('[object Object]') when stringified.", - "baseToString": "'{{name}}' {{certainty}} use Object's default stringification format ('[object Object]') when stringified.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkUnknown": { - "description": "Whether to also check values of type \`unknown\`", - "type": "boolean", - }, - "ignoredTypeNames": { - "description": "Stringified type names to ignore.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-confusing-non-null-assertion": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow non-null assertion in locations that may be confusing", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/no-confusing-non-null-assertion", - }, - "hasSuggestions": true, - "messages": { - "confusingAssign": "Confusing combination of non-null assertion and assignment like \`a! = b\`, which looks very similar to \`a != b\`.", - "confusingEqual": "Confusing combination of non-null assertion and equality test like \`a! == b\`, which looks very similar to \`a !== b\`.", - "confusingOperator": "Confusing combination of non-null assertion and \`{{operator}}\` operator like \`a! {{operator}} b\`, which might be misinterpreted as \`!(a {{operator}} b)\`.", - "notNeedInAssign": "Remove unnecessary non-null assertion (!) in assignment left-hand side.", - "notNeedInEqualTest": "Remove unnecessary non-null assertion (!) in equality test.", - "notNeedInOperator": "Remove possibly unnecessary non-null assertion (!) in the left operand of the \`{{operator}}\` operator.", - "wrapUpLeft": "Wrap the left-hand side in parentheses to avoid confusion with "{{operator}}" operator.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-confusing-void-expression": { - "create": [Function], - "defaultOptions": [ - { - "ignoreArrowShorthand": false, - "ignoreVoidOperator": false, - "ignoreVoidReturningFunctions": false, - }, - ], - "meta": { - "docs": { - "description": "Require expressions of type void to appear in statement position", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-confusing-void-expression", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "invalidVoidExpr": "Placing a void expression inside another expression is forbidden. Move it to its own statement instead.", - "invalidVoidExprArrow": "Returning a void expression from an arrow function shorthand is forbidden. Please add braces to the arrow function.", - "invalidVoidExprArrowWrapVoid": "Void expressions returned from an arrow function shorthand must be marked explicitly with the \`void\` operator.", - "invalidVoidExprReturn": "Returning a void expression from a function is forbidden. Please move it before the \`return\` statement.", - "invalidVoidExprReturnLast": "Returning a void expression from a function is forbidden. Please remove the \`return\` statement.", - "invalidVoidExprReturnWrapVoid": "Void expressions returned from a function must be marked explicitly with the \`void\` operator.", - "invalidVoidExprWrapVoid": "Void expressions used inside another expression must be moved to its own statement or marked explicitly with the \`void\` operator.", - "voidExprWrapVoid": "Mark with an explicit \`void\` operator.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreArrowShorthand": { - "description": "Whether to ignore "shorthand" \`() =>\` arrow functions: those without \`{ ... }\` braces.", - "type": "boolean", - }, - "ignoreVoidOperator": { - "description": "Whether to ignore returns that start with the \`void\` operator.", - "type": "boolean", - }, - "ignoreVoidReturningFunctions": { - "description": "Whether to ignore returns from functions with explicit \`void\` return types and functions with contextual \`void\` return types.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-deprecated": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - }, - ], - "meta": { - "docs": { - "description": "Disallow using code marked as \`@deprecated\`", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-deprecated", - }, - "messages": { - "deprecated": "\`{{name}}\` is deprecated.", - "deprecatedWithReason": "\`{{name}}\` is deprecated. {{reason}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Type specifiers that can be allowed.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-dupe-class-members": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow duplicate class members", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-dupe-class-members", - }, - "hasSuggestions": undefined, - "messages": { - "unexpected": "Duplicate name '{{name}}'.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-duplicate-enum-values": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow duplicate enum member values", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-duplicate-enum-values", - }, - "hasSuggestions": false, - "messages": { - "duplicateValue": "Duplicate enum member value {{value}}.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-duplicate-type-constituents": { - "create": [Function], - "defaultOptions": [ - { - "ignoreIntersections": false, - "ignoreUnions": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow duplicate constituents of union or intersection types", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-duplicate-type-constituents", - }, - "fixable": "code", - "messages": { - "duplicate": "{{type}} type constituent is duplicated with {{previous}}.", - "unnecessary": "Explicit undefined is unnecessary on an optional parameter.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreIntersections": { - "description": "Whether to ignore \`&\` intersections.", - "type": "boolean", - }, - "ignoreUnions": { - "description": "Whether to ignore \`|\` unions.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-dynamic-delete": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow using the \`delete\` operator on computed key expressions", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-dynamic-delete", - }, - "fixable": "code", - "messages": { - "dynamicDelete": "Do not delete dynamically computed property keys.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-empty-function": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - }, - ], - "meta": { - "defaultOptions": [ - { - "allow": [], - }, - ], - "docs": { - "description": "Disallow empty functions", - "extendsBaseRule": true, - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/no-empty-function", - }, - "hasSuggestions": true, - "messages": { - "suggestComment": "Add comment inside empty {{name}}.", - "unexpected": "Unexpected empty {{name}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Locations and kinds of functions that are allowed to be empty.", - "items": { - "enum": [ - "functions", - "arrowFunctions", - "generatorFunctions", - "methods", - "generatorMethods", - "getters", - "setters", - "constructors", - "private-constructors", - "protected-constructors", - "asyncFunctions", - "asyncMethods", - "decoratedFunctions", - "overrideMethods", - ], - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-empty-interface": { - "create": [Function], - "defaultOptions": [ - { - "allowSingleExtends": false, - }, - ], - "meta": { - "deprecated": { - "deprecatedSince": "8.0.0", - "replacedBy": [ - { - "rule": { - "name": "@typescript-eslint/no-empty-object-type", - "url": "https://typescript-eslint.io/rules/no-empty-object-type", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/8977", - }, - "docs": { - "description": "Disallow the declaration of empty interfaces", - "url": "https://typescript-eslint.io/rules/no-empty-interface", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "noEmpty": "An empty interface is equivalent to \`{}\`.", - "noEmptyWithSuper": "An interface declaring no members is equivalent to its supertype.", - }, - "replacedBy": [ - "@typescript-eslint/no-empty-object-type", - ], - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowSingleExtends": { - "description": "Whether to allow empty interfaces that extend a single other interface.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-empty-object-type": { - "create": [Function], - "defaultOptions": [ - { - "allowInterfaces": "never", - "allowObjectTypes": "never", - }, - ], - "meta": { - "docs": { - "description": "Disallow accidentally using the "empty object" type", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-empty-object-type", - }, - "hasSuggestions": true, - "messages": { - "noEmptyInterface": "An empty interface declaration allows any non-nullish value, including literals like \`0\` and \`""\`. -- If that's what you want, disable this lint rule with an inline comment or configure the '{{ option }}' rule option. -- If you want a type meaning "any object", you probably want \`object\` instead. -- If you want a type meaning "any value", you probably want \`unknown\` instead.", - "noEmptyInterfaceWithSuper": "An interface declaring no members is equivalent to its supertype.", - "noEmptyObject": "The \`{}\` ("empty object") type allows any non-nullish value, including literals like \`0\` and \`""\`. -- If that's what you want, disable this lint rule with an inline comment or configure the '{{ option }}' rule option. -- If you want a type meaning "any object", you probably want \`object\` instead. -- If you want a type meaning "any value", you probably want \`unknown\` instead.", - "replaceEmptyInterface": "Replace empty interface with \`{{replacement}}\`.", - "replaceEmptyInterfaceWithSuper": "Replace empty interface with a type alias.", - "replaceEmptyObjectType": "Replace \`{}\` with \`{{replacement}}\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowInterfaces": { - "description": "Whether to allow empty interfaces.", - "enum": [ - "always", - "never", - "with-single-extends", - ], - "type": "string", - }, - "allowObjectTypes": { - "description": "Whether to allow empty object type literals.", - "enum": [ - "always", - "never", - ], - "type": "string", - }, - "allowWithName": { - "description": "A stringified regular expression to allow interfaces and object type aliases with the configured name.", - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-explicit-any": { - "create": [Function], - "defaultOptions": [ - { - "fixToUnknown": false, - "ignoreRestArgs": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow the \`any\` type", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-explicit-any", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "suggestNever": "Use \`never\` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.", - "suggestPropertyKey": "Use \`PropertyKey\` instead, this is more explicit than \`keyof any\`.", - "suggestUnknown": "Use \`unknown\` instead, this will force you to explicitly, and safely assert the type is correct.", - "unexpectedAny": "Unexpected any. Specify a different type.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "fixToUnknown": { - "description": "Whether to enable auto-fixing in which the \`any\` type is converted to the \`unknown\` type.", - "type": "boolean", - }, - "ignoreRestArgs": { - "description": "Whether to ignore rest parameter arrays.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-extra-non-null-assertion": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow extra non-null assertions", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-extra-non-null-assertion", - }, - "fixable": "code", - "messages": { - "noExtraNonNullAssertion": "Forbidden extra non-null assertion.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-extraneous-class": { - "create": [Function], - "defaultOptions": [ - { - "allowConstructorOnly": false, - "allowEmpty": false, - "allowStaticOnly": false, - "allowWithDecorator": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow classes used as namespaces", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-extraneous-class", - }, - "messages": { - "empty": "Unexpected empty class.", - "onlyConstructor": "Unexpected class with only a constructor.", - "onlyStatic": "Unexpected class with only static properties.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowConstructorOnly": { - "description": "Whether to allow extraneous classes that contain only a constructor.", - "type": "boolean", - }, - "allowEmpty": { - "description": "Whether to allow extraneous classes that have no body (i.e. are empty).", - "type": "boolean", - }, - "allowStaticOnly": { - "description": "Whether to allow extraneous classes that only contain static members.", - "type": "boolean", - }, - "allowWithDecorator": { - "description": "Whether to allow extraneous classes that include a decorator.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-floating-promises": { - "create": [Function], - "defaultOptions": [ - { - "allowForKnownSafeCalls": [], - "allowForKnownSafePromises": [], - "checkThenables": false, - "ignoreIIFE": false, - "ignoreVoid": true, - }, - ], - "meta": { - "docs": { - "description": "Require Promise-like statements to be handled appropriately", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-floating-promises", - }, - "hasSuggestions": true, - "messages": { - "floating": "Promises must be awaited, end with a call to .catch, or end with a call to .then with a rejection handler.", - "floatingFixAwait": "Add await operator.", - "floatingFixVoid": "Add void operator to ignore.", - "floatingPromiseArray": "An array of Promises may be unintentional. Consider handling the promises' fulfillment or rejection with Promise.all or similar.", - "floatingPromiseArrayVoid": "An array of Promises may be unintentional. Consider handling the promises' fulfillment or rejection with Promise.all or similar, or explicitly marking the expression as ignored with the \`void\` operator.", - "floatingUselessRejectionHandler": "Promises must be awaited, end with a call to .catch, or end with a call to .then with a rejection handler. A rejection handler that is not a function will be ignored.", - "floatingUselessRejectionHandlerVoid": "Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the \`void\` operator. A rejection handler that is not a function will be ignored.", - "floatingVoid": "Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the \`void\` operator.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowForKnownSafeCalls": { - "description": "Type specifiers of functions whose calls are safe to float.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "allowForKnownSafePromises": { - "description": "Type specifiers that are known to be safe to float.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "checkThenables": { - "description": "Whether to check all "Thenable"s, not just the built-in Promise type.", - "type": "boolean", - }, - "ignoreIIFE": { - "description": "Whether to ignore async IIFEs (Immediately Invoked Function Expressions).", - "type": "boolean", - }, - "ignoreVoid": { - "description": "Whether to ignore \`void\` expressions.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-for-in-array": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow iterating over an array with a for-in loop", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-for-in-array", - }, - "messages": { - "forInViolation": "For-in loops over arrays skips holes, returns indices as strings, and may visit the prototype chain or other enumerable properties. Use a more robust iteration method such as for-of or array.forEach instead.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-implied-eval": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow the use of \`eval()\`-like functions", - "extendsBaseRule": true, - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-implied-eval", - }, - "messages": { - "noFunctionConstructor": "Implied eval. Do not use the Function constructor to create functions.", - "noImpliedEvalError": "Implied eval. Consider passing a function.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-import-type-side-effects": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers", - "url": "https://typescript-eslint.io/rules/no-import-type-side-effects", - }, - "fixable": "code", - "messages": { - "useTopLevelQualifier": "TypeScript will only remove the inline type specifiers which will leave behind a side effect import at runtime. Convert this to a top-level type qualifier to properly remove the entire import.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-inferrable-types": { - "create": [Function], - "defaultOptions": [ - { - "ignoreParameters": false, - "ignoreProperties": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/no-inferrable-types", - }, - "fixable": "code", - "messages": { - "noInferrableType": "Type {{type}} trivially inferred from a {{type}} literal, remove type annotation.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreParameters": { - "description": "Whether to ignore function parameters.", - "type": "boolean", - }, - "ignoreProperties": { - "description": "Whether to ignore class properties.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-invalid-this": { - "create": [Function], - "defaultOptions": [ - { - "capIsConstructor": true, - }, - ], - "meta": { - "defaultOptions": [ - { - "capIsConstructor": true, - }, - ], - "docs": { - "description": "Disallow \`this\` keywords outside of classes or class-like objects", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-invalid-this", - }, - "hasSuggestions": undefined, - "messages": { - "unexpectedThis": "Unexpected 'this'.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "capIsConstructor": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-invalid-void-type": { - "create": [Function], - "defaultOptions": [ - { - "allowAsThisParameter": false, - "allowInGenericTypeArguments": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow \`void\` type outside of generic or return types", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-invalid-void-type", - }, - "messages": { - "invalidVoidForGeneric": "{{ generic }} may not have void as a type argument.", - "invalidVoidNotReturn": "void is only valid as a return type.", - "invalidVoidNotReturnOrGeneric": "void is only valid as a return type or generic type argument.", - "invalidVoidNotReturnOrThisParam": "void is only valid as return type or type of \`this\` parameter.", - "invalidVoidNotReturnOrThisParamOrGeneric": "void is only valid as a return type or generic type argument or the type of a \`this\` parameter.", - "invalidVoidUnionConstituent": "void is not valid as a constituent in a union type", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAsThisParameter": { - "description": "Whether a \`this\` parameter of a function may be \`void\`.", - "type": "boolean", - }, - "allowInGenericTypeArguments": { - "description": "Whether \`void\` can be used as a valid value for generic type parameters.", - "oneOf": [ - { - "description": "Whether \`void\` can be used as a valid value for all generic type parameters.", - "type": "boolean", - }, - { - "description": "Allowlist of types that may accept \`void\` as a generic type parameter.", - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - }, - ], - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-loop-func": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow function declarations that contain unsafe references inside loop statements", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-loop-func", - }, - "hasSuggestions": undefined, - "messages": { - "unsafeRefs": "Function declared in a loop contains unsafe references to variable(s) {{ varNames }}.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-loss-of-precision": { - "create": [Function], - "defaultOptions": [], - "meta": { - "deprecated": { - "deprecatedSince": "8.0.0", - "replacedBy": [ - { - "rule": { - "name": "no-loss-of-precision", - "url": "https://eslint.org/docs/latest/rules/no-loss-of-precision", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/8832", - }, - "docs": { - "description": "Disallow literal numbers that lose precision", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-loss-of-precision", - }, - "hasSuggestions": undefined, - "messages": { - "noLossOfPrecision": "This number literal will lose precision at runtime.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-magic-numbers": { - "create": [Function], - "defaultOptions": [ - { - "detectObjects": false, - "enforceConst": false, - "ignore": [], - "ignoreArrayIndexes": false, - "ignoreEnums": false, - "ignoreNumericLiteralTypes": false, - "ignoreReadonlyClassProperties": false, - "ignoreTypeIndexes": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow magic numbers", - "extendsBaseRule": true, - "frozen": true, - "url": "https://typescript-eslint.io/rules/no-magic-numbers", - }, - "messages": { - "noMagic": "No magic number: {{raw}}.", - "useConst": "Number constants declarations must use 'const'.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "detectObjects": { - "default": false, - "type": "boolean", - }, - "enforceConst": { - "default": false, - "type": "boolean", - }, - "ignore": { - "items": { - "anyOf": [ - { - "type": "number", - }, - { - "pattern": "^[+-]?(?:0|[1-9][0-9]*)n$", - "type": "string", - }, - ], - }, - "type": "array", - "uniqueItems": true, - }, - "ignoreArrayIndexes": { - "default": false, - "type": "boolean", - }, - "ignoreClassFieldInitialValues": { - "default": false, - "type": "boolean", - }, - "ignoreDefaultValues": { - "default": false, - "type": "boolean", - }, - "ignoreEnums": { - "default": false, - "description": "Whether enums used in TypeScript are considered okay.", - "type": "boolean", - }, - "ignoreNumericLiteralTypes": { - "default": false, - "description": "Whether numbers used in TypeScript numeric literal types are considered okay.", - "type": "boolean", - }, - "ignoreReadonlyClassProperties": { - "default": false, - "description": "Whether \`readonly\` class properties are considered okay.", - "type": "boolean", - }, - "ignoreTypeIndexes": { - "default": false, - "description": "Whether numbers used to index types are okay.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-meaningless-void-operator": { - "create": [Function], - "defaultOptions": [ - { - "checkNever": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow the \`void\` operator except when used to discard a value", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-meaningless-void-operator", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "meaninglessVoidOperator": "void operator shouldn't be used on {{type}}; it should convey that a return value is being ignored", - "removeVoid": "Remove 'void'", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkNever": { - "description": "Whether to suggest removing \`void\` when the argument has type \`never\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-misused-new": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce valid definition of \`new\` and \`constructor\`", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-misused-new", - }, - "messages": { - "errorMessageClass": "Class cannot have method named \`new\`.", - "errorMessageInterface": "Interfaces cannot be constructed, only classes.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-misused-promises": { - "create": [Function], - "defaultOptions": [ - { - "checksConditionals": true, - "checksSpreads": true, - "checksVoidReturn": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow Promises in places not designed to handle them", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-misused-promises", - }, - "messages": { - "conditional": "Expected non-Promise value in a boolean conditional.", - "predicate": "Expected a non-Promise value to be returned.", - "spread": "Expected a non-Promise value to be spreaded in an object.", - "voidReturnArgument": "Promise returned in function argument where a void return was expected.", - "voidReturnAttribute": "Promise-returning function provided to attribute where a void return was expected.", - "voidReturnInheritedMethod": "Promise-returning method provided where a void return was expected by extended/implemented type '{{ heritageTypeName }}'.", - "voidReturnProperty": "Promise-returning function provided to property where a void return was expected.", - "voidReturnReturnValue": "Promise-returning function provided to return value where a void return was expected.", - "voidReturnVariable": "Promise-returning function provided to variable where a void return was expected.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checksConditionals": { - "description": "Whether to warn when a Promise is provided to conditional statements.", - "type": "boolean", - }, - "checksSpreads": { - "description": "Whether to warn when \`...\` spreading a \`Promise\`.", - "type": "boolean", - }, - "checksVoidReturn": { - "description": "Whether to warn when a Promise is returned from a function typed as returning \`void\`.", - "oneOf": [ - { - "description": "Whether to disable checking all asynchronous functions.", - "type": "boolean", - }, - { - "additionalProperties": false, - "description": "Which forms of functions may have checking disabled.", - "properties": { - "arguments": { - "description": "Disables checking an asynchronous function passed as argument where the parameter type expects a function that returns \`void\`.", - "type": "boolean", - }, - "attributes": { - "description": "Disables checking an asynchronous function passed as a JSX attribute expected to be a function that returns \`void\`.", - "type": "boolean", - }, - "inheritedMethods": { - "description": "Disables checking an asynchronous method in a type that extends or implements another type expecting that method to return \`void\`.", - "type": "boolean", - }, - "properties": { - "description": "Disables checking an asynchronous function passed as an object property expected to be a function that returns \`void\`.", - "type": "boolean", - }, - "returns": { - "description": "Disables checking an asynchronous function returned in a function whose return type is a function that returns \`void\`.", - "type": "boolean", - }, - "variables": { - "description": "Disables checking an asynchronous function used as a variable whose return type is a function that returns \`void\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-misused-spread": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - }, - ], - "meta": { - "docs": { - "description": "Disallow using the spread operator when it might cause unexpected behavior", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-misused-spread", - }, - "hasSuggestions": true, - "messages": { - "addAwait": "Add await operator.", - "noArraySpreadInObject": "Using the spread operator on an array in an object will result in a list of indices.", - "noClassDeclarationSpreadInObject": "Using the spread operator on class declarations will spread only their static properties, and will lose their class prototype.", - "noClassInstanceSpreadInObject": "Using the spread operator on class instances will lose their class prototype.", - "noFunctionSpreadInObject": "Using the spread operator on a function without additional properties can cause unexpected behavior. Did you forget to call the function?", - "noIterableSpreadInObject": "Using the spread operator on an Iterable in an object can cause unexpected behavior.", - "noMapSpreadInObject": "Using the spread operator on a Map in an object will result in an empty object. Did you mean to use \`Object.fromEntries(map)\` instead?", - "noPromiseSpreadInObject": "Using the spread operator on Promise in an object can cause unexpected behavior. Did you forget to await the promise?", - "noStringSpread": "Using the spread operator on a string can mishandle special characters, as can \`.split("")\`. -- \`...\` produces Unicode code points, which will decompose complex emojis into individual emojis -- .split("") produces UTF-16 code units, which breaks rich characters in many languages -Consider using \`Intl.Segmenter\` for locale-aware string decomposition. -Otherwise, if you don't need to preserve emojis or other non-Ascii characters, disable this lint rule on this line or configure the 'allow' rule option.", - "replaceMapSpreadInObject": "Replace map spread in object with \`Object.fromEntries()\`", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "An array of type specifiers that are known to be safe to spread.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-mixed-enums": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow enums from having both number and string members", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-mixed-enums", - }, - "messages": { - "mixed": "Mixing number and string enums can be confusing.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-namespace": { - "create": [Function], - "defaultOptions": [ - { - "allowDeclarations": false, - "allowDefinitionFiles": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow TypeScript namespaces", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-namespace", - }, - "messages": { - "moduleSyntaxIsPreferred": "ES2015 module syntax is preferred over namespaces.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowDeclarations": { - "description": "Whether to allow \`declare\` with custom TypeScript namespaces.", - "type": "boolean", - }, - "allowDefinitionFiles": { - "description": "Whether to allow \`declare\` with custom TypeScript namespaces inside definition files.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-non-null-asserted-nullish-coalescing": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow non-null assertions in the left operand of a nullish coalescing operator", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing", - }, - "hasSuggestions": true, - "messages": { - "noNonNullAssertedNullishCoalescing": "The nullish coalescing operator is designed to handle undefined and null - using a non-null assertion is not needed.", - "suggestRemovingNonNull": "Remove the non-null assertion.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-non-null-asserted-optional-chain": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow non-null assertions after an optional chain expression", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain", - }, - "hasSuggestions": true, - "messages": { - "noNonNullOptionalChain": "Optional chain expressions can return undefined by design - using a non-null assertion is unsafe and wrong.", - "suggestRemovingNonNull": "You should remove the non-null assertion.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-non-null-assertion": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow non-null assertions using the \`!\` postfix operator", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-non-null-assertion", - }, - "hasSuggestions": true, - "messages": { - "noNonNull": "Forbidden non-null assertion.", - "suggestOptionalChain": "Consider using the optional chain operator \`?.\` instead. This operator includes runtime checks, so it is safer than the compile-only non-null assertion operator.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-redeclare": { - "create": [Function], - "defaultOptions": [ - { - "builtinGlobals": true, - "ignoreDeclarationMerge": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow variable redeclaration", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-redeclare", - }, - "messages": { - "redeclared": "'{{id}}' is already defined.", - "redeclaredAsBuiltin": "'{{id}}' is already defined as a built-in global variable.", - "redeclaredBySyntax": "'{{id}}' is already defined by a variable declaration.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "builtinGlobals": { - "description": "Whether to report shadowing of built-in global variables.", - "type": "boolean", - }, - "ignoreDeclarationMerge": { - "description": "Whether to ignore declaration merges between certain TypeScript declaration types.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-redundant-type-constituents": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow members of unions and intersections that do nothing or override type information", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-redundant-type-constituents", - }, - "messages": { - "errorTypeOverrides": "'{{typeName}}' is an 'error' type that acts as 'any' and overrides all other types in this {{container}} type.", - "literalOverridden": "{{literal}} is overridden by {{primitive}} in this union type.", - "overridden": "'{{typeName}}' is overridden by other types in this {{container}} type.", - "overrides": "'{{typeName}}' overrides all other types in this {{container}} type.", - "primitiveOverridden": "{{primitive}} is overridden by the {{literal}} in this intersection type.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-require-imports": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - "allowAsImport": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow invocation of \`require()\`", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-require-imports", - }, - "messages": { - "noRequireImports": "A \`require()\` style import is forbidden.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Patterns of import paths to allow requiring from.", - "items": { - "type": "string", - }, - "type": "array", - }, - "allowAsImport": { - "description": "Allows \`require\` statements in import declarations.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-restricted-imports": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow specified modules when loaded by \`import\`", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-restricted-imports", - }, - "fixable": undefined, - "messages": { - "allowedImportName": "'{{importName}}' import from '{{importSource}}' is restricted because only '{{allowedImportNames}}' import(s) is/are allowed.", - "allowedImportNamePattern": "'{{importName}}' import from '{{importSource}}' is restricted because only imports that match the pattern '{{allowedImportNamePattern}}' are allowed from '{{importSource}}'.", - "allowedImportNamePatternWithCustomMessage": "'{{importName}}' import from '{{importSource}}' is restricted because only imports that match the pattern '{{allowedImportNamePattern}}' are allowed from '{{importSource}}'. {{customMessage}}", - "allowedImportNameWithCustomMessage": "'{{importName}}' import from '{{importSource}}' is restricted because only '{{allowedImportNames}}' import(s) is/are allowed. {{customMessage}}", - "everything": "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted.", - "everythingWithAllowImportNames": "* import is invalid because only '{{allowedImportNames}}' from '{{importSource}}' is/are allowed.", - "everythingWithAllowImportNamesAndCustomMessage": "* import is invalid because only '{{allowedImportNames}}' from '{{importSource}}' is/are allowed. {{customMessage}}", - "everythingWithAllowedImportNamePattern": "* import is invalid because only imports that match the pattern '{{allowedImportNamePattern}}' from '{{importSource}}' are allowed.", - "everythingWithAllowedImportNamePatternWithCustomMessage": "* import is invalid because only imports that match the pattern '{{allowedImportNamePattern}}' from '{{importSource}}' are allowed. {{customMessage}}", - "everythingWithCustomMessage": "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted. {{customMessage}}", - "importName": "'{{importName}}' import from '{{importSource}}' is restricted.", - "importNameWithCustomMessage": "'{{importName}}' import from '{{importSource}}' is restricted. {{customMessage}}", - "path": "'{{importSource}}' import is restricted from being used.", - "pathWithCustomMessage": "'{{importSource}}' import is restricted from being used. {{customMessage}}", - "patternAndEverything": "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern.", - "patternAndEverythingWithCustomMessage": "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}", - "patternAndEverythingWithRegexImportName": "* import is invalid because import name matching '{{importNames}}' pattern from '{{importSource}}' is restricted from being used.", - "patternAndEverythingWithRegexImportNameAndCustomMessage": "* import is invalid because import name matching '{{importNames}}' pattern from '{{importSource}}' is restricted from being used. {{customMessage}}", - "patternAndImportName": "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern.", - "patternAndImportNameWithCustomMessage": "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}", - "patternWithCustomMessage": "'{{importSource}}' import is restricted from being used by a pattern. {{customMessage}}", - "patterns": "'{{importSource}}' import is restricted from being used by a pattern.", - }, - "schema": { - "anyOf": [ - { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "allowImportNames": { - "items": { - "type": "string", - }, - "type": "array", - }, - "allowTypeImports": { - "description": "Whether to allow type-only imports for a path.", - "type": "boolean", - }, - "importNames": { - "items": { - "type": "string", - }, - "type": "array", - }, - "message": { - "minLength": 1, - "type": "string", - }, - "name": { - "type": "string", - }, - }, - "required": [ - "name", - ], - "type": "object", - }, - ], - }, - "type": "array", - "uniqueItems": true, - }, - { - "additionalItems": false, - "items": [ - { - "additionalProperties": false, - "properties": { - "paths": { - "items": { - "anyOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "allowImportNames": { - "items": { - "type": "string", - }, - "type": "array", - }, - "allowTypeImports": { - "description": "Whether to allow type-only imports for a path.", - "type": "boolean", - }, - "importNames": { - "items": { - "type": "string", - }, - "type": "array", - }, - "message": { - "minLength": 1, - "type": "string", - }, - "name": { - "type": "string", - }, - }, - "required": [ - "name", - ], - "type": "object", - }, - ], - }, - "type": "array", - "uniqueItems": true, - }, - "patterns": { - "anyOf": [ - { - "items": { - "type": "string", - }, - "type": "array", - "uniqueItems": true, - }, - { - "items": { - "additionalProperties": false, - "properties": { - "allowImportNamePattern": { - "type": "string", - }, - "allowImportNames": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "allowTypeImports": { - "description": "Whether to allow type-only imports for a path.", - "type": "boolean", - }, - "caseSensitive": { - "type": "boolean", - }, - "group": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "importNamePattern": { - "type": "string", - }, - "importNames": { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - "message": { - "minLength": 1, - "type": "string", - }, - "regex": { - "type": "string", - }, - }, - "required": undefined, - "type": "object", - }, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "type": "object", - }, - ], - "type": "array", - }, - ], - }, - "type": "suggestion", - }, - }, - "no-restricted-types": { - "create": [Function], - "defaultOptions": [ - {}, - ], - "meta": { - "docs": { - "description": "Disallow certain types", - "url": "https://typescript-eslint.io/rules/no-restricted-types", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "bannedTypeMessage": "Don't use \`{{name}}\` as a type.{{customMessage}}", - "bannedTypeReplacement": "Replace \`{{name}}\` with \`{{replacement}}\`.", - }, - "schema": [ - { - "$defs": { - "banConfig": { - "oneOf": [ - { - "description": "Bans the type with the default message.", - "enum": [ - true, - ], - "type": "boolean", - }, - { - "description": "Bans the type with a custom message.", - "type": "string", - }, - { - "additionalProperties": false, - "description": "Bans a type.", - "properties": { - "fixWith": { - "description": "Type to autofix replace with. Note that autofixers can be applied automatically - so you need to be careful with this option.", - "type": "string", - }, - "message": { - "description": "Custom error message.", - "type": "string", - }, - "suggest": { - "description": "Types to suggest replacing with.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - }, - }, - "additionalProperties": false, - "properties": { - "types": { - "additionalProperties": { - "$ref": "#/items/0/$defs/banConfig", - }, - "description": "An object whose keys are the types you want to ban, and the values are error messages.", - "type": "object", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-shadow": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - "builtinGlobals": false, - "hoist": "functions-and-types", - "ignoreFunctionTypeParameterNameValueShadow": true, - "ignoreOnInitialization": false, - "ignoreTypeValueShadow": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow variable declarations from shadowing variables declared in the outer scope", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-shadow", - }, - "messages": { - "noShadow": "'{{name}}' is already declared in the upper scope on line {{shadowedLine}} column {{shadowedColumn}}.", - "noShadowGlobal": "'{{name}}' is already a global variable.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Identifier names for which shadowing is allowed.", - "items": { - "type": "string", - }, - "type": "array", - }, - "builtinGlobals": { - "description": "Whether to report shadowing of built-in global variables.", - "type": "boolean", - }, - "hoist": { - "description": "Whether to report shadowing before outer functions or variables are defined.", - "enum": [ - "all", - "functions", - "functions-and-types", - "never", - "types", - ], - "type": "string", - }, - "ignoreFunctionTypeParameterNameValueShadow": { - "description": "Whether to ignore function parameters named the same as a variable.", - "type": "boolean", - }, - "ignoreOnInitialization": { - "description": "Whether to ignore the variable initializers when the shadowed variable is presumably still unitialized.", - "type": "boolean", - }, - "ignoreTypeValueShadow": { - "description": "Whether to ignore types named the same as a variable.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-this-alias": { - "create": [Function], - "defaultOptions": [ - { - "allowDestructuring": true, - "allowedNames": [], - }, - ], - "meta": { - "docs": { - "description": "Disallow aliasing \`this\`", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-this-alias", - }, - "messages": { - "thisAssignment": "Unexpected aliasing of 'this' to local variable.", - "thisDestructure": "Unexpected aliasing of members of 'this' to local variables.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowDestructuring": { - "description": "Whether to ignore destructurings, such as \`const { props, state } = this\`.", - "type": "boolean", - }, - "allowedNames": { - "description": "Names to ignore, such as ["self"] for \`const self = this;\`.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-type-alias": { - "create": [Function], - "defaultOptions": [ - { - "allowAliases": "never", - "allowCallbacks": "never", - "allowConditionalTypes": "never", - "allowConstructors": "never", - "allowGenerics": "never", - "allowLiterals": "never", - "allowMappedTypes": "never", - "allowTupleTypes": "never", - }, - ], - "meta": { - "deprecated": { - "deprecatedSince": "6.0.0", - "replacedBy": [ - { - "rule": { - "name": "@typescript-eslint/consistent-type-definitions", - "url": "https://typescript-eslint.io/rules/consistent-type-definitions", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/6229", - }, - "docs": { - "description": "Disallow type aliases", - "url": "https://typescript-eslint.io/rules/no-type-alias", - }, - "messages": { - "noCompositionAlias": "{{typeName}} in {{compositionType}} types are not allowed.", - "noTypeAlias": "Type {{alias}} are not allowed.", - }, - "schema": [ - { - "$defs": { - "expandedOptions": { - "enum": [ - "always", - "never", - "in-unions", - "in-intersections", - "in-unions-and-intersections", - ], - "type": "string", - }, - "simpleOptions": { - "enum": [ - "always", - "never", - ], - "type": "string", - }, - }, - "additionalProperties": false, - "properties": { - "allowAliases": { - "$ref": "#/items/0/$defs/expandedOptions", - "description": "Whether to allow direct one-to-one type aliases.", - }, - "allowCallbacks": { - "$ref": "#/items/0/$defs/simpleOptions", - "description": "Whether to allow type aliases for callbacks.", - }, - "allowConditionalTypes": { - "$ref": "#/items/0/$defs/simpleOptions", - "description": "Whether to allow type aliases for conditional types.", - }, - "allowConstructors": { - "$ref": "#/items/0/$defs/simpleOptions", - "description": "Whether to allow type aliases with constructors.", - }, - "allowGenerics": { - "$ref": "#/items/0/$defs/simpleOptions", - "description": "Whether to allow type aliases with generic types.", - }, - "allowLiterals": { - "$ref": "#/items/0/$defs/expandedOptions", - "description": "Whether to allow type aliases with object literal types.", - }, - "allowMappedTypes": { - "$ref": "#/items/0/$defs/expandedOptions", - "description": "Whether to allow type aliases with mapped types.", - }, - "allowTupleTypes": { - "$ref": "#/items/0/$defs/expandedOptions", - "description": "Whether to allow type aliases with tuple types.", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-unnecessary-boolean-literal-compare": { - "create": [Function], - "defaultOptions": [ - { - "allowComparingNullableBooleansToFalse": true, - "allowComparingNullableBooleansToTrue": true, - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow unnecessary equality comparisons against boolean literals", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare", - }, - "fixable": "code", - "messages": { - "comparingNullableToFalse": "This expression unnecessarily compares a nullable boolean value to false instead of using the ?? operator to provide a default.", - "comparingNullableToTrueDirect": "This expression unnecessarily compares a nullable boolean value to true instead of using it directly.", - "comparingNullableToTrueNegated": "This expression unnecessarily compares a nullable boolean value to true instead of negating it.", - "direct": "This expression unnecessarily compares a boolean value to a boolean instead of using it directly.", - "negated": "This expression unnecessarily compares a boolean value to a boolean instead of negating it.", - "noStrictNullCheck": "This rule requires the \`strictNullChecks\` compiler option to be turned on to function correctly.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowComparingNullableBooleansToFalse": { - "description": "Whether to allow comparisons between nullable boolean variables and \`false\`.", - "type": "boolean", - }, - "allowComparingNullableBooleansToTrue": { - "description": "Whether to allow comparisons between nullable boolean variables and \`true\`.", - "type": "boolean", - }, - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": { - "description": "Unless this is set to \`true\`, the rule will error on every file whose \`tsconfig.json\` does _not_ have the \`strictNullChecks\` compiler option (or \`strict\`) set to \`true\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-unnecessary-condition": { - "create": [Function], - "defaultOptions": [ - { - "allowConstantLoopConditions": "never", - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": false, - "checkTypePredicates": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow conditionals where the type is always truthy or always falsy", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-condition", - }, - "hasSuggestions": true, - "messages": { - "alwaysFalsy": "Unnecessary conditional, value is always falsy.", - "alwaysFalsyFunc": "This callback should return a conditional, but return is always falsy.", - "alwaysNullish": "Unnecessary conditional, left-hand side of \`??\` operator is always \`null\` or \`undefined\`.", - "alwaysTruthy": "Unnecessary conditional, value is always truthy.", - "alwaysTruthyFunc": "This callback should return a conditional, but return is always truthy.", - "comparisonBetweenLiteralTypes": "Unnecessary conditional, comparison is always {{trueOrFalse}}, since \`{{left}} {{operator}} {{right}}\` is {{trueOrFalse}}.", - "never": "Unnecessary conditional, value is \`never\`.", - "neverNullish": "Unnecessary conditional, expected left-hand side of \`??\` operator to be possibly null or undefined.", - "neverOptionalChain": "Unnecessary optional chain on a non-nullish value.", - "noOverlapBooleanExpression": "Unnecessary conditional, the types have no overlap.", - "noStrictNullCheck": "This rule requires the \`strictNullChecks\` compiler option to be turned on to function correctly.", - "suggestRemoveOptionalChain": "Remove unnecessary optional chain", - "typeGuardAlreadyIsType": "Unnecessary conditional, expression already has the type being checked by the {{typeGuardOrAssertionFunction}}.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowConstantLoopConditions": { - "description": "Whether to ignore constant loop conditions, such as \`while (true)\`.", - "oneOf": [ - { - "description": "Always ignore or not ignore the loop conditions", - "type": "boolean", - }, - { - "description": "Which situations to ignore constant conditions in.", - "enum": [ - "always", - "never", - "only-allowed-literals", - ], - "type": "string", - }, - ], - }, - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": { - "description": "Whether to not error when running with a tsconfig that has strictNullChecks turned.", - "type": "boolean", - }, - "checkTypePredicates": { - "description": "Whether to check the asserted argument of a type predicate function for unnecessary conditions", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-unnecessary-parameter-property-assignment": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unnecessary assignment of constructor property parameter", - "url": "https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment", - }, - "messages": { - "unnecessaryAssign": "This assignment is unnecessary since it is already assigned by a parameter property.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-qualifier": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unnecessary namespace qualifiers", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-qualifier", - }, - "fixable": "code", - "messages": { - "unnecessaryQualifier": "Qualifier is unnecessary since '{{ name }}' is in scope.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-template-expression": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unnecessary template expressions", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-template-expression", - }, - "fixable": "code", - "messages": { - "noUnnecessaryTemplateExpression": "Template literal expression is unnecessary and can be simplified.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-type-arguments": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow type arguments that are equal to the default", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-type-arguments", - }, - "fixable": "code", - "messages": { - "unnecessaryTypeParameter": "This is the default value for this type parameter, so it can be omitted.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-type-assertion": { - "create": [Function], - "defaultOptions": [ - {}, - ], - "meta": { - "docs": { - "description": "Disallow type assertions that do not change the type of an expression", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-type-assertion", - }, - "fixable": "code", - "messages": { - "contextuallyUnnecessary": "This assertion is unnecessary since the receiver accepts the original type of the expression.", - "unnecessaryAssertion": "This assertion is unnecessary since it does not change the type of the expression.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "checkLiteralConstAssertions": { - "description": "Whether to check literal const assertions.", - "type": "boolean", - }, - "typesToIgnore": { - "description": "A list of type names to ignore.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-unnecessary-type-constraint": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unnecessary constraints on generic types", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-unnecessary-type-constraint", - }, - "hasSuggestions": true, - "messages": { - "removeUnnecessaryConstraint": "Remove the unnecessary \`{{constraint}}\` constraint.", - "unnecessaryConstraint": "Constraining the generic type \`{{name}}\` to \`{{constraint}}\` does nothing and is unnecessary.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-type-conversion": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow conversion idioms when they do not change the type or value of the expression", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-type-conversion", - }, - "hasSuggestions": true, - "messages": { - "suggestRemove": "Remove the type conversion.", - "suggestSatisfies": "Instead, assert that the value satisfies the {{type}} type.", - "unnecessaryTypeConversion": "{{violation}} does not change the type or value of the {{type}}.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unnecessary-type-parameters": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow type parameters that aren't used multiple times", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unnecessary-type-parameters", - }, - "hasSuggestions": true, - "messages": { - "replaceUsagesWithConstraint": "Replace all usages of type parameter with its constraint.", - "sole": "Type parameter {{name}} is {{uses}} in the {{descriptor}} signature.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-argument": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow calling a function with a value with type \`any\`", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-argument", - }, - "messages": { - "unsafeArgument": "Unsafe argument of type {{sender}} assigned to a parameter of type {{receiver}}.", - "unsafeArraySpread": "Unsafe spread of an {{sender}} array type.", - "unsafeSpread": "Unsafe spread of an {{sender}} type.", - "unsafeTupleSpread": "Unsafe spread of a tuple type. The argument is {{sender}} and is assigned to a parameter of type {{receiver}}.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-assignment": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow assigning a value with type \`any\` to variables and properties", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-assignment", - }, - "messages": { - "anyAssignment": "Unsafe assignment of an {{sender}} value.", - "anyAssignmentThis": "Unsafe assignment of an {{sender}} value. \`this\` is typed as \`any\`. -You can try to fix this by turning on the \`noImplicitThis\` compiler option, or adding a \`this\` parameter to the function.", - "unsafeArrayPattern": "Unsafe array destructuring of an {{sender}} array value.", - "unsafeArrayPatternFromTuple": "Unsafe array destructuring of a tuple element with an {{sender}} value.", - "unsafeArraySpread": "Unsafe spread of an {{sender}} value in an array.", - "unsafeAssignment": "Unsafe assignment of type {{sender}} to a variable of type {{receiver}}.", - "unsafeObjectPattern": "Unsafe object destructuring of a property with an {{sender}} value.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-call": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow calling a value with type \`any\`", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-call", - }, - "messages": { - "unsafeCall": "Unsafe call of a(n) {{type}} typed value.", - "unsafeCallThis": "Unsafe call of a(n) {{type}} typed value. \`this\` is typed as {{type}}. -You can try to fix this by turning on the \`noImplicitThis\` compiler option, or adding a \`this\` parameter to the function.", - "unsafeNew": "Unsafe construction of a(n) {{type}} typed value.", - "unsafeTemplateTag": "Unsafe use of a(n) {{type}} typed template tag.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-declaration-merging": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unsafe declaration merging", - "recommended": "recommended", - "requiresTypeChecking": false, - "url": "https://typescript-eslint.io/rules/no-unsafe-declaration-merging", - }, - "messages": { - "unsafeMerging": "Unsafe declaration merging between classes and interfaces.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-enum-comparison": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow comparing an enum value with a non-enum value", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-enum-comparison", - }, - "hasSuggestions": true, - "messages": { - "mismatchedCase": "The case statement does not have a shared enum type with the switch predicate.", - "mismatchedCondition": "The two values in this comparison do not have a shared enum type.", - "replaceValueWithEnum": "Replace with an enum value comparison.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-unsafe-function-type": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow using the unsafe built-in Function type", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-unsafe-function-type", - }, - "messages": { - "bannedFunctionType": "The \`Function\` type accepts any function-like value. -Prefer explicitly defining any function parameters and return type.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-member-access": { - "create": [Function], - "defaultOptions": [ - { - "allowOptionalChaining": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow member access on a value with type \`any\`", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-member-access", - }, - "messages": { - "unsafeComputedMemberAccess": "Computed name {{property}} resolves to an {{type}} value.", - "unsafeMemberExpression": "Unsafe member access {{property}} on an {{type}} value.", - "unsafeThisMemberExpression": "Unsafe member access {{property}} on an \`any\` value. \`this\` is typed as \`any\`. -You can try to fix this by turning on the \`noImplicitThis\` compiler option, or adding a \`this\` parameter to the function.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowOptionalChaining": { - "description": "Whether to allow \`?.\` optional chains on \`any\` values.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-unsafe-return": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow returning a value with type \`any\` from a function", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-return", - }, - "messages": { - "unsafeReturn": "Unsafe return of a value of type {{type}}.", - "unsafeReturnAssignment": "Unsafe return of type \`{{sender}}\` from function with return type \`{{receiver}}\`.", - "unsafeReturnThis": "Unsafe return of a value of type \`{{type}}\`. \`this\` is typed as \`any\`. -You can try to fix this by turning on the \`noImplicitThis\` compiler option, or adding a \`this\` parameter to the function.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-type-assertion": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow type assertions that narrow a type", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-type-assertion", - }, - "messages": { - "unsafeOfAnyTypeAssertion": "Unsafe assertion from {{type}} detected: consider using type guards or a safer assertion.", - "unsafeToAnyTypeAssertion": "Unsafe assertion to {{type}} detected: consider using a more specific type to ensure safety.", - "unsafeToUnconstrainedTypeAssertion": "Unsafe type assertion: '{{type}}' could be instantiated with an arbitrary type which could be unrelated to the original type.", - "unsafeTypeAssertion": "Unsafe type assertion: type '{{type}}' is more narrow than the original type.", - "unsafeTypeAssertionAssignableToConstraint": "Unsafe type assertion: the original type is assignable to the constraint of type '{{type}}', but '{{type}}' could be instantiated with a different subtype of its constraint.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unsafe-unary-minus": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Require unary negation to take a number", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/no-unsafe-unary-minus", - }, - "messages": { - "unaryMinus": "Argument of unary negation should be assignable to number | bigint but is {{type}} instead.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unused-expressions": { - "create": [Function], - "defaultOptions": [ - { - "allowShortCircuit": false, - "allowTaggedTemplates": false, - "allowTernary": false, - }, - ], - "meta": { - "defaultOptions": [ - { - "allowShortCircuit": false, - "allowTaggedTemplates": false, - "allowTernary": false, - }, - ], - "docs": { - "description": "Disallow unused expressions", - "extendsBaseRule": true, - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-unused-expressions", - }, - "hasSuggestions": undefined, - "messages": { - "unusedExpression": "Expected an assignment or function call and instead saw an expression.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowShortCircuit": { - "type": "boolean", - }, - "allowTaggedTemplates": { - "type": "boolean", - }, - "allowTernary": { - "type": "boolean", - }, - "enforceForJSX": { - "type": "boolean", - }, - "ignoreDirectives": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "no-unused-vars": { - "create": [Function], - "defaultOptions": [ - {}, - ], - "meta": { - "docs": { - "description": "Disallow unused variables", - "extendsBaseRule": true, - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-unused-vars", - }, - "messages": { - "unusedVar": "'{{varName}}' is {{action}} but never used{{additional}}.", - "usedIgnoredVar": "'{{varName}}' is marked as ignored but is used{{additional}}.", - "usedOnlyAsType": "'{{varName}}' is {{action}} but only used as a type{{additional}}.", - }, - "schema": [ - { - "oneOf": [ - { - "description": "Broad setting for unused variables to target.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "args": { - "description": "Whether to check all, some, or no arguments.", - "enum": [ - "all", - "after-used", - "none", - ], - "type": "string", - }, - "argsIgnorePattern": { - "description": "Regular expressions of argument names to not check for usage.", - "type": "string", - }, - "caughtErrors": { - "description": "Whether to check catch block arguments.", - "enum": [ - "all", - "none", - ], - "type": "string", - }, - "caughtErrorsIgnorePattern": { - "description": "Regular expressions of catch block argument names to not check for usage.", - "type": "string", - }, - "destructuredArrayIgnorePattern": { - "description": "Regular expressions of destructured array variable names to not check for usage.", - "type": "string", - }, - "ignoreClassWithStaticInitBlock": { - "description": "Whether to ignore classes with at least one static initialization block.", - "type": "boolean", - }, - "ignoreRestSiblings": { - "description": "Whether to ignore sibling properties in \`...\` destructurings.", - "type": "boolean", - }, - "ignoreUsingDeclarations": { - "description": "Whether to ignore using or await using declarations.", - "type": "boolean", - }, - "reportUsedIgnorePattern": { - "description": "Whether to report variables that match any of the valid ignore pattern options if they have been used.", - "type": "boolean", - }, - "vars": { - "description": "Whether to check all variables or only locally-declared variables.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - "varsIgnorePattern": { - "description": "Regular expressions of variable names to not check for usage.", - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "problem", - }, - }, - "no-use-before-define": { - "create": [Function], - "defaultOptions": [ - { - "allowNamedExports": false, - "classes": true, - "enums": true, - "functions": true, - "ignoreTypeReferences": true, - "typedefs": true, - "variables": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow the use of variables before they are defined", - "extendsBaseRule": true, - "url": "https://typescript-eslint.io/rules/no-use-before-define", - }, - "messages": { - "noUseBeforeDefine": "'{{name}}' was used before it was defined.", - }, - "schema": [ - { - "oneOf": [ - { - "description": "Broadly set functions and allowNamedExports to false.", - "enum": [ - "nofunc", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "allowNamedExports": { - "description": "Whether to ignore named exports.", - "type": "boolean", - }, - "classes": { - "description": "Whether to ignore references to class declarations.", - "type": "boolean", - }, - "enums": { - "description": "Whether to check references to enums.", - "type": "boolean", - }, - "functions": { - "description": "Whether to ignore references to function declarations.", - "type": "boolean", - }, - "ignoreTypeReferences": { - "description": "Whether to ignore type references, such as in type annotations and assertions.", - "type": "boolean", - }, - "typedefs": { - "description": "Whether to check references to types.", - "type": "boolean", - }, - "variables": { - "description": "Whether to ignore references to variables.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "problem", - }, - }, - "no-useless-constructor": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow unnecessary constructors", - "extendsBaseRule": true, - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/no-useless-constructor", - }, - "hasSuggestions": true, - "messages": { - "noUselessConstructor": "Useless constructor.", - "removeConstructor": "Remove the constructor.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-useless-empty-export": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow empty exports that don't change anything in a module file", - "url": "https://typescript-eslint.io/rules/no-useless-empty-export", - }, - "fixable": "code", - "hasSuggestions": false, - "messages": { - "uselessExport": "Empty export does nothing and can be removed.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "no-var-requires": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - }, - ], - "meta": { - "deprecated": { - "deprecatedSince": "8.0.0", - "replacedBy": [ - { - "rule": { - "name": "@typescript-eslint/no-require-imports", - "url": "https://typescript-eslint.io/rules/no-require-imports", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/8334", - }, - "docs": { - "description": "Disallow \`require\` statements except in import statements", - "url": "https://typescript-eslint.io/rules/no-var-requires", - }, - "messages": { - "noVarReqs": "Require statement not part of import statement.", - }, - "replacedBy": [ - "@typescript-eslint/no-require-imports", - ], - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Patterns of import paths to allow requiring from.", - "items": { - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-wrapper-object-types": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow using confusing built-in primitive class wrappers", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/no-wrapper-object-types", - }, - "fixable": "code", - "messages": { - "bannedClassType": "Prefer using the primitive \`{{preferred}}\` as a type name, rather than the upper-cased \`{{typeName}}\`.", - }, - "schema": [], - "type": "problem", - }, - }, - "non-nullable-type-assertion-style": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce non-null assertions over explicit type assertions", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/non-nullable-type-assertion-style", - }, - "fixable": "code", - "messages": { - "preferNonNullAssertion": "Use a ! assertion to more succinctly remove null and undefined from the type.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "only-throw-error": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - "allowRethrowing": true, - "allowThrowingAny": true, - "allowThrowingUnknown": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow throwing non-\`Error\` values as exceptions", - "extendsBaseRule": "no-throw-literal", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/only-throw-error", - }, - "messages": { - "object": "Expected an error object to be thrown.", - "undef": "Do not throw undefined.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Type specifiers that can be thrown.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "allowRethrowing": { - "description": "Whether to allow rethrowing caught values that are not \`Error\` objects.", - "type": "boolean", - }, - "allowThrowingAny": { - "description": "Whether to always allow throwing values typed as \`any\`.", - "type": "boolean", - }, - "allowThrowingUnknown": { - "description": "Whether to always allow throwing values typed as \`unknown\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "parameter-properties": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - "prefer": "class-property", - }, - ], - "meta": { - "docs": { - "description": "Require or disallow parameter properties in class constructors", - "url": "https://typescript-eslint.io/rules/parameter-properties", - }, - "messages": { - "preferClassProperty": "Property {{parameter}} should be declared as a class property.", - "preferParameterProperty": "Property {{parameter}} should be declared as a parameter property.", - }, - "schema": [ - { - "$defs": { - "modifier": { - "enum": [ - "readonly", - "private", - "protected", - "public", - "private readonly", - "protected readonly", - "public readonly", - ], - "type": "string", - }, - }, - "additionalProperties": false, - "properties": { - "allow": { - "description": "Whether to allow certain kinds of properties to be ignored.", - "items": { - "$ref": "#/items/0/$defs/modifier", - }, - "type": "array", - }, - "prefer": { - "description": "Whether to prefer class properties or parameter properties.", - "enum": [ - "class-property", - "parameter-property", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "prefer-as-const": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce the use of \`as const\` over literal type", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/prefer-as-const", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "preferConstAssertion": "Expected a \`const\` instead of a literal type assertion.", - "variableConstAssertion": "Expected a \`const\` assertion instead of a literal type annotation.", - "variableSuggest": "You should use \`as const\` instead of type annotation.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-destructuring": { - "create": [Function], - "defaultOptions": [ - { - "AssignmentExpression": { - "array": true, - "object": true, - }, - "VariableDeclarator": { - "array": true, - "object": true, - }, - }, - {}, - ], - "meta": { - "docs": { - "description": "Require destructuring from arrays and/or objects", - "extendsBaseRule": true, - "frozen": true, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-destructuring", - }, - "fixable": "code", - "hasSuggestions": undefined, - "messages": { - "preferDestructuring": "Use {{type}} destructuring.", - }, - "schema": [ - { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "AssignmentExpression": { - "additionalProperties": false, - "properties": { - "array": { - "type": "boolean", - }, - "object": { - "type": "boolean", - }, - }, - "type": "object", - }, - "VariableDeclarator": { - "additionalProperties": false, - "properties": { - "array": { - "type": "boolean", - }, - "object": { - "type": "boolean", - }, - }, - "type": "object", - }, - }, - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "array": { - "type": "boolean", - }, - "object": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - }, - { - "additionalProperties": false, - "properties": { - "enforceForDeclarationWithTypeAnnotation": { - "description": "Whether to enforce destructuring on variable declarations with type annotations.", - "type": "boolean", - }, - "enforceForRenamedProperties": { - "description": "Whether to enforce destructuring that use a different variable name than the property name.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-enum-initializers": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Require each enum member value to be explicitly initialized", - "url": "https://typescript-eslint.io/rules/prefer-enum-initializers", - }, - "hasSuggestions": true, - "messages": { - "defineInitializer": "The value of the member '{{ name }}' should be explicitly defined.", - "defineInitializerSuggestion": "Can be fixed to {{ name }} = {{ suggested }}", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-find": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-find", - }, - "hasSuggestions": true, - "messages": { - "preferFind": "Prefer .find(...) instead of .filter(...)[0].", - "preferFindSuggestion": "Use .find(...) instead of .filter(...)[0].", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-for-of": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce the use of \`for-of\` loop over the standard \`for\` loop where possible", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/prefer-for-of", - }, - "messages": { - "preferForOf": "Expected a \`for-of\` loop instead of a \`for\` loop with this simple iteration.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-function-type": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce using function types instead of interfaces with call signatures", - "recommended": "stylistic", - "url": "https://typescript-eslint.io/rules/prefer-function-type", - }, - "fixable": "code", - "messages": { - "functionTypeOverCallableType": "{{ literalOrInterface }} only has a call signature, you should use a function type instead.", - "unexpectedThisOnFunctionOnlyInterface": "\`this\` refers to the function type '{{ interfaceName }}', did you intend to use a generic \`this\` parameter like \`(this: Self, ...) => Self\` instead?", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-includes": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce \`includes\` method over \`indexOf\` method", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-includes", - }, - "fixable": "code", - "messages": { - "preferIncludes": "Use 'includes()' method instead.", - "preferStringIncludes": "Use \`String#includes()\` method with a string instead.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-literal-enum-member": { - "create": [Function], - "defaultOptions": [ - { - "allowBitwiseExpressions": false, - }, - ], - "meta": { - "docs": { - "description": "Require all enum members to be literal values", - "recommended": "strict", - "requiresTypeChecking": false, - "url": "https://typescript-eslint.io/rules/prefer-literal-enum-member", - }, - "messages": { - "notLiteral": "Explicit enum value must only be a literal value (string or number).", - "notLiteralOrBitwiseExpression": "Explicit enum value must only be a literal value (string or number) or a bitwise expression.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowBitwiseExpressions": { - "description": "Whether to allow using bitwise expressions in enum initializers.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-namespace-keyword": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Require using \`namespace\` keyword over \`module\` keyword to declare custom TypeScript modules", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/prefer-namespace-keyword", - }, - "fixable": "code", - "messages": { - "useNamespace": "Use 'namespace' instead of 'module' to declare custom TypeScript modules.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-nullish-coalescing": { - "create": [Function], - "defaultOptions": [ - { - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": false, - "ignoreBooleanCoercion": false, - "ignoreConditionalTests": true, - "ignoreIfStatements": false, - "ignoreMixedLogicalExpressions": false, - "ignorePrimitives": { - "bigint": false, - "boolean": false, - "number": false, - "string": false, - }, - "ignoreTernaryTests": false, - }, - ], - "meta": { - "docs": { - "description": "Enforce using the nullish coalescing operator instead of logical assignments or chaining", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-nullish-coalescing", - }, - "hasSuggestions": true, - "messages": { - "noStrictNullCheck": "This rule requires the \`strictNullChecks\` compiler option to be turned on to function correctly.", - "preferNullishOverAssignment": "Prefer using nullish coalescing operator (\`??{{ equals }}\`) instead of an assignment expression, as it is simpler to read.", - "preferNullishOverOr": "Prefer using nullish coalescing operator (\`??{{ equals }}\`) instead of a logical {{ description }} (\`||{{ equals }}\`), as it is a safer operator.", - "preferNullishOverTernary": "Prefer using nullish coalescing operator (\`??{{ equals }}\`) instead of a ternary expression, as it is simpler to read.", - "suggestNullish": "Fix to nullish coalescing operator (\`??{{ equals }}\`).", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": { - "description": "Unless this is set to \`true\`, the rule will error on every file whose \`tsconfig.json\` does _not_ have the \`strictNullChecks\` compiler option (or \`strict\`) set to \`true\`.", - "type": "boolean", - }, - "ignoreBooleanCoercion": { - "description": "Whether to ignore arguments to the \`Boolean\` constructor", - "type": "boolean", - }, - "ignoreConditionalTests": { - "description": "Whether to ignore cases that are located within a conditional test.", - "type": "boolean", - }, - "ignoreIfStatements": { - "description": "Whether to ignore any if statements that could be simplified by using the nullish coalescing operator.", - "type": "boolean", - }, - "ignoreMixedLogicalExpressions": { - "description": "Whether to ignore any logical or expressions that are part of a mixed logical expression (with \`&&\`).", - "type": "boolean", - }, - "ignorePrimitives": { - "description": "Whether to ignore all (\`true\`) or some (an object with properties) primitive types.", - "oneOf": [ - { - "additionalProperties": false, - "description": "Which primitives types may be ignored.", - "properties": { - "bigint": { - "description": "Ignore bigint primitive types.", - "type": "boolean", - }, - "boolean": { - "description": "Ignore boolean primitive types.", - "type": "boolean", - }, - "number": { - "description": "Ignore number primitive types.", - "type": "boolean", - }, - "string": { - "description": "Ignore string primitive types.", - "type": "boolean", - }, - }, - "type": "object", - }, - { - "description": "Ignore all primitive types.", - "enum": [ - true, - ], - "type": "boolean", - }, - ], - }, - "ignoreTernaryTests": { - "description": "Whether to ignore any ternary expressions that could be simplified by using the nullish coalescing operator.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-optional-chain": { - "create": [Function], - "defaultOptions": [ - { - "allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing": false, - "checkAny": true, - "checkBigInt": true, - "checkBoolean": true, - "checkNumber": true, - "checkString": true, - "checkUnknown": true, - "requireNullish": false, - }, - ], - "meta": { - "docs": { - "description": "Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-optional-chain", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "optionalChainSuggest": "Change to an optional chain.", - "preferOptionalChain": "Prefer using an optional chain expression instead, as it's more concise and easier to read.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing": { - "description": "Allow autofixers that will change the return type of the expression. This option is considered unsafe as it may break the build.", - "type": "boolean", - }, - "checkAny": { - "description": "Check operands that are typed as \`any\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "checkBigInt": { - "description": "Check operands that are typed as \`bigint\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "checkBoolean": { - "description": "Check operands that are typed as \`boolean\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "checkNumber": { - "description": "Check operands that are typed as \`number\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "checkString": { - "description": "Check operands that are typed as \`string\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "checkUnknown": { - "description": "Check operands that are typed as \`unknown\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - "requireNullish": { - "description": "Skip operands that are not typed with \`null\` and/or \`undefined\` when inspecting "loose boolean" operands.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-promise-reject-errors": { - "create": [Function], - "defaultOptions": [ - { - "allowEmptyReject": false, - "allowThrowingAny": false, - "allowThrowingUnknown": false, - }, - ], - "meta": { - "docs": { - "description": "Require using Error objects as Promise rejection reasons", - "extendsBaseRule": true, - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-promise-reject-errors", - }, - "messages": { - "rejectAnError": "Expected the Promise rejection reason to be an Error.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowEmptyReject": { - "description": "Whether to allow calls to \`Promise.reject()\` with no arguments.", - "type": "boolean", - }, - "allowThrowingAny": { - "description": "Whether to always allow throwing values typed as \`any\`.", - "type": "boolean", - }, - "allowThrowingUnknown": { - "description": "Whether to always allow throwing values typed as \`unknown\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-readonly": { - "create": [Function], - "defaultOptions": [ - { - "onlyInlineLambdas": false, - }, - ], - "meta": { - "docs": { - "description": "Require private members to be marked as \`readonly\` if they're never modified outside of the constructor", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-readonly", - }, - "fixable": "code", - "messages": { - "preferReadonly": "Member '{{name}}' is never reassigned; mark it as \`readonly\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "onlyInlineLambdas": { - "description": "Whether to restrict checking only to members immediately assigned a lambda value.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-readonly-parameter-types": { - "create": [Function], - "defaultOptions": [ - { - "allow": [], - "checkParameterProperties": true, - "ignoreInferredTypes": false, - "treatMethodsAsReadonly": false, - }, - ], - "meta": { - "docs": { - "description": "Require function parameters to be typed as \`readonly\` to prevent accidental mutation of inputs", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-readonly-parameter-types", - }, - "messages": { - "shouldBeReadonly": "Parameter should be a read only type.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "An array of type specifiers to ignore.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "checkParameterProperties": { - "description": "Whether to check class parameter properties.", - "type": "boolean", - }, - "ignoreInferredTypes": { - "description": "Whether to ignore parameters which don't explicitly specify a type.", - "type": "boolean", - }, - "treatMethodsAsReadonly": { - "description": "Whether to treat all mutable methods as though they are readonly.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-reduce-type-parameter": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce using type parameter when calling \`Array#reduce\` instead of using a type assertion", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-reduce-type-parameter", - }, - "fixable": "code", - "messages": { - "preferTypeParameter": "Unnecessary assertion: Array#reduce accepts a type parameter for the default value.", - }, - "schema": [], - "type": "problem", - }, - }, - "prefer-regexp-exec": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce \`RegExp#exec\` over \`String#match\` if no global flag is provided", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-regexp-exec", - }, - "fixable": "code", - "messages": { - "regExpExecOverStringMatch": "Use the \`RegExp#exec()\` method instead.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-return-this-type": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce that \`this\` is used when only \`this\` type is returned", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-return-this-type", - }, - "fixable": "code", - "messages": { - "useThisType": "Use \`this\` type instead.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "prefer-string-starts-ends-with": { - "create": [Function], - "defaultOptions": [ - { - "allowSingleElementEquality": "never", - }, - ], - "meta": { - "docs": { - "description": "Enforce using \`String#startsWith\` and \`String#endsWith\` over other equivalent methods of checking substrings", - "recommended": "stylistic", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/prefer-string-starts-ends-with", - }, - "fixable": "code", - "messages": { - "preferEndsWith": "Use the 'String#endsWith' method instead.", - "preferStartsWith": "Use 'String#startsWith' method instead.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowSingleElementEquality": { - "description": "Whether to allow equality checks against the first or last element of a string.", - "enum": [ - "always", - "never", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "prefer-ts-expect-error": { - "create": [Function], - "defaultOptions": [], - "meta": { - "deprecated": { - "deprecatedSince": "7.11.0", - "replacedBy": [ - { - "rule": { - "name": "@typescript-eslint/ban-ts-comment", - "url": "https://typescript-eslint.io/rules/ban-ts-comment", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/9081", - }, - "docs": { - "description": "Enforce using \`@ts-expect-error\` over \`@ts-ignore\`", - "url": "https://typescript-eslint.io/rules/prefer-ts-expect-error", - }, - "fixable": "code", - "messages": { - "preferExpectErrorComment": "Use "@ts-expect-error" to ensure an error is actually being suppressed.", - }, - "replacedBy": [ - "@typescript-eslint/ban-ts-comment", - ], - "schema": [], - "type": "problem", - }, - }, - "promise-function-async": { - "create": [Function], - "defaultOptions": [ - { - "allowAny": true, - "allowedPromiseNames": [], - "checkArrowFunctions": true, - "checkFunctionDeclarations": true, - "checkFunctionExpressions": true, - "checkMethodDeclarations": true, - }, - ], - "meta": { - "docs": { - "description": "Require any function or method that returns a Promise to be marked async", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/promise-function-async", - }, - "fixable": "code", - "messages": { - "missingAsync": "Functions that return promises must be async.", - "missingAsyncHybridReturn": "Functions that return promises must be async. Consider adding an explicit return type annotation if the function is intended to return a union of promise and non-promise types.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAny": { - "description": "Whether to consider \`any\` and \`unknown\` to be Promises.", - "type": "boolean", - }, - "allowedPromiseNames": { - "description": "Any extra names of classes or interfaces to be considered Promises.", - "items": { - "type": "string", - }, - "type": "array", - }, - "checkArrowFunctions": { - "description": "Whether to check arrow functions.", - "type": "boolean", - }, - "checkFunctionDeclarations": { - "description": "Whether to check standalone function declarations.", - "type": "boolean", - }, - "checkFunctionExpressions": { - "description": "Whether to check inline function expressions", - "type": "boolean", - }, - "checkMethodDeclarations": { - "description": "Whether to check methods on classes and object literals.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "related-getter-setter-pairs": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce that \`get()\` types should be assignable to their equivalent \`set()\` type", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/related-getter-setter-pairs", - }, - "messages": { - "mismatch": "\`get()\` type should be assignable to its equivalent \`set()\` type.", - }, - "schema": [], - "type": "problem", - }, - }, - "require-array-sort-compare": { - "create": [Function], - "defaultOptions": [ - { - "ignoreStringArrays": true, - }, - ], - "meta": { - "docs": { - "description": "Require \`Array#sort\` and \`Array#toSorted\` calls to always provide a \`compareFunction\`", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/require-array-sort-compare", - }, - "messages": { - "requireCompare": "Require 'compare' argument.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreStringArrays": { - "description": "Whether to ignore arrays in which all elements are strings.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "require-await": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow async functions which do not return promises and have no \`await\` expression", - "extendsBaseRule": true, - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/require-await", - }, - "hasSuggestions": true, - "messages": { - "missingAwait": "{{name}} has no 'await' expression.", - "removeAsync": "Remove 'async'.", - }, - "schema": [], - "type": "suggestion", - }, - }, - "restrict-plus-operands": { - "create": [Function], - "defaultOptions": [ - { - "allowAny": true, - "allowBoolean": true, - "allowNullish": true, - "allowNumberAndString": true, - "allowRegExp": true, - "skipCompoundAssignments": false, - }, - ], - "meta": { - "docs": { - "description": "Require both operands of addition to be the same type and be \`bigint\`, \`number\`, or \`string\`", - "recommended": { - "recommended": true, - "strict": [ - { - "allowAny": false, - "allowBoolean": false, - "allowNullish": false, - "allowNumberAndString": false, - "allowRegExp": false, - }, - ], - }, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/restrict-plus-operands", - }, - "messages": { - "bigintAndNumber": "Numeric '+' operations must either be both bigints or both numbers. Got \`{{left}}\` + \`{{right}}\`.", - "invalid": "Invalid operand for a '+' operation. Operands must each be a number or {{stringLike}}. Got \`{{type}}\`.", - "mismatched": "Operands of '+' operations must be a number or {{stringLike}}. Got \`{{left}}\` + \`{{right}}\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAny": { - "description": "Whether to allow \`any\` typed values.", - "type": "boolean", - }, - "allowBoolean": { - "description": "Whether to allow \`boolean\` typed values.", - "type": "boolean", - }, - "allowNullish": { - "description": "Whether to allow potentially \`null\` or \`undefined\` typed values.", - "type": "boolean", - }, - "allowNumberAndString": { - "description": "Whether to allow \`bigint\`/\`number\` typed values and \`string\` typed values to be added together.", - "type": "boolean", - }, - "allowRegExp": { - "description": "Whether to allow \`regexp\` typed values.", - "type": "boolean", - }, - "skipCompoundAssignments": { - "description": "Whether to skip compound assignments such as \`+=\`.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "restrict-template-expressions": { - "create": [Function], - "defaultOptions": [ - { - "allow": [ - { - "from": "lib", - "name": [ - "Error", - "URL", - "URLSearchParams", - ], - }, - ], - "allowAny": true, - "allowBoolean": true, - "allowNullish": true, - "allowNumber": true, - "allowRegExp": true, - }, - ], - "meta": { - "docs": { - "description": "Enforce template literal expressions to be of \`string\` type", - "recommended": { - "recommended": true, - "strict": [ - { - "allowAny": false, - "allowBoolean": false, - "allowNever": false, - "allowNullish": false, - "allowNumber": false, - "allowRegExp": false, - }, - ], - }, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/restrict-template-expressions", - }, - "messages": { - "invalidType": "Invalid type "{{type}}" of template literal expression.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allow": { - "description": "Types to allow in template expressions.", - "items": { - "oneOf": [ - { - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "file", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "path": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "lib", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - }, - "required": [ - "from", - "name", - ], - "type": "object", - }, - { - "additionalProperties": false, - "properties": { - "from": { - "enum": [ - "package", - ], - "type": "string", - }, - "name": { - "oneOf": [ - { - "type": "string", - }, - { - "items": { - "type": "string", - }, - "minItems": 1, - "type": "array", - "uniqueItems": true, - }, - ], - }, - "package": { - "type": "string", - }, - }, - "required": [ - "from", - "name", - "package", - ], - "type": "object", - }, - ], - }, - "type": "array", - }, - "allowAny": { - "description": "Whether to allow \`any\` typed values in template expressions.", - "type": "boolean", - }, - "allowArray": { - "description": "Whether to allow \`array\` typed values in template expressions.", - "type": "boolean", - }, - "allowBoolean": { - "description": "Whether to allow \`boolean\` typed values in template expressions.", - "type": "boolean", - }, - "allowNever": { - "description": "Whether to allow \`never\` typed values in template expressions.", - "type": "boolean", - }, - "allowNullish": { - "description": "Whether to allow \`nullish\` typed values in template expressions.", - "type": "boolean", - }, - "allowNumber": { - "description": "Whether to allow \`number\` typed values in template expressions.", - "type": "boolean", - }, - "allowRegExp": { - "description": "Whether to allow \`regexp\` typed values in template expressions.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "return-await": { - "create": [Function], - "defaultOptions": [ - "in-try-catch", - ], - "meta": { - "docs": { - "description": "Enforce consistent awaiting of returned promises", - "recommended": { - "strict": [ - "error-handling-correctness-only", - ], - }, - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/return-await", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "disallowedPromiseAwait": "Returning an awaited promise is not allowed in this context.", - "disallowedPromiseAwaitSuggestion": "Remove \`await\` before the expression. Use caution as this may impact control flow.", - "nonPromiseAwait": "Returning an awaited value that is not a promise is not allowed.", - "requiredPromiseAwait": "Returning an awaited promise is required in this context.", - "requiredPromiseAwaitSuggestion": "Add \`await\` before the expression. Use caution as this may impact control flow.", - }, - "schema": [ - { - "oneOf": [ - { - "description": "Requires that all returned promises be awaited.", - "enum": [ - "always", - ], - "type": "string", - }, - { - "description": "In error-handling contexts, the rule enforces that returned promises must be awaited. In ordinary contexts, the rule does not enforce any particular behavior around whether returned promises are awaited.", - "enum": [ - "error-handling-correctness-only", - ], - "type": "string", - }, - { - "description": "In error-handling contexts, the rule enforces that returned promises must be awaited. In ordinary contexts, the rule enforces that returned promises _must not_ be awaited.", - "enum": [ - "in-try-catch", - ], - "type": "string", - }, - { - "description": "Disallows awaiting any returned promises.", - "enum": [ - "never", - ], - "type": "string", - }, - ], - "type": "string", - }, - ], - "type": "problem", - }, - }, - "sort-type-constituents": { - "create": [Function], - "defaultOptions": [ - { - "caseSensitive": false, - "checkIntersections": true, - "checkUnions": true, - "groupOrder": [ - "named", - "keyword", - "operator", - "literal", - "function", - "import", - "conditional", - "object", - "tuple", - "intersection", - "union", - "nullish", - ], - }, - ], - "meta": { - "deprecated": { - "deprecatedSince": "7.13.0", - "replacedBy": [ - { - "plugin": { - "name": "eslint-plugin-perfectionist", - "url": "https://perfectionist.dev", - }, - "rule": { - "name": "perfectionist/sort-intersection-types", - "url": "https://perfectionist.dev/rules/sort-intersection-types", - }, - }, - { - "plugin": { - "name": "eslint-plugin-perfectionist", - "url": "https://perfectionist.dev", - }, - "rule": { - "name": "perfectionist/sort-union-types", - "url": "https://perfectionist.dev/rules/sort-union-types", - }, - }, - ], - "url": "https://github.com/typescript-eslint/typescript-eslint/pull/9253", - }, - "docs": { - "description": "Enforce constituents of a type union/intersection to be sorted alphabetically", - "url": "https://typescript-eslint.io/rules/sort-type-constituents", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "notSorted": "{{type}} type constituents must be sorted.", - "notSortedNamed": "{{type}} type {{name}} constituents must be sorted.", - "suggestFix": "Sort constituents of type (removes all comments).", - }, - "replacedBy": [ - "perfectionist/sort-intersection-types", - "perfectionist/sort-union-types", - ], - "schema": [ - { - "additionalProperties": false, - "properties": { - "caseSensitive": { - "description": "Whether to sort using case sensitive string comparisons.", - "type": "boolean", - }, - "checkIntersections": { - "description": "Whether to check intersection types (\`&\`).", - "type": "boolean", - }, - "checkUnions": { - "description": "Whether to check union types (\`|\`).", - "type": "boolean", - }, - "groupOrder": { - "description": "Ordering of the groups.", - "items": { - "enum": [ - "conditional", - "function", - "import", - "intersection", - "keyword", - "nullish", - "literal", - "named", - "object", - "operator", - "tuple", - "union", - ], - "type": "string", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "strict-boolean-expressions": { - "create": [Function], - "defaultOptions": [ - { - "allowAny": false, - "allowNullableBoolean": false, - "allowNullableEnum": false, - "allowNullableNumber": false, - "allowNullableObject": true, - "allowNullableString": false, - "allowNumber": true, - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": false, - "allowString": true, - }, - ], - "meta": { - "docs": { - "description": "Disallow certain types in boolean expressions", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/strict-boolean-expressions", - }, - "hasSuggestions": true, - "messages": { - "conditionErrorAny": "Unexpected any value in {{context}}. An explicit comparison or type conversion is required.", - "conditionErrorNullableBoolean": "Unexpected nullable boolean value in {{context}}. Please handle the nullish case explicitly.", - "conditionErrorNullableEnum": "Unexpected nullable enum value in {{context}}. Please handle the nullish/zero/NaN cases explicitly.", - "conditionErrorNullableNumber": "Unexpected nullable number value in {{context}}. Please handle the nullish/zero/NaN cases explicitly.", - "conditionErrorNullableObject": "Unexpected nullable object value in {{context}}. An explicit null check is required.", - "conditionErrorNullableString": "Unexpected nullable string value in {{context}}. Please handle the nullish/empty cases explicitly.", - "conditionErrorNullish": "Unexpected nullish value in conditional. The condition is always false.", - "conditionErrorNumber": "Unexpected number value in {{context}}. An explicit zero/NaN check is required.", - "conditionErrorObject": "Unexpected object value in {{context}}. The condition is always true.", - "conditionErrorOther": "Unexpected value in conditional. A boolean expression is required.", - "conditionErrorString": "Unexpected string value in {{context}}. An explicit empty string check is required.", - "conditionFixCastBoolean": "Explicitly convert value to a boolean (\`Boolean(value)\`)", - "conditionFixCompareArrayLengthNonzero": "Change condition to check array's length (\`value.length > 0\`)", - "conditionFixCompareArrayLengthZero": "Change condition to check array's length (\`value.length === 0\`)", - "conditionFixCompareEmptyString": "Change condition to check for empty string (\`value !== ""\`)", - "conditionFixCompareFalse": "Change condition to check if false (\`value === false\`)", - "conditionFixCompareNaN": "Change condition to check for NaN (\`!Number.isNaN(value)\`)", - "conditionFixCompareNullish": "Change condition to check for null/undefined (\`value != null\`)", - "conditionFixCompareStringLength": "Change condition to check string's length (\`value.length !== 0\`)", - "conditionFixCompareTrue": "Change condition to check if true (\`value === true\`)", - "conditionFixCompareZero": "Change condition to check for 0 (\`value !== 0\`)", - "conditionFixDefaultEmptyString": "Explicitly treat nullish value the same as an empty string (\`value ?? ""\`)", - "conditionFixDefaultFalse": "Explicitly treat nullish value the same as false (\`value ?? false\`)", - "conditionFixDefaultZero": "Explicitly treat nullish value the same as 0 (\`value ?? 0\`)", - "explicitBooleanReturnType": "Add an explicit \`boolean\` return type annotation.", - "noStrictNullCheck": "This rule requires the \`strictNullChecks\` compiler option to be turned on to function correctly.", - "predicateCannotBeAsync": "Predicate function should not be 'async'; expected a boolean return type.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowAny": { - "description": "Whether to allow \`any\`s in a boolean context.", - "type": "boolean", - }, - "allowNullableBoolean": { - "description": "Whether to allow nullable \`boolean\`s in a boolean context.", - "type": "boolean", - }, - "allowNullableEnum": { - "description": "Whether to allow nullable \`enum\`s in a boolean context.", - "type": "boolean", - }, - "allowNullableNumber": { - "description": "Whether to allow nullable \`number\`s in a boolean context.", - "type": "boolean", - }, - "allowNullableObject": { - "description": "Whether to allow nullable \`object\`s, \`symbol\`s, and functions in a boolean context.", - "type": "boolean", - }, - "allowNullableString": { - "description": "Whether to allow nullable \`string\`s in a boolean context.", - "type": "boolean", - }, - "allowNumber": { - "description": "Whether to allow \`number\`s in a boolean context.", - "type": "boolean", - }, - "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": { - "description": "Unless this is set to \`true\`, the rule will error on every file whose \`tsconfig.json\` does _not_ have the \`strictNullChecks\` compiler option (or \`strict\`) set to \`true\`.", - "type": "boolean", - }, - "allowString": { - "description": "Whether to allow \`string\`s in a boolean context.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "switch-exhaustiveness-check": { - "create": [Function], - "defaultOptions": [ - { - "allowDefaultCaseForExhaustiveSwitch": true, - "considerDefaultExhaustiveForUnions": false, - "requireDefaultForNonUnion": false, - }, - ], - "meta": { - "docs": { - "description": "Require switch-case statements to be exhaustive", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/switch-exhaustiveness-check", - }, - "hasSuggestions": true, - "messages": { - "addMissingCases": "Add branches for missing cases.", - "dangerousDefaultCase": "The switch statement is exhaustive, so the default case is unnecessary.", - "switchIsNotExhaustive": "Switch is not exhaustive. Cases not matched: {{missingBranches}}", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "allowDefaultCaseForExhaustiveSwitch": { - "description": "If 'true', allow 'default' cases on switch statements with exhaustive cases.", - "type": "boolean", - }, - "considerDefaultExhaustiveForUnions": { - "description": "If 'true', the 'default' clause is used to determine whether the switch statement is exhaustive for union type", - "type": "boolean", - }, - "defaultCaseCommentPattern": { - "description": "Regular expression for a comment that can indicate an intentionally omitted default case.", - "type": "string", - }, - "requireDefaultForNonUnion": { - "description": "If 'true', require a 'default' clause for switches on non-union types.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "triple-slash-reference": { - "create": [Function], - "defaultOptions": [ - { - "lib": "always", - "path": "never", - "types": "prefer-import", - }, - ], - "meta": { - "docs": { - "description": "Disallow certain triple slash directives in favor of ES6-style import declarations", - "recommended": "recommended", - "url": "https://typescript-eslint.io/rules/triple-slash-reference", - }, - "messages": { - "tripleSlashReference": "Do not use a triple slash reference for {{module}}, use \`import\` style instead.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "lib": { - "description": "What to enforce for \`/// \` references.", - "enum": [ - "always", - "never", - ], - "type": "string", - }, - "path": { - "description": "What to enforce for \`/// \` references.", - "enum": [ - "always", - "never", - ], - "type": "string", - }, - "types": { - "description": "What to enforce for \`/// \` references.", - "enum": [ - "always", - "never", - "prefer-import", - ], - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "typedef": { - "create": [Function], - "defaultOptions": [ - { - "arrayDestructuring": false, - "arrowParameter": false, - "memberVariableDeclaration": false, - "objectDestructuring": false, - "parameter": false, - "propertyDeclaration": false, - "variableDeclaration": false, - "variableDeclarationIgnoreFunction": false, - }, - ], - "meta": { - "deprecated": { - "deprecatedSince": "8.33.0", - "message": "This is an old rule that is no longer recommended for use.", - }, - "docs": { - "description": "Require type annotations in certain places", - "url": "https://typescript-eslint.io/rules/typedef", - }, - "messages": { - "expectedTypedef": "Expected a type annotation.", - "expectedTypedefNamed": "Expected {{name}} to have a type annotation.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "arrayDestructuring": { - "description": "Whether to enforce type annotations on variables declared using array destructuring.", - "type": "boolean", - }, - "arrowParameter": { - "description": "Whether to enforce type annotations for parameters of arrow functions.", - "type": "boolean", - }, - "memberVariableDeclaration": { - "description": "Whether to enforce type annotations on member variables of classes.", - "type": "boolean", - }, - "objectDestructuring": { - "description": "Whether to enforce type annotations on variables declared using object destructuring.", - "type": "boolean", - }, - "parameter": { - "description": "Whether to enforce type annotations for parameters of functions and methods.", - "type": "boolean", - }, - "propertyDeclaration": { - "description": "Whether to enforce type annotations for properties of interfaces and types.", - "type": "boolean", - }, - "variableDeclaration": { - "description": "Whether to enforce type annotations for variable declarations, excluding array and object destructuring.", - "type": "boolean", - }, - "variableDeclarationIgnoreFunction": { - "description": "Whether to ignore variable declarations for non-arrow and arrow functions.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "unbound-method": { - "create": [Function], - "defaultOptions": [ - { - "ignoreStatic": false, - }, - ], - "meta": { - "docs": { - "description": "Enforce unbound methods are called with their expected scope", - "recommended": "recommended", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/unbound-method", - }, - "messages": { - "unbound": "A method that is not declared with \`this: void\` may cause unintentional scoping of \`this\` when separated from its object. -Consider using an arrow function or explicitly \`.bind()\`ing the method to avoid calling the method with an unintended \`this\` value. ", - "unboundWithoutThisAnnotation": "A method that is not declared with \`this: void\` may cause unintentional scoping of \`this\` when separated from its object. -Consider using an arrow function or explicitly \`.bind()\`ing the method to avoid calling the method with an unintended \`this\` value. -If a function does not access \`this\`, it can be annotated with \`this: void\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreStatic": { - "description": "Whether to skip checking whether \`static\` methods are correctly bound.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "unified-signatures": { - "create": [Function], - "defaultOptions": [ - { - "ignoreDifferentlyNamedParameters": false, - "ignoreOverloadsWithDifferentJSDoc": false, - }, - ], - "meta": { - "docs": { - "description": "Disallow two overloads that could be unified into one with a union or an optional/rest parameter", - "recommended": "strict", - "url": "https://typescript-eslint.io/rules/unified-signatures", - }, - "messages": { - "omittingRestParameter": "{{failureStringStart}} with a rest parameter.", - "omittingSingleParameter": "{{failureStringStart}} with an optional parameter.", - "singleParameterDifference": "{{failureStringStart}} taking \`{{type1}} | {{type2}}\`.", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "ignoreDifferentlyNamedParameters": { - "description": "Whether two parameters with different names at the same index should be considered different even if their types are the same.", - "type": "boolean", - }, - "ignoreOverloadsWithDifferentJSDoc": { - "description": "Whether two overloads with different JSDoc comments should be considered different even if their parameter and return types are the same.", - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "use-unknown-in-catch-callback-variable": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Enforce typing arguments in Promise rejection callbacks as \`unknown\`", - "recommended": "strict", - "requiresTypeChecking": true, - "url": "https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable", - }, - "hasSuggestions": true, - "messages": { - "addUnknownRestTypeAnnotationSuggestion": "Add an explicit \`: [unknown]\` type annotation to the rejection callback rest variable.", - "addUnknownTypeAnnotationSuggestion": "Add an explicit \`: unknown\` type annotation to the rejection callback variable.", - "useUnknown": "Prefer the safe \`: unknown\` for a \`{{method}}\`{{append}} callback variable.", - "useUnknownArrayDestructuringPattern": "Prefer the safe \`: unknown\` for a \`{{method}}\`{{append}} callback variable. The thrown error may not be iterable.", - "useUnknownObjectDestructuringPattern": "Prefer the safe \`: unknown\` for a \`{{method}}\`{{append}} callback variable. The thrown error may be nullable, or may not have the expected shape.", - "wrongRestTypeAnnotationSuggestion": "Change existing type annotation to \`: [unknown]\`.", - "wrongTypeAnnotationSuggestion": "Change existing type annotation to \`: unknown\`.", - }, - "schema": [], - "type": "suggestion", - }, - }, - }, - }, - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.mts", - "**/*.cts", - ], - "name": "typescript-eslint/eslint-recommended", - "rules": { - "constructor-super": "off", - "getter-return": "off", - "no-class-assign": "off", - "no-const-assign": "off", - "no-dupe-args": "off", - "no-dupe-class-members": "off", - "no-dupe-keys": "off", - "no-func-assign": "off", - "no-import-assign": "off", - "no-new-native-nonconstructor": "off", - "no-new-symbol": "off", - "no-obj-calls": "off", - "no-redeclare": "off", - "no-setter-return": "off", - "no-this-before-super": "off", - "no-undef": "off", - "no-unreachable": "off", - "no-unsafe-negation": "off", - "no-var": "error", - "no-with": "off", - "prefer-const": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - }, - }, - { - "name": "typescript-eslint/recommended", - "rules": { - "@typescript-eslint/ban-ts-comment": "error", - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-duplicate-enum-values": "error", - "@typescript-eslint/no-empty-object-type": "error", - "@typescript-eslint/no-explicit-any": "error", - "@typescript-eslint/no-extra-non-null-assertion": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-asserted-optional-chain": "error", - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/no-this-alias": "error", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-declaration-merging": "error", - "@typescript-eslint/no-unsafe-function-type": "error", - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/no-unused-vars": "error", - "@typescript-eslint/no-wrapper-object-types": "error", - "@typescript-eslint/prefer-as-const": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/triple-slash-reference": "error", - "no-array-constructor": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - }, - }, - { - "name": "tanstack/query/flat/recommended", - "plugins": { - "@tanstack/query": { - "configs": { - "flat/recommended": [ - [Circular], - ], - "recommended": { - "plugins": [ - "@tanstack/query", - ], - "rules": { - "@tanstack/query/exhaustive-deps": "error", - "@tanstack/query/infinite-query-property-order": "error", - "@tanstack/query/no-rest-destructuring": "warn", - "@tanstack/query/no-unstable-deps": "error", - "@tanstack/query/stable-query-client": "error", - }, - }, - }, - "meta": { - "name": "@tanstack/eslint-plugin-query", - }, - "rules": { - "exhaustive-deps": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Exhaustive deps rule for useQuery", - "recommended": "error", - "url": "https://tanstack.com/query/latest/docs/eslint/exhaustive-deps", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "fixTo": "Fix to {{result}}", - "missingDeps": "The following dependencies are missing in your queryKey: {{deps}}", - }, - "schema": [], - "type": "problem", - }, - }, - "infinite-query-property-order": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Ensure correct order of inference sensitive properties for infinite queries", - "recommended": "error", - "url": "https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "invalidOrder": "Invalid order of properties for \`{{function}}\`.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-rest-destructuring": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallows rest destructuring in queries", - "recommended": "warn", - "url": "https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring", - }, - "messages": { - "objectRestDestructure": "Object rest destructuring on a query will observe all changes to the query, leading to excessive re-renders.", - }, - "schema": [], - "type": "problem", - }, - }, - "no-unstable-deps": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Disallow putting the result of query hooks directly in a React hook dependency array", - "recommended": "error", - "url": "https://tanstack.com/query/latest/docs/eslint/no-unstable-deps", - }, - "messages": { - "noUnstableDeps": "The result of {{queryHook}} is not referentially stable, so don't pass it directly into the dependencies array of {{reactHook}}. Instead, destructure the return value of {{queryHook}} and pass the destructured values into the dependency array of {{reactHook}}.", - }, - "schema": [], - "type": "problem", - }, - }, - "stable-query-client": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "Makes sure that QueryClient is stable", - "recommended": "error", - "url": "https://tanstack.com/query/latest/docs/eslint/stable-query-client", - }, - "fixable": "code", - "hasSuggestions": true, - "messages": { - "fixTo": "Fix to {{result}}", - "unstable": "QueryClient is not stable. It should be either extracted from the component or wrapped in React.useState. -See https://tkdodo.eu/blog/react-query-fa-qs#2-the-queryclient-is-not-stable", - }, - "schema": [], - "type": "problem", - }, - }, - }, - }, - }, - "rules": { - "@tanstack/query/exhaustive-deps": "error", - "@tanstack/query/infinite-query-property-order": "error", - "@tanstack/query/no-rest-destructuring": "warn", - "@tanstack/query/no-unstable-deps": "error", - "@tanstack/query/stable-query-client": "error", - }, - }, - { - "plugins": { - "@devup": { - "rules": { - "app-page": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "required 페이지나 레이아웃 컴포넌트는 반드시 export default로 내보내야 합니다.", - "url": "https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/app-page", - }, - "fixable": "code", - "messages": { - "nameOfPageOrLayoutComponentShouldHaveSuffix": "페이지나 레이아웃 컴포넌트의 이름은 반드시 \`Page\`나 \`Layout\`으로 끝나야 합니다.", - "pageOrLayoutComponentShouldDefaultExport": "페이지나 레이아웃 컴포넌트는 반드시 \`export default\`로 내보내야 합니다.", - "pathParamsShouldExist": "경로 변수를 사용할 수 있을 경우 \`params\`는 반드시 존재해야 합니다.", - }, - "schema": [], - "type": "problem", - }, - }, - "component": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "required 컴포넌트 이름은 디렉터리 혹은 파일명을 따라야 합니다.", - "url": "https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/component", - }, - "fixable": "code", - "messages": { - "componentFileShouldExportComponent": "컴포넌트 파일은 컴포넌트를 내보내야 합니다. (컴포넌트명: {targetComponentName})", - "componentNameShouldBeFollowDirectoryStructure": "컴포넌트 이름은 디렉토리명 혹은 파일명을 따라야 합니다.", - }, - "schema": [], - "type": "problem", - }, - }, - "component-interface": { - "create": [Function], - "defaultOptions": [], - "meta": { - "docs": { - "description": "required type annotation for component props when empty object pattern", - "url": "https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/component-interface", - }, - "fixable": "code", - "messages": { - "componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern": "컴포넌트의 \`props\`가 비어있고 타입이 없을 경우 반드시 타입을 명시해야 합니다.", - }, - "schema": [], - "type": "problem", - }, - }, - }, - }, - "react-hooks": { - "configs": { - "flat": { - "recommended": { - "plugins": { - "react-hooks": [Circular], - }, - "rules": { - "react-hooks/component-hook-factories": "error", - "react-hooks/config": "error", - "react-hooks/error-boundaries": "error", - "react-hooks/exhaustive-deps": "warn", - "react-hooks/gating": "error", - "react-hooks/globals": "error", - "react-hooks/immutability": "error", - "react-hooks/incompatible-library": "warn", - "react-hooks/preserve-manual-memoization": "error", - "react-hooks/purity": "error", - "react-hooks/refs": "error", - "react-hooks/rules-of-hooks": "error", - "react-hooks/set-state-in-effect": "error", - "react-hooks/set-state-in-render": "error", - "react-hooks/static-components": "error", - "react-hooks/unsupported-syntax": "warn", - "react-hooks/use-memo": "error", - }, - }, - "recommended-latest": { - "plugins": { - "react-hooks": [Circular], - }, - "rules": { - "react-hooks/component-hook-factories": "error", - "react-hooks/config": "error", - "react-hooks/error-boundaries": "error", - "react-hooks/exhaustive-deps": "warn", - "react-hooks/gating": "error", - "react-hooks/globals": "error", - "react-hooks/immutability": "error", - "react-hooks/incompatible-library": "warn", - "react-hooks/preserve-manual-memoization": "error", - "react-hooks/purity": "error", - "react-hooks/refs": "error", - "react-hooks/rules-of-hooks": "error", - "react-hooks/set-state-in-effect": "error", - "react-hooks/set-state-in-render": "error", - "react-hooks/static-components": "error", - "react-hooks/unsupported-syntax": "warn", - "react-hooks/use-memo": "error", - "react-hooks/void-use-memo": "error", - }, - }, - }, - "recommended": { - "plugins": [ - "react-hooks", - ], - "rules": { - "react-hooks/component-hook-factories": "error", - "react-hooks/config": "error", - "react-hooks/error-boundaries": "error", - "react-hooks/exhaustive-deps": "warn", - "react-hooks/gating": "error", - "react-hooks/globals": "error", - "react-hooks/immutability": "error", - "react-hooks/incompatible-library": "warn", - "react-hooks/preserve-manual-memoization": "error", - "react-hooks/purity": "error", - "react-hooks/refs": "error", - "react-hooks/rules-of-hooks": "error", - "react-hooks/set-state-in-effect": "error", - "react-hooks/set-state-in-render": "error", - "react-hooks/static-components": "error", - "react-hooks/unsupported-syntax": "warn", - "react-hooks/use-memo": "error", - }, - }, - "recommended-latest": { - "plugins": [ - "react-hooks", - ], - "rules": { - "react-hooks/component-hook-factories": "error", - "react-hooks/config": "error", - "react-hooks/error-boundaries": "error", - "react-hooks/exhaustive-deps": "warn", - "react-hooks/gating": "error", - "react-hooks/globals": "error", - "react-hooks/immutability": "error", - "react-hooks/incompatible-library": "warn", - "react-hooks/preserve-manual-memoization": "error", - "react-hooks/purity": "error", - "react-hooks/refs": "error", - "react-hooks/rules-of-hooks": "error", - "react-hooks/set-state-in-effect": "error", - "react-hooks/set-state-in-render": "error", - "react-hooks/static-components": "error", - "react-hooks/unsupported-syntax": "warn", - "react-hooks/use-memo": "error", - "react-hooks/void-use-memo": "error", - }, - }, - }, - "meta": { - "name": "eslint-plugin-react-hooks", - "version": "7.0.0", - }, - "rules": { - "automatic-effect-dependencies": { - "create": [Function], - "meta": { - "docs": { - "description": "Verifies that automatic effect dependencies are compiled if opted-in", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "capitalized-calls": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against calling capitalized functions/methods instead of using JSX", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "component-hook-factories": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against higher order functions defining nested components or hooks. Components and hooks should be defined at the module level", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "config": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates the compiler configuration options", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "error-boundaries": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates usage of error boundaries instead of try/catch for errors in child components", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "exhaustive-deps": { - "create": [Function], - "meta": { - "docs": { - "description": "verifies the list of dependencies for Hooks like useEffect and similar", - "recommended": true, - "url": "https://github.com/facebook/react/issues/14920", - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": false, - "enableDangerousAutofixThisMayCauseInfiniteLoops": false, - "properties": { - "additionalHooks": { - "type": "string", - }, - "enableDangerousAutofixThisMayCauseInfiniteLoops": { - "type": "boolean", - }, - "experimental_autoDependenciesHooks": { - "items": { - "type": "string", - }, - "type": "array", - }, - "requireExplicitEffectDeps": { - "type": "boolean", - }, - }, - "type": "object", - }, - ], - "type": "suggestion", - }, - }, - "fbt": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates usage of fbt", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "fire": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates usage of \`fire\`", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "gating": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "globals": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "hooks": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates the rules of hooks", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "immutability": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "incompatible-library": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against usage of libraries which are incompatible with memoization (manual or automatic)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "invariant": { - "create": [Function], - "meta": { - "docs": { - "description": "Internal invariants", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "memoized-effect-dependencies": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates that effect dependencies are memoized", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "no-deriving-state-in-effects": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against deriving values from state in an effect", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "preserve-manual-memoization": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "purity": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "refs": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [\`useRef()\` usage](https://react.dev/reference/react/useRef#usage)", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "rule-suppression": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against suppression of other rules", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "rules-of-hooks": { - "create": [Function], - "meta": { - "docs": { - "description": "enforces the Rules of Hooks", - "recommended": true, - "url": "https://react.dev/reference/rules/rules-of-hooks", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "additionalHooks": { - "type": "string", - }, - }, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "set-state-in-effect": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "set-state-in-render": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against setting state during render, which can trigger additional renders and potential infinite render loops", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "static-components": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "syntax": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against invalid syntax", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "todo": { - "create": [Function], - "meta": { - "docs": { - "description": "Unimplemented features", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "unsupported-syntax": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates against syntax that we do not plan to support in React Compiler", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "use-memo": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates usage of the useMemo() hook against common mistakes. See [\`useMemo()\` docs](https://react.dev/reference/react/useMemo) for more information.", - "recommended": true, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - "void-use-memo": { - "create": [Function], - "meta": { - "docs": { - "description": "Validates that useMemos always return a value. See [\`useMemo()\` docs](https://react.dev/reference/react/useMemo) for more information.", - "recommended": false, - }, - "fixable": "code", - "hasSuggestions": true, - "schema": [ - { - "additionalProperties": true, - "type": "object", - }, - ], - "type": "problem", - }, - }, - }, - }, - "simple-import-sort": { - "meta": { - "name": "eslint-plugin-simple-import-sort", - "version": "12.1.1", - }, - "rules": { - "exports": { - "create": [Function], - "meta": { - "docs": { - "description": "Automatically sort exports.", - "url": "https://github.com/lydell/eslint-plugin-simple-import-sort#sort-order", - }, - "fixable": "code", - "messages": { - "sort": "Run autofix to sort these exports!", - }, - "schema": [], - "type": "layout", - }, - }, - "imports": { - "create": [Function], - "meta": { - "docs": { - "description": "Automatically sort imports.", - "url": "https://github.com/lydell/eslint-plugin-simple-import-sort#sort-order", - }, - "fixable": "code", - "messages": { - "sort": "Run autofix to sort these imports!", - }, - "schema": [ - { - "additionalProperties": false, - "properties": { - "groups": { - "items": { - "items": { - "type": "string", - }, - "type": "array", - }, - "type": "array", - }, - }, - "type": "object", - }, - ], - "type": "layout", - }, - }, - }, - }, - "unused-imports": { - "meta": { - "name": "unused-imports", - }, - "rules": { - "no-unused-imports": { - "create": [Function], - "defaultOptions": [ - {}, - ], - "meta": { - "docs": { - "description": "Disallow unused variables", - "extendsBaseRule": true, - "recommended": "recommended", - "url": "https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md", - }, - "fixable": "code", - "messages": { - "unusedVar": "'{{varName}}' is {{action}} but never used{{additional}}.", - "usedIgnoredVar": "'{{varName}}' is marked as ignored but is used{{additional}}.", - "usedOnlyAsType": "'{{varName}}' is {{action}} but only used as a type{{additional}}.", - }, - "schema": [ - { - "oneOf": [ - { - "description": "Broad setting for unused variables to target.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "args": { - "description": "Whether to check all, some, or no arguments.", - "enum": [ - "all", - "after-used", - "none", - ], - "type": "string", - }, - "argsIgnorePattern": { - "description": "Regular expressions of argument names to not check for usage.", - "type": "string", - }, - "caughtErrors": { - "description": "Whether to check catch block arguments.", - "enum": [ - "all", - "none", - ], - "type": "string", - }, - "caughtErrorsIgnorePattern": { - "description": "Regular expressions of catch block argument names to not check for usage.", - "type": "string", - }, - "destructuredArrayIgnorePattern": { - "description": "Regular expressions of destructured array variable names to not check for usage.", - "type": "string", - }, - "ignoreClassWithStaticInitBlock": { - "description": "Whether to ignore classes with at least one static initialization block.", - "type": "boolean", - }, - "ignoreRestSiblings": { - "description": "Whether to ignore sibling properties in \`...\` destructurings.", - "type": "boolean", - }, - "ignoreUsingDeclarations": { - "description": "Whether to ignore using or await using declarations.", - "type": "boolean", - }, - "reportUsedIgnorePattern": { - "description": "Whether to report variables that match any of the valid ignore pattern options if they have been used.", - "type": "boolean", - }, - "vars": { - "description": "Whether to check all variables or only locally-declared variables.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - "varsIgnorePattern": { - "description": "Regular expressions of variable names to not check for usage.", - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "problem", - }, - }, - "no-unused-vars": { - "create": [Function], - "defaultOptions": [ - {}, - ], - "meta": { - "docs": { - "description": "Disallow unused variables", - "extendsBaseRule": true, - "recommended": "recommended", - "url": "https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md", - }, - "fixable": "code", - "messages": { - "unusedVar": "'{{varName}}' is {{action}} but never used{{additional}}.", - "usedIgnoredVar": "'{{varName}}' is marked as ignored but is used{{additional}}.", - "usedOnlyAsType": "'{{varName}}' is {{action}} but only used as a type{{additional}}.", - }, - "schema": [ - { - "oneOf": [ - { - "description": "Broad setting for unused variables to target.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - { - "additionalProperties": false, - "properties": { - "args": { - "description": "Whether to check all, some, or no arguments.", - "enum": [ - "all", - "after-used", - "none", - ], - "type": "string", - }, - "argsIgnorePattern": { - "description": "Regular expressions of argument names to not check for usage.", - "type": "string", - }, - "caughtErrors": { - "description": "Whether to check catch block arguments.", - "enum": [ - "all", - "none", - ], - "type": "string", - }, - "caughtErrorsIgnorePattern": { - "description": "Regular expressions of catch block argument names to not check for usage.", - "type": "string", - }, - "destructuredArrayIgnorePattern": { - "description": "Regular expressions of destructured array variable names to not check for usage.", - "type": "string", - }, - "ignoreClassWithStaticInitBlock": { - "description": "Whether to ignore classes with at least one static initialization block.", - "type": "boolean", - }, - "ignoreRestSiblings": { - "description": "Whether to ignore sibling properties in \`...\` destructurings.", - "type": "boolean", - }, - "ignoreUsingDeclarations": { - "description": "Whether to ignore using or await using declarations.", - "type": "boolean", - }, - "reportUsedIgnorePattern": { - "description": "Whether to report variables that match any of the valid ignore pattern options if they have been used.", - "type": "boolean", - }, - "vars": { - "description": "Whether to check all variables or only locally-declared variables.", - "enum": [ - "all", - "local", - ], - "type": "string", - }, - "varsIgnorePattern": { - "description": "Regular expressions of variable names to not check for usage.", - "type": "string", - }, - }, - "type": "object", - }, - ], - }, - ], - "type": "problem", - }, - }, - }, - }, - }, - "rules": { - "@devup/app-page": "error", - "@devup/component": "error", - "@devup/component-interface": "error", - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-expressions": [ - "error", - { - "allowShortCircuit": true, - "allowTernary": true, - }, - ], - "@typescript-eslint/no-unused-vars": [ - "error", - { - "args": "all", - "argsIgnorePattern": "^_", - "caughtErrors": "all", - "caughtErrorsIgnorePattern": "^_", - "destructuredArrayIgnorePattern": "^_", - "ignoreRestSiblings": true, - "varsIgnorePattern": "^_", - }, - ], - "@typescript-eslint/no-var-requires": "off", - "camelcase": "off", - "comma-dangle": "off", - "no-console": [ - "error", - { - "allow": [ - "info", - "debug", - "warn", - "error", - ], - }, - ], - "no-constant-condition": [ - "error", - { - "checkLoops": false, - }, - ], - "no-trailing-spaces": "error", - "prettier/prettier": [ - "error", - { - "endOfLine": "auto", - "semi": false, - "singleQuote": true, - "trailingComma": "all", - }, - ], - "react-hooks/component-hook-factories": "error", - "react-hooks/config": "error", - "react-hooks/error-boundaries": "error", - "react-hooks/exhaustive-deps": [ - "warn", - { - "additionalHooks": "useSafeEffect", - }, - ], - "react-hooks/gating": "error", - "react-hooks/globals": "error", - "react-hooks/immutability": "error", - "react-hooks/incompatible-library": "warn", - "react-hooks/preserve-manual-memoization": "error", - "react-hooks/purity": "error", - "react-hooks/refs": "error", - "react-hooks/rules-of-hooks": "error", - "react-hooks/set-state-in-effect": "error", - "react-hooks/set-state-in-render": "error", - "react-hooks/static-components": "error", - "react-hooks/unsupported-syntax": "warn", - "react-hooks/use-memo": "error", - "react/jsx-curly-brace-presence": "error", - "react/jsx-sort-props": [ - "error", - { - "callbacksLast": false, - "ignoreCase": false, - "noSortAlphabetically": false, - "reservedFirst": true, - "shorthandFirst": false, - "shorthandLast": false, - }, - ], - "react/prop-types": "off", - "react/react-in-jsx-scope": "off", - "react/sort-default-props": "error", - "require-jsdoc": "off", - "simple-import-sort/exports": "error", - "simple-import-sort/imports": "error", - "spaced-comment": [ - "error", - "always", - { - "markers": [ - "/", - ], - }, - ], - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": "off", - "valid-jsdoc": "off", - }, - "settings": { - "react": { - "defaultVersion": "19", - "version": "detect", - }, - }, - }, - { - "files": [ - "**/*.test-d.{ts,tsx}", - ], - "rules": { - "@typescript-eslint/no-unused-expressions": "off", - }, - }, - { - "files": [ - "**/*.{md,mdx}", - ], - "languageOptions": { - "globals": { - "React": false, - }, - "parser": { - "DEFAULT_EXTENSIONS": [ - ".mdx", - ], - "MARKDOWN_EXTENSIONS": [ - ".md", - ], - "Parser": [Function], - "arrayify": [Function], - "cjsRequire": [Function], - "getPhysicalFilename": [Function], - "getPositionAtFactory": [Function], - "meta": { - "name": "eslint-mdx", - "version": "3.6.2", - }, - "nextCharOffsetFactory": [Function], - "normalizePosition": [Function], - "parse": [Function], - "parseForESLint": [Function], - "parser": Parser { - "parse": [Function], - "parseForESLint": [Function], - }, - "performSyncWork": [Function], - "prevCharOffsetFactory": [Function], - }, - }, - "plugins": { - "mdx": { - "DEFAULT_LANGUAGE_MAPPER": { - "ecmascript": "js", - "javascript": "js", - "javascriptreact": "jsx", - "markdown": "md", - "markdownjsx": "mdx", - "markdownreact": "mdx", - "mdown": "md", - "mkdn": "md", - "typescript": "ts", - "typescriptreact": "tsx", - }, - "base": { - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - ], - "processor": "mdx/remark", - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - }, - }, - "cjsRequire": [Function], - "codeBlocks": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "strict": "off", - "unicode-bom": "off", - }, - }, - "configs": { - "base": { - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - ], - "processor": "mdx/remark", - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - }, - }, - "code-blocks": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "strict": "off", - "unicode-bom": "off", - }, - }, - "codeBlocks": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "strict": "off", - "unicode-bom": "off", - }, - }, - "flat": { - "files": [ - "**/*.{md,mdx}", - ], - "languageOptions": { - "globals": { - "React": false, - }, - "parser": { - "DEFAULT_EXTENSIONS": [ - ".mdx", - ], - "MARKDOWN_EXTENSIONS": [ - ".md", - ], - "Parser": [Function], - "arrayify": [Function], - "cjsRequire": [Function], - "getPhysicalFilename": [Function], - "getPositionAtFactory": [Function], - "meta": { - "name": "eslint-mdx", - "version": "3.6.2", - }, - "nextCharOffsetFactory": [Function], - "normalizePosition": [Function], - "parse": [Function], - "parseForESLint": [Function], - "parser": Parser { - "parse": [Function], - "parseForESLint": [Function], - }, - "performSyncWork": [Function], - "prevCharOffsetFactory": [Function], - }, - }, - "plugins": [Circular], - "processor": { - "meta": { - "name": "mdx/remark", - "version": "3.6.2", - }, - "postprocess": [Function], - "preprocess": [Function], - "supportsAutofix": true, - }, - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - "react/react-in-jsx-scope": "off", - }, - }, - "flatCodeBlocks": { - "files": [ - "**/*.{md,mdx}/**", - ], - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - }, - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "strict": "off", - "unicode-bom": "off", - }, - }, - "overrides": { - "globals": { - "React": false, - }, - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - "react", - ], - "processor": "mdx/remark", - "rules": { - "react/jsx-no-undef": [ - 2, - { - "allowGlobals": true, - }, - ], - "react/react-in-jsx-scope": 0, - }, - }, - "recommended": { - "overrides": [ - { - "extends": "plugin:mdx/overrides", - "files": [ - "*.md", - "*.mdx", - ], - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - ], - "processor": "mdx/remark", - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - }, - }, - { - "extends": "plugin:mdx/code-blocks", - "files": "**/*.{md,mdx}/**", - }, - ], - }, - }, - "createRemarkProcessor": [Function], - "flat": { - "files": [ - "**/*.{md,mdx}", - ], - "languageOptions": { - "globals": { - "React": false, - }, - "parser": { - "DEFAULT_EXTENSIONS": [ - ".mdx", - ], - "MARKDOWN_EXTENSIONS": [ - ".md", - ], - "Parser": [Function], - "arrayify": [Function], - "cjsRequire": [Function], - "getPhysicalFilename": [Function], - "getPositionAtFactory": [Function], - "meta": { - "name": "eslint-mdx", - "version": "3.6.2", - }, - "nextCharOffsetFactory": [Function], - "normalizePosition": [Function], - "parse": [Function], - "parseForESLint": [Function], - "parser": Parser { - "parse": [Function], - "parseForESLint": [Function], - }, - "performSyncWork": [Function], - "prevCharOffsetFactory": [Function], - }, - }, - "plugins": [Circular], - "processor": { - "meta": { - "name": "mdx/remark", - "version": "3.6.2", - }, - "postprocess": [Function], - "preprocess": [Function], - "supportsAutofix": true, - }, - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - "react/react-in-jsx-scope": "off", - }, - }, - "flatCodeBlocks": { - "files": [ - "**/*.{md,mdx}/**", - ], - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - }, - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "strict": "off", - "unicode-bom": "off", - }, - }, - "getGlobals": [Function], - "getShortLang": [Function], - "meta": { - "name": "eslint-plugin-mdx", - "version": "3.6.2", - }, - "overrides": { - "globals": { - "React": false, - }, - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - "react", - ], - "processor": "mdx/remark", - "rules": { - "react/jsx-no-undef": [ - 2, - { - "allowGlobals": true, - }, - ], - "react/react-in-jsx-scope": 0, - }, - }, - "processorOptions": {}, - "processors": { - "remark": { - "meta": { - "name": "mdx/remark", - "version": "3.6.2", - }, - "postprocess": [Function], - "preprocess": [Function], - "supportsAutofix": true, - }, - }, - "recommended": { - "overrides": [ - { - "extends": "plugin:mdx/overrides", - "files": [ - "*.md", - "*.mdx", - ], - "parser": "eslint-mdx", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module", - }, - "plugins": [ - "mdx", - ], - "processor": "mdx/remark", - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - }, - }, - { - "extends": "plugin:mdx/code-blocks", - "files": "**/*.{md,mdx}/**", - }, - ], - }, - "remark": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Linter integration with remark plugins", - "recommended": true, - }, - "fixable": "code", - "type": "layout", - }, - }, - "rules": { - "remark": { - "create": [Function], - "meta": { - "docs": { - "category": "Stylistic Issues", - "description": "Linter integration with remark plugins", - "recommended": true, - }, - "fixable": "code", - "type": "layout", - }, - }, - }, - }, - }, - "processor": { - "meta": { - "name": "mdx/remark", - "version": "3.6.2", - }, - "postprocess": [Function], - "preprocess": [Function], - "supportsAutofix": true, - }, - "rules": { - "mdx/remark": "warn", - "no-unused-expressions": "error", - "react/react-in-jsx-scope": "off", - }, - }, - { - "files": [ - "**/*.{md,mdx}/*.{js,jsx,ts,tsx}", - ], - "languageOptions": { - "parserOptions": { - "ecmaFeatures": { - "impliedStrict": true, - }, - }, - }, - "rules": { - "@typescript-eslint/no-empty-object-type": "off", - "@typescript-eslint/no-unused-vars": "off", - "eol-last": "off", - "no-empty-pattern": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "padded-blocks": "off", - "react/jsx-no-undef": "off", - "react/jsx-tag-spacing": [ - "error", - { - "beforeClosing": "never", - }, - ], - "strict": "off", - "unicode-bom": "off", - }, - }, -] -`; diff --git a/src/configs/__tests__/recommended.test.ts b/src/configs/__tests__/recommended.test.ts index 38a93c4..f7f14f5 100644 --- a/src/configs/__tests__/recommended.test.ts +++ b/src/configs/__tests__/recommended.test.ts @@ -1,6 +1,30 @@ -import recommended from '../recommended' -describe('recommended', () => { - it('export recommended config', () => { - expect(recommended).toMatchSnapshot() - }) -}) +import { describe, expect, it } from 'bun:test' + +import recommended from '../recommended' + +describe('recommended', () => { + it('should export recommended config as array', () => { + expect(Array.isArray(recommended)).toBe(true) + expect(recommended.length).toBeGreaterThan(0) + }) + + it('should have ignores config', () => { + const ignoresConfig = recommended.find( + (config) => 'ignores' in config && !('rules' in config), + ) + expect(ignoresConfig).toBeDefined() + expect(ignoresConfig?.ignores).toContain('**/node_modules/') + expect(ignoresConfig?.ignores).toContain('**/dist/') + }) + + it('should have @devup plugin rules', () => { + const pluginConfig = recommended.find( + (config) => + config.plugins && '@devup' in (config.plugins as Record), + ) + expect(pluginConfig).toBeDefined() + expect(pluginConfig?.rules?.['@devup/component']).toBe('error') + expect(pluginConfig?.rules?.['@devup/app-page']).toBe('error') + expect(pluginConfig?.rules?.['@devup/component-interface']).toBe('error') + }) +}) diff --git a/src/rules/__tests__/index.test.ts b/src/rules/__tests__/index.test.ts index b14646f..f5ed555 100644 --- a/src/rules/__tests__/index.test.ts +++ b/src/rules/__tests__/index.test.ts @@ -1,10 +1,20 @@ -import * as index from '../index' -describe('export index', () => { - it('export', () => { - expect({ ...index }).toEqual({ - component: expect.any(Object), - componentInterface: expect.any(Object), - appPage: expect.any(Object), - }) - }) -}) +import { describe, expect, it } from 'bun:test' + +import * as index from '../index' + +describe('export index', () => { + it('should export component rule', () => { + expect(index.component).toBeDefined() + expect(typeof index.component).toBe('object') + }) + + it('should export componentInterface rule', () => { + expect(index.componentInterface).toBeDefined() + expect(typeof index.componentInterface).toBe('object') + }) + + it('should export appPage rule', () => { + expect(index.appPage).toBeDefined() + expect(typeof index.appPage).toBe('object') + }) +}) diff --git a/src/rules/app-page/README.md b/src/rules/app-page/README.md index 9165cbe..e53639b 100644 --- a/src/rules/app-page/README.md +++ b/src/rules/app-page/README.md @@ -1,21 +1,21 @@ -# app-page - -## Description - -app 내의 page.tsx 혹은 layout.tsx 파일을 생성한 후 파일이 비어 있다면 경고를 발생시키고 자동으로 컴포넌트를 생성합니다. - -## Example - -```jsx -// app/hello/page.tsx -export default function HelloPage() { - return
...
-} -``` - -```jsx -// app/page.tsx -export default function IndexPage() { - return
...
-} -``` +# app-page + +## Description + +When creating a page.tsx or layout.tsx file inside the app directory, this rule warns if the file is empty and automatically generates a component. + +## Example + +```jsx +// app/hello/page.tsx +export default function HelloPage() { + return
...
+} +``` + +```jsx +// app/page.tsx +export default function IndexPage() { + return
...
+} +``` diff --git a/src/rules/app-page/__tests__/index.test.ts b/src/rules/app-page/__tests__/index.test.ts index 68d24d3..71ec53e 100644 --- a/src/rules/app-page/__tests__/index.test.ts +++ b/src/rules/app-page/__tests__/index.test.ts @@ -1,150 +1,147 @@ -import { RuleTester } from '@typescript-eslint/rule-tester' - -import { appPage } from '../index' - -describe('app-page rule', () => { - const ruleTester = new RuleTester({ - languageOptions: { - ecmaVersion: 'latest', - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - }) - ruleTester.run('app-page rule', appPage, { - valid: [ - { - code: 'export default function IndexPage(){return }', - filename: 'src/app/page.tsx', - }, - { - code: 'export default function IndexPage(){return }', - filename: 'src/components/page.tsx', - }, - { - code: 'export default function IndexLayout(){return <>}', - filename: 'src/app/layout.tsx', - }, - { - code: 'export default function NotFoundPage(){return <>}', - filename: 'src/app/404.tsx', - }, - { - code: 'const a=1;\nexport default a', - filename: 'src/app/a/page.tsx', - }, - { - // locale 만 있을 때는 제외입니다. - code: 'export default function TestPage(){return <>}', - filename: 'src/app/[locale]/page.tsx', - }, - { - code: 'export default function TestPage({ params }: { params: Promise<{ locale:string }>}){return <>}', - filename: 'src/app/[locale]/page.tsx', - }, - { - code: '', - filename: 'src/app/Comp.tsx', - }, - ], - invalid: [ - { - code: 'export default function Index(){return <>}', - output: 'export default function IndexLayout(){return <>}', - filename: 'src/app/layout.tsx', - errors: [ - { - messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', - }, - ], - }, - { - code: 'export default function Index(){return <>}', - output: 'export default function IndexPage(){return <>}', - filename: 'src/app/page.tsx', - errors: [ - { - messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', - }, - ], - }, - { - code: '', - filename: 'src/app/page.tsx', - output: 'export default function Page(){return <>}', - errors: [ - { - messageId: 'pageOrLayoutComponentShouldDefaultExport', - }, - ], - }, - { - code: '', - filename: 'src/app/[a]/page.tsx', - output: - 'export default function Page({params}:{params:Promise<{a:string}>}){return <>}', - errors: [ - { - messageId: 'pageOrLayoutComponentShouldDefaultExport', - }, - ], - }, - { - code: '', - filename: 'src/app/404.tsx', - output: 'export default function NotFoundPage(){return <>}', - errors: [ - { - messageId: 'pageOrLayoutComponentShouldDefaultExport', - }, - ], - }, - { - code: 'export const A=1', - filename: 'src/app/page.tsx', - output: - 'export const A=1\nexport default function Page(){return <>}', - errors: [ - { - messageId: 'pageOrLayoutComponentShouldDefaultExport', - }, - ], - }, - { - code: 'export default function Page(){return <>}', - filename: 'src/app/[a]/[b]/page.tsx', - output: - 'export default function Page({params}:{params:Promise<{a:string;b:string}>}){return <>}', - errors: [ - { - messageId: 'pathParamsShouldExist', - }, - ], - }, - { - code: 'export default function Page():any{return <>}', - filename: 'src/app/[a]/[b]/page.tsx', - output: - 'export default function Page({params}:{params:Promise<{a:string;b:string}>}):any{return <>}', - errors: [ - { - messageId: 'pathParamsShouldExist', - }, - ], - }, - { - code: '', - filename: 'src/app/[locale]/page.tsx', - output: - 'export default function Page({params}:{params:Promise<{locale:string}>}){return <>}', - errors: [ - { - messageId: 'pageOrLayoutComponentShouldDefaultExport', - }, - ], - }, - ], - }) -}) +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { appPage } from '../index' + +const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, +}) + +ruleTester.run('app-page rule', appPage, { + valid: [ + { + code: 'export default function IndexPage(){return }', + filename: 'src/app/page.tsx', + }, + { + code: 'export default function IndexPage(){return }', + filename: 'src/components/page.tsx', + }, + { + code: 'export default function IndexLayout(){return <>}', + filename: 'src/app/layout.tsx', + }, + { + code: 'export default function NotFoundPage(){return <>}', + filename: 'src/app/404.tsx', + }, + { + code: 'const a=1;\nexport default a', + filename: 'src/app/a/page.tsx', + }, + { + code: 'export default function TestPage(){return <>}', + filename: 'src/app/[locale]/page.tsx', + }, + { + code: 'export default function TestPage({ params }: { params: Promise<{ locale:string }>}){return <>}', + filename: 'src/app/[locale]/page.tsx', + }, + { + code: '', + filename: 'src/app/Comp.tsx', + }, + ], + invalid: [ + { + code: 'export default function Index(){return <>}', + output: 'export default function IndexLayout(){return <>}', + filename: 'src/app/layout.tsx', + errors: [ + { + messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', + }, + ], + }, + { + code: 'export default function Index(){return <>}', + output: 'export default function IndexPage(){return <>}', + filename: 'src/app/page.tsx', + errors: [ + { + messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', + }, + ], + }, + { + code: '', + filename: 'src/app/page.tsx', + output: 'export default function Page(){return <>}', + errors: [ + { + messageId: 'pageOrLayoutComponentShouldDefaultExport', + }, + ], + }, + { + code: '', + filename: 'src/app/[a]/page.tsx', + output: + 'export default function Page({params}:{params:Promise<{a:string}>}){return <>}', + errors: [ + { + messageId: 'pageOrLayoutComponentShouldDefaultExport', + }, + ], + }, + { + code: '', + filename: 'src/app/404.tsx', + output: 'export default function NotFoundPage(){return <>}', + errors: [ + { + messageId: 'pageOrLayoutComponentShouldDefaultExport', + }, + ], + }, + { + code: 'export const A=1', + filename: 'src/app/page.tsx', + output: 'export const A=1\nexport default function Page(){return <>}', + errors: [ + { + messageId: 'pageOrLayoutComponentShouldDefaultExport', + }, + ], + }, + { + code: 'export default function Page(){return <>}', + filename: 'src/app/[a]/[b]/page.tsx', + output: + 'export default function Page({params}:{params:Promise<{a:string;b:string}>}){return <>}', + errors: [ + { + messageId: 'pathParamsShouldExist', + }, + ], + }, + { + code: 'export default function Page():any{return <>}', + filename: 'src/app/[a]/[b]/page.tsx', + output: + 'export default function Page({params}:{params:Promise<{a:string;b:string}>}):any{return <>}', + errors: [ + { + messageId: 'pathParamsShouldExist', + }, + ], + }, + { + code: '', + filename: 'src/app/[locale]/page.tsx', + output: + 'export default function Page({params}:{params:Promise<{locale:string}>}){return <>}', + errors: [ + { + messageId: 'pageOrLayoutComponentShouldDefaultExport', + }, + ], + }, + ], +}) diff --git a/src/rules/app-page/index.ts b/src/rules/app-page/index.ts index 408e438..2ffccaf 100644 --- a/src/rules/app-page/index.ts +++ b/src/rules/app-page/index.ts @@ -1,117 +1,116 @@ -import { ESLintUtils } from '@typescript-eslint/utils' -import { relative } from 'path' - -const createRule = ESLintUtils.RuleCreator( - (name) => - `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, -) - -export const appPage = createRule({ - name: 'app-page', - defaultOptions: [], - meta: { - schema: [], - messages: { - pageOrLayoutComponentShouldDefaultExport: - '페이지나 레이아웃 컴포넌트는 반드시 `export default`로 내보내야 합니다.', - - nameOfPageOrLayoutComponentShouldHaveSuffix: - '페이지나 레이아웃 컴포넌트의 이름은 반드시 `Page`나 `Layout`으로 끝나야 합니다.', - pathParamsShouldExist: - '경로 변수를 사용할 수 있을 경우 `params`는 반드시 존재해야 합니다.', - }, - type: 'problem', - fixable: 'code', - docs: { - description: - 'required 페이지나 레이아웃 컴포넌트는 반드시 export default로 내보내야 합니다.', - }, - }, - create(context) { - const filename = relative(context.cwd, context.physicalFilename) - - if (!/src[/\\]app[/\\]/.test(filename)) return {} - const type = /page\.[j|t]sx?$/.test(filename) - ? 'page' - : /layout\.[j|t]sx?$/.test(filename) - ? 'layout' - : /404\.[j|t]sx?$/.test(filename) - ? '404' - : 'component' - if (type === 'component') return {} - - const functionSuffix = type === 'layout' ? 'Layout' : 'Page' - const pathParams = filename.match(/\[.*?]/g) ?? [] - const onlyLocale = pathParams.length === 1 && pathParams[0] === '[locale]' - // locale 만 있을 경우 무시합니다. - - let ok = false - return { - ExportDefaultDeclaration(defaultExport) { - ok = true - const declaration = defaultExport.declaration - if (declaration.type !== 'FunctionDeclaration') return - if ( - declaration.id?.name && - !declaration.id.name.endsWith(functionSuffix) - ) { - const func = declaration.id - context.report({ - node: func, - messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', - fix(fixer) { - return fixer.replaceText(func, func.name + functionSuffix) - }, - }) - } - if ( - declaration.id && - pathParams.length && - declaration.params.length === 0 && - !onlyLocale - ) { - context.report({ - node: declaration, - messageId: 'pathParamsShouldExist', - fix(fixer) { - return fixer.replaceTextRange( - [ - declaration.id!.range[1], - declaration.returnType - ? declaration.returnType.range[0] - : declaration.body.range[0], - ], - `({params}:{params:Promise<{${pathParams - .map((param) => `${param.slice(1, -1)}:string`) - .join(';')}}>})`, - ) - }, - }) - } - return - }, - 'Program:exit'(program) { - // 소스코드가 비어있으면 자동생성 - if (ok) return - context.report({ - node: program, - messageId: 'pageOrLayoutComponentShouldDefaultExport', - fix(fixer) { - return fixer.insertTextAfter( - program, - `${context.sourceCode.text.trim().length ? '\n' : ''}export default function ` + - (type === '404' ? 'NotFoundPage' : functionSuffix) + - `(${ - pathParams.length - ? `{params}:{params:Promise<{${pathParams - .map((param) => `${param.slice(1, -1)}:string`) - .join(';')}}>}` - : '' - }){return <>}`, - ) - }, - }) - }, - } - }, -}) +import { ESLintUtils } from '@typescript-eslint/utils' +import { relative } from 'path' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +// Pre-compiled regex patterns +const APP_DIR_PATTERN = /src[/\\]app[/\\]/ +const FILE_TYPE_PATTERN = /(page|layout|404)\.[jt]sx?$/ +const PATH_PARAMS_PATTERN = /\[.*?]/g + +function generateParamsType(pathParams: string[]): string { + return `{params}:{params:Promise<{${pathParams.map((param) => `${param.slice(1, -1)}:string`).join(';')}}>}` +} + +export const appPage = createRule({ + name: 'app-page', + defaultOptions: [], + meta: { + schema: [], + messages: { + pageOrLayoutComponentShouldDefaultExport: + 'Page or layout component must be exported with `export default`.', + nameOfPageOrLayoutComponentShouldHaveSuffix: + 'Page or layout component name must end with `Page` or `Layout`.', + pathParamsShouldExist: + '`params` must exist when path parameters are available.', + }, + type: 'problem', + fixable: 'code', + docs: { + description: + 'Require page or layout component to be exported with export default.', + }, + }, + create(context) { + const filename = relative(context.cwd, context.physicalFilename) + + if (!APP_DIR_PATTERN.test(filename)) return {} + + const fileTypeMatch = FILE_TYPE_PATTERN.exec(filename) + if (!fileTypeMatch) return {} + + const type = fileTypeMatch[1] as 'page' | 'layout' | '404' + + const functionSuffix = type === 'layout' ? 'Layout' : 'Page' + const pathParams = filename.match(PATH_PARAMS_PATTERN) ?? [] + // Ignore when only locale param exists + const onlyLocale = pathParams.length === 1 && pathParams[0] === '[locale]' + + const hasPathParams = pathParams.length > 0 + const requiresParams = hasPathParams && !onlyLocale + const paramsType = hasPathParams ? generateParamsType(pathParams) : '' + + let ok = false + return { + ExportDefaultDeclaration(defaultExport) { + ok = true + const declaration = defaultExport.declaration + if (declaration.type !== 'FunctionDeclaration') return + + if ( + declaration.id?.name && + !declaration.id.name.endsWith(functionSuffix) + ) { + context.report({ + node: declaration.id, + messageId: 'nameOfPageOrLayoutComponentShouldHaveSuffix', + fix: (fixer) => + fixer.replaceText( + declaration.id!, + declaration.id!.name + functionSuffix, + ), + }) + } + + if ( + declaration.id && + requiresParams && + declaration.params.length === 0 + ) { + context.report({ + node: declaration, + messageId: 'pathParamsShouldExist', + fix: (fixer) => + fixer.replaceTextRange( + [ + declaration.id!.range[1], + declaration.returnType?.range[0] ?? declaration.body.range[0], + ], + `(${paramsType})`, + ), + }) + } + }, + 'Program:exit'(program) { + if (ok) return + + const functionName = type === '404' ? 'NotFoundPage' : functionSuffix + const prefix = context.sourceCode.text.trim().length ? '\n' : '' + + context.report({ + node: program, + messageId: 'pageOrLayoutComponentShouldDefaultExport', + fix: (fixer) => + fixer.insertTextAfter( + program, + `${prefix}export default function ${functionName}(${paramsType}){return <>}`, + ), + }) + }, + } + }, +}) diff --git a/src/rules/component-interface/README.md b/src/rules/component-interface/README.md index 8fe7c38..495b65b 100644 --- a/src/rules/component-interface/README.md +++ b/src/rules/component-interface/README.md @@ -1,24 +1,22 @@ -# component interface - -## Description - -컴포넌트의 props 가 빈 object 일 때 interface 를 추가합니다. - -## Example - -```tsx -export function Hello({}) { - return
...
-} -``` - -```tsx -interface HelloProps {} -export function Hello({}: HelloProps) { - return
...
-} -``` - -``` - -``` +# component-interface + +## Description + +Adds an interface when component props is an empty object. + +## Example + +```tsx +// Before +export function Hello({}) { + return
...
+} +``` + +```tsx +// After +interface HelloProps {} +export function Hello({}: HelloProps) { + return
...
+} +``` diff --git a/src/rules/component-interface/__tests__/index.test.ts b/src/rules/component-interface/__tests__/index.test.ts index b30bee9..16bc7b4 100644 --- a/src/rules/component-interface/__tests__/index.test.ts +++ b/src/rules/component-interface/__tests__/index.test.ts @@ -1,106 +1,105 @@ -import { RuleTester } from '@typescript-eslint/rule-tester' - -import { componentInterface } from '../index' - -describe('component rule', () => { - const ruleTester = new RuleTester({ - languageOptions: { - ecmaVersion: 'latest', - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - }) - ruleTester.run('component rule', componentInterface, { - valid: [ - { - code: 'interface HelloProps{}\ninterface Hello1Props{}\nexport function Hello({}:HelloProps){return <>}', - filename: 'src/components/hello.tsx', - }, - { - code: '', - filename: 'src/components/hello.ts', - }, - ], - invalid: [ - { - code: 'function Hello({}){return <>}', - output: - 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}', - filename: 'src/components/hello.tsx', - errors: [ - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - ], - }, - { - code: 'export function Hello({}){return <>}', - output: - 'interface HelloProps{}\nexport function Hello({}:HelloProps){return <>}', - filename: 'src/components/hello.tsx', - errors: [ - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - ], - }, - { - code: 'export default function Hello({}){return <>}', - output: - 'interface HelloProps{}\nexport default function Hello({}:HelloProps){return <>}', - filename: 'src/components/hello.tsx', - errors: [ - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - ], - }, - { - code: 'function Hello({}){return <>}\nfunction Hello2({}){return <>}', - output: - 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}\ninterface Hello2Props{}\nfunction Hello2({}:Hello2Props){return <>}', - filename: 'src/components/hello.tsx', - errors: [ - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - ], - }, - { - code: 'function Hello({}){return <>}\nfunction Hello2({}){return <>}\nexport function Hello3({}){return <>}\nexport default function Hello4({}){return <>}', - output: - 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}\ninterface Hello2Props{}\nfunction Hello2({}:Hello2Props){return <>}\ninterface Hello3Props{}\nexport function Hello3({}:Hello3Props){return <>}\ninterface Hello4Props{}\nexport default function Hello4({}:Hello4Props){return <>}', - filename: 'src/components/hello.tsx', - errors: [ - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - { - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - }, - ], - }, - ], - }) -}) +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { componentInterface } from '../index' + +const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, +}) + +ruleTester.run('component-interface rule', componentInterface, { + valid: [ + { + code: 'interface HelloProps{}\ninterface Hello1Props{}\nexport function Hello({}:HelloProps){return <>}', + filename: 'src/components/hello.tsx', + }, + { + code: '', + filename: 'src/components/hello.ts', + }, + ], + invalid: [ + { + code: 'function Hello({}){return <>}', + output: + 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}', + filename: 'src/components/hello.tsx', + errors: [ + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + ], + }, + { + code: 'export function Hello({}){return <>}', + output: + 'interface HelloProps{}\nexport function Hello({}:HelloProps){return <>}', + filename: 'src/components/hello.tsx', + errors: [ + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + ], + }, + { + code: 'export default function Hello({}){return <>}', + output: + 'interface HelloProps{}\nexport default function Hello({}:HelloProps){return <>}', + filename: 'src/components/hello.tsx', + errors: [ + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + ], + }, + { + code: 'function Hello({}){return <>}\nfunction Hello2({}){return <>}', + output: + 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}\ninterface Hello2Props{}\nfunction Hello2({}:Hello2Props){return <>}', + filename: 'src/components/hello.tsx', + errors: [ + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + ], + }, + { + code: 'function Hello({}){return <>}\nfunction Hello2({}){return <>}\nexport function Hello3({}){return <>}\nexport default function Hello4({}){return <>}', + output: + 'interface HelloProps{}\nfunction Hello({}:HelloProps){return <>}\ninterface Hello2Props{}\nfunction Hello2({}:Hello2Props){return <>}\ninterface Hello3Props{}\nexport function Hello3({}:Hello3Props){return <>}\ninterface Hello4Props{}\nexport default function Hello4({}:Hello4Props){return <>}', + filename: 'src/components/hello.tsx', + errors: [ + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + { + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + }, + ], + }, + ], +}) diff --git a/src/rules/component-interface/index.ts b/src/rules/component-interface/index.ts index e56e9e4..3448623 100644 --- a/src/rules/component-interface/index.ts +++ b/src/rules/component-interface/index.ts @@ -1,63 +1,67 @@ -import { ESLintUtils } from '@typescript-eslint/utils' - -const createRule = ESLintUtils.RuleCreator( - (name) => - `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, -) - -export const componentInterface = createRule({ - name: 'component-interface', - defaultOptions: [], - meta: { - schema: [], - messages: { - componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern: - '컴포넌트의 `props`가 비어있고 타입이 없을 경우 반드시 타입을 명시해야 합니다.', - }, - type: 'problem', - fixable: 'code', - docs: { - description: - 'required type annotation for component props when empty object pattern', - }, - }, - create(context) { - const filename = context.physicalFilename - - if (!filename.endsWith('.tsx')) return {} - - return { - FunctionDeclaration(node) { - const funcName = node.id?.name - - if ( - funcName && - node.params.length === 1 && - node.params[0].type === 'ObjectPattern' && - !node.params[0].typeAnnotation && - node.params[0].properties.length === 0 && - (node.parent.type === 'Program' || - node.parent.type === 'ExportNamedDeclaration' || - node.parent.type === 'ExportDefaultDeclaration') && - /^[A-Z]/.test(funcName) - ) { - context.report({ - node, - messageId: - 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', - fix(fixer) { - return [ - fixer.insertTextAfter(node.params[0], `:${funcName}Props`), - // 1줄 전 - fixer.insertTextBefore( - node.parent.type === 'Program' ? node : node.parent, - `interface ${funcName}Props{}\n`, - ), - ] - }, - }) - } - }, - } - }, -}) +import { ESLintUtils } from '@typescript-eslint/utils' + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +const PASCAL_CASE_PATTERN = /^[A-Z]/ +const EXPORTABLE_PARENT_TYPES = new Set([ + 'Program', + 'ExportNamedDeclaration', + 'ExportDefaultDeclaration', +]) + +export const componentInterface = createRule({ + name: 'component-interface', + defaultOptions: [], + meta: { + schema: [], + messages: { + componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern: + 'Component `props` must have type annotation when empty object pattern.', + }, + type: 'problem', + fixable: 'code', + docs: { + description: + 'required type annotation for component props when empty object pattern', + }, + }, + create(context) { + if (!context.physicalFilename.endsWith('.tsx')) return {} + + return { + FunctionDeclaration(node) { + const funcName = node.id?.name + if (!funcName || !PASCAL_CASE_PATTERN.test(funcName)) return + + const firstParam = node.params[0] + if ( + node.params.length !== 1 || + firstParam.type !== 'ObjectPattern' || + firstParam.typeAnnotation || + firstParam.properties.length !== 0 || + !EXPORTABLE_PARENT_TYPES.has(node.parent.type) + ) { + return + } + + const insertTarget = node.parent.type === 'Program' ? node : node.parent + + context.report({ + node, + messageId: + 'componentPropsShouldHaveTypeAnnotationWhenEmptyObjectPattern', + fix: (fixer) => [ + fixer.insertTextAfter(firstParam, `:${funcName}Props`), + fixer.insertTextBefore( + insertTarget, + `interface ${funcName}Props{}\n`, + ), + ], + }) + }, + } + }, +}) diff --git a/src/rules/component/README.md b/src/rules/component/README.md index 3fdd28d..62ccbfb 100644 --- a/src/rules/component/README.md +++ b/src/rules/component/README.md @@ -1,21 +1,21 @@ -# component - -## Description - -app 폴더, 혹은 components 폴더에 있는 컴포넌트는 파일명 혹은 index.tsx 라면 폴더명에 따라서 이름을 지어야 합니다. - -## Example - -```jsx -// app/hello/index.tsx -export function Hello() { - return
...
-} -``` - -```jsx -// components/app-wrapper/index.tsx -export function AppWrapper() { - return
...
-} -``` +# component + +## Description + +Components in the app folder or components folder must be named according to the file name, or the folder name if it's an index.tsx file. + +## Example + +```jsx +// app/hello/index.tsx +export function Hello() { + return
...
+} +``` + +```jsx +// components/app-wrapper/index.tsx +export function AppWrapper() { + return
...
+} +``` diff --git a/src/rules/component/__tests__/index.test.ts b/src/rules/component/__tests__/index.test.ts index 3cb7a1c..9af35ba 100644 --- a/src/rules/component/__tests__/index.test.ts +++ b/src/rules/component/__tests__/index.test.ts @@ -1,231 +1,257 @@ -import { RuleTester } from '@typescript-eslint/rule-tester' - -import { component } from '../index' - -describe('component rule', () => { - const ruleTester = new RuleTester({ - languageOptions: { - ecmaVersion: 'latest', - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - }) - ruleTester.run('component rule', component, { - valid: [ - { - code: 'export default function IndexPage(){return }', - filename: 'src/app/page', - }, - { - code: 'export default function IndexPage(){return }', - filename: 'src/app/page.tsx', - }, - { - code: 'export default function Hello(){return }', - filename: 'src/components/Hello.tsx', - }, - { - code: 'export default function IndexPage(){return }', - filename: 'src/app/aaa/bb/cc/page.tsx', - }, - { - code: 'export default function IndexPage(){return }', - filename: 'src/app/aaa/bb/cc/layout.tsx', - }, - { - code: 'export function Page(){return }', - filename: 'src/components/page.tsx', - }, - { - code: 'export class Page extends React.Component{render(){return }}', - filename: 'src/components/page.tsx', - }, - { - // 예외 - code: 'export {a} from "./a"', - filename: 'src/components/index.tsx', - }, - { - // 예외 - code: '', - filename: 'src/app/404.tsx', - }, - { - code: 'export function TestComponent(){return }', - filename: 'src/components/test-component.tsx', - }, - { - code: 'export function NiceComponentAll(){return }\nexport function NiceComponent(){return }', - filename: 'src/components/nice_component.tsx', - }, - { - code: 'export function NiceComponent(){return }', - filename: 'src/components/nice_component.tsx', - }, - { - code: 'export function Number9(){return }', - filename: 'src/components/number9.tsx', - }, - { - code: '"use client"\nexport function Number9(){return }', - filename: 'src/components/Number9.tsx', - }, - { - code: 'export function Number9(){return }', - filename: 'src/components/Number9.tsx', - }, - { - code: 'export function hello(){return }', - filename: 'src/components/utils/Number9.tsx', - }, - { - code: 'export function Dir(){return <>}', - filename: 'src/components/dir/index.tsx', - }, - { - code: 'export const Dir = ()=>{return <>}', - filename: 'src/components/dir/index.tsx', - }, - { - code: 'export const Dir1 = ()=>{return <>}\nexport const Dir = ()=>{return <>}', - filename: 'src/components/dir/index.tsx', - }, - { - code: '\nexport {} from ""\nexport const Dir = ()=><>', - filename: 'src/components/dir/index.tsx', - }, - { - code: 'export const Dir = ()=><>', - filename: 'src/components/__test__/index.test.tsx', - }, - { - code: 'export const Dir = ()=><>', - filename: 'src/components/__tests__/index.test.tsx', - }, - { - code: 'export const Dir = ()=><>', - filename: 'src/components/index.css.tsx', - }, - { - code: 'export const Dir = function(){return <>}\nexport const Dir2 = function(){return <>}', - filename: 'src/components/dir/index.tsx', - }, - { - code: 'export function Dir(){return <>}', - filename: 'src/components/dir1/a/b/c/d/dir.tsx', - }, - { - code: 'export function Dir(){return <>}', - filename: 'src/app/dir1/a/b/c/d/dir.tsx', - }, - { - code: 'export function D(){return <>}', - filename: 'src/app/dir1/a/b/c/d/index.tsx', - }, - { - code: '', - filename: 'src/none.tsx', - }, - { - code: 'interface HelloProps{}\ninterface Hello1Props{}\nexport function Hello({}:HelloProps){return <>}', - filename: 'src/components/hello.tsx', - }, - ], - invalid: [ - { - code: '', - output: 'export function D(){return <>}', - filename: 'src/app/d.tsx', - errors: [ - { - messageId: 'componentFileShouldExportComponent', - }, - ], - }, - { - code: '', - output: 'export function D(){return <>}', - filename: 'src/app/d/index.tsx', - errors: [ - { - messageId: 'componentFileShouldExportComponent', - }, - ], - }, - { - code: '', - output: 'export function D(){return <>}', - filename: 'src/components/d/index.tsx', - errors: [ - { - messageId: 'componentFileShouldExportComponent', - }, - ], - }, - { - code: 'export function Wrong(){return <>}', - output: 'export function D(){return <>}', - filename: 'src/components/d.tsx', - errors: [ - { - messageId: 'componentNameShouldBeFollowDirectoryStructure', - }, - ], - }, - { - code: 'export function d(){return <>}', - output: 'export function D(){return <>}', - filename: 'src/app/d.tsx', - errors: [ - { - messageId: 'componentNameShouldBeFollowDirectoryStructure', - }, - ], - }, - { - code: 'export function d(){return <>}', - output: 'export function D(){return <>}', - filename: 'src/app/d/index.tsx', - errors: [ - { - messageId: 'componentNameShouldBeFollowDirectoryStructure', - }, - ], - }, - { - code: 'export function d(){return <>}', - output: 'export function D(){return <>}', - filename: 'src/components/d/index.tsx', - errors: [ - { - messageId: 'componentNameShouldBeFollowDirectoryStructure', - }, - ], - }, - { - code: 'export const d=function(){return <>}', - output: 'export const D=function(){return <>}', - filename: 'src/components/d/index.tsx', - errors: [ - { - messageId: 'componentNameShouldBeFollowDirectoryStructure', - }, - ], - }, - { - code: 'export const num=1\nexport const {num1}={num1:1}', - output: - 'export const num=1\nexport const {num1}={num1:1}\nexport function Just(){return <>}', - filename: 'src/components/just.tsx', - errors: [ - { - messageId: 'componentFileShouldExportComponent', - }, - ], - }, - ], - }) -}) +import { RuleTester } from '@typescript-eslint/rule-tester' + +import { component } from '../index' + +const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: 'latest', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, +}) + +ruleTester.run('component rule', component, { + valid: [ + { + code: 'export default function IndexPage(){return }', + filename: 'src/app/page', + }, + { + code: 'export default function IndexPage(){return }', + filename: 'src/app/page.tsx', + }, + { + code: 'export default function Hello(){return }', + filename: 'src/components/Hello.tsx', + }, + { + code: 'export default function IndexPage(){return }', + filename: 'src/app/aaa/bb/cc/page.tsx', + }, + { + code: 'export default function IndexPage(){return }', + filename: 'src/app/aaa/bb/cc/layout.tsx', + }, + { + code: 'export function Page(){return }', + filename: 'src/components/page.tsx', + }, + { + code: 'export class Page extends React.Component{render(){return }}', + filename: 'src/components/page.tsx', + }, + { + code: 'export {a} from "./a"', + filename: 'src/components/index.tsx', + }, + { + code: '', + filename: 'src/app/404.tsx', + }, + { + code: 'export function TestComponent(){return }', + filename: 'src/components/test-component.tsx', + }, + { + code: 'export function NiceComponentAll(){return }\nexport function NiceComponent(){return }', + filename: 'src/components/nice_component.tsx', + }, + { + code: 'export function NiceComponent(){return }', + filename: 'src/components/nice_component.tsx', + }, + { + code: 'export function Number9(){return }', + filename: 'src/components/number9.tsx', + }, + { + code: '"use client"\nexport function Number9(){return }', + filename: 'src/components/Number9.tsx', + }, + { + code: 'export function Number9(){return }', + filename: 'src/components/Number9.tsx', + }, + { + code: 'export function hello(){return }', + filename: 'src/components/utils/Number9.tsx', + }, + { + code: 'export function Dir(){return <>}', + filename: 'src/components/dir/index.tsx', + }, + { + code: 'export const Dir = ()=>{return <>}', + filename: 'src/components/dir/index.tsx', + }, + { + code: 'export const Dir1 = ()=>{return <>}\nexport const Dir = ()=>{return <>}', + filename: 'src/components/dir/index.tsx', + }, + { + code: '\nexport {} from ""\nexport const Dir = ()=><>', + filename: 'src/components/dir/index.tsx', + }, + { + code: 'export const Dir = ()=><>', + filename: 'src/components/__test__/index.test.tsx', + }, + { + code: 'export const Dir = ()=><>', + filename: 'src/components/__tests__/index.test.tsx', + }, + { + code: 'export const Dir = ()=><>', + filename: 'src/components/index.css.tsx', + }, + { + code: 'export const Dir = function(){return <>}\nexport const Dir2 = function(){return <>}', + filename: 'src/components/dir/index.tsx', + }, + { + code: 'export class Dir extends React.Component{render(){return <>}}', + filename: 'src/components/dir/index.tsx', + }, + { + code: 'export function Dir(){return <>}', + filename: 'src/components/dir1/a/b/c/d/dir.tsx', + }, + { + code: 'export function Dir(){return <>}', + filename: 'src/app/dir1/a/b/c/d/dir.tsx', + }, + { + code: 'export function D(){return <>}', + filename: 'src/app/dir1/a/b/c/d/index.tsx', + }, + { + code: '', + filename: 'src/none.tsx', + }, + { + code: 'interface HelloProps{}\ninterface Hello1Props{}\nexport function Hello({}:HelloProps){return <>}', + filename: 'src/components/hello.tsx', + }, + { + // ClassDeclaration matches file name + code: 'export class Hello extends React.Component{render(){return <>}}', + filename: 'src/components/hello.tsx', + }, + { + // ClassDeclaration matches directory name (index file) + code: 'export class MyComponent extends React.Component{render(){return <>}}', + filename: 'src/components/my-component/index.tsx', + }, + { + // export specifiers without declaration (non-index file, but has default export) + code: 'export default function Hello(){return <>}\nexport { a } from "./a"', + filename: 'src/components/hello.tsx', + }, + { + // named export with specifiers in non-index file (no declaration) + code: 'export function Hello(){return <>}\nexport { b } from "./b"', + filename: 'src/components/hello.tsx', + }, + { + // ClassDeclaration without matching name (other export passes) + code: 'export class Wrong extends React.Component{render(){return <>}}\nexport function Hello(){return <>}', + filename: 'src/components/hello.tsx', + }, + ], + invalid: [ + { + code: '', + output: 'export function D(){return <>}', + filename: 'src/app/d.tsx', + errors: [ + { + messageId: 'componentFileShouldExportComponent', + }, + ], + }, + { + code: '', + output: 'export function D(){return <>}', + filename: 'src/app/d/index.tsx', + errors: [ + { + messageId: 'componentFileShouldExportComponent', + }, + ], + }, + { + code: '', + output: 'export function D(){return <>}', + filename: 'src/components/d/index.tsx', + errors: [ + { + messageId: 'componentFileShouldExportComponent', + }, + ], + }, + { + code: 'export function Wrong(){return <>}', + output: 'export function D(){return <>}', + filename: 'src/components/d.tsx', + errors: [ + { + messageId: 'componentNameShouldBeFollowDirectoryStructure', + }, + ], + }, + { + code: 'export function d(){return <>}', + output: 'export function D(){return <>}', + filename: 'src/app/d.tsx', + errors: [ + { + messageId: 'componentNameShouldBeFollowDirectoryStructure', + }, + ], + }, + { + code: 'export function d(){return <>}', + output: 'export function D(){return <>}', + filename: 'src/app/d/index.tsx', + errors: [ + { + messageId: 'componentNameShouldBeFollowDirectoryStructure', + }, + ], + }, + { + code: 'export function d(){return <>}', + output: 'export function D(){return <>}', + filename: 'src/components/d/index.tsx', + errors: [ + { + messageId: 'componentNameShouldBeFollowDirectoryStructure', + }, + ], + }, + { + code: 'export const d=function(){return <>}', + output: 'export const D=function(){return <>}', + filename: 'src/components/d/index.tsx', + errors: [ + { + messageId: 'componentNameShouldBeFollowDirectoryStructure', + }, + ], + }, + { + code: 'export const num=1\nexport const {num1}={num1:1}', + output: + 'export const num=1\nexport const {num1}={num1:1}\nexport function Just(){return <>}', + filename: 'src/components/just.tsx', + errors: [ + { + messageId: 'componentFileShouldExportComponent', + }, + ], + }, + ], +}) diff --git a/src/rules/component/index.ts b/src/rules/component/index.ts index 90b1352..627ae45 100644 --- a/src/rules/component/index.ts +++ b/src/rules/component/index.ts @@ -1,174 +1,139 @@ -import { ESLintUtils, TSESTree } from '@typescript-eslint/utils' -import { relative } from 'path' - -/** - * 문자열을 파스칼 케이스로 변환합니다. - * @param str 변환할 문자열 - * @returns 파스칼 케이스로 변환된 문자열 - */ -function toPascal(str: string) { - return str - .replace(/[-_](.)/g, (_, c) => c.toUpperCase()) - .replace(/^[a-z]/, (c) => c.toUpperCase()) -} - -const createRule = ESLintUtils.RuleCreator( - (name) => - `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, -) - -// 검사 제외 파일 패턴 -const EXCLUDE_PATTERNS = [ - /[\\/]utils[\\/]/, - /[\\/](__)?tests?(__)?[\\/]/, - /\.(test|css|stories)\.[jt]sx$/, -] - -// 검사 대상 파일 패턴 -const INCLUDE_PATTERNS = [ - /(src[/\\])?(app[/\\](?!.*[\\/]?(page|layout|404)\.[jt]sx$)|components[/\\]).*\.[jt]sx$/, -] - -export const component = createRule({ - name: 'component', - defaultOptions: [], - meta: { - schema: [], - messages: { - componentNameShouldBeFollowDirectoryStructure: - '컴포넌트 이름은 디렉토리명 혹은 파일명을 따라야 합니다.', - componentFileShouldExportComponent: - '컴포넌트 파일은 컴포넌트를 내보내야 합니다. (컴포넌트명: {targetComponentName})', - }, - type: 'problem', - fixable: 'code', - docs: { - description: - 'required 컴포넌트 이름은 디렉터리 혹은 파일명을 따라야 합니다.', - }, - }, - create(context) { - const filename = relative(context.cwd, context.physicalFilename) - - // 검사 대상이 아닌 파일은 빈 객체 반환 - const isIncluded = INCLUDE_PATTERNS.some((pattern) => - pattern.test(filename), - ) - const isExcluded = EXCLUDE_PATTERNS.some((pattern) => - pattern.test(filename), - ) - - if (!isIncluded || isExcluded) { - return {} - } - - // 파일 경로에서 컴포넌트 이름 추출 - const targetComponentRegex = /([^/\\]+)[/\\]([^/\\]+)\.[jt]sx$/i.exec( - filename, - )! - - const isIndex = targetComponentRegex[2].startsWith('index') - const targetComponentName = isIndex - ? toPascal(targetComponentRegex[1]) - : toPascal(targetComponentRegex[2]) - - const exportFunc: TSESTree.Node[] = [] - let ok = false - - /** - * 선언이 타겟 컴포넌트 이름과 일치하는지 확인 - * @param name 선언된 이름 - * @returns 일치 여부 - */ - const isTargetComponent = (name: string) => name === targetComponentName - - return { - ExportDefaultDeclaration() { - ok = true - }, - ExportNamedDeclaration(namedExport) { - if (ok) return - - // index 파일에서 export 구문이 있는 경우 검사 통과 - if (namedExport.specifiers.length && isIndex) { - ok = true - return - } - - const declaration = namedExport.declaration - if (!declaration) return - - // 함수 선언 검사 - if (declaration.type === 'FunctionDeclaration' && declaration.id) { - if (isTargetComponent(declaration.id.name)) { - ok = true - return - } - exportFunc.push(declaration.id) - } - - // 클래스 선언 검사 - if (declaration.type === 'ClassDeclaration' && declaration.id) { - if (isTargetComponent(declaration.id.name)) { - ok = true - return - } - } - - // 변수 선언 검사 (화살표 함수, 함수 표현식 등) - if (declaration.type === 'VariableDeclaration') { - for (const el of declaration.declarations) { - if (el.id.type !== 'Identifier') continue - - if (isTargetComponent(el.id.name)) { - ok = true - return - } - - const isComponentFunction = - el.init?.type === 'ArrowFunctionExpression' || - el.init?.type === 'FunctionExpression' - - if (isComponentFunction) { - exportFunc.push(el.id) - } - } - } - }, - 'Program:exit'(program) { - if (ok) return - - // 컴포넌트 이름이 일치하지 않는 경우 수정 제안 - if (exportFunc.length) { - for (const exported of exportFunc) { - context.report({ - node: exported, - messageId: 'componentNameShouldBeFollowDirectoryStructure', - fix(fixer) { - return fixer.replaceText(exported, targetComponentName) - }, - }) - } - return - } - - // 컴포넌트를 내보내지 않는 경우 기본 컴포넌트 추가 제안 - context.report({ - node: program, - messageId: 'componentFileShouldExportComponent', - data: { - targetComponentName, - }, - fix(fixer) { - const hasContent = context.sourceCode.text.trim().length > 0 - const newline = hasContent ? '\n' : '' - return fixer.insertTextAfter( - context.sourceCode.ast, - `${newline}export function ${targetComponentName}(){return <>}`, - ) - }, - }) - }, - } - }, -}) +import { ESLintUtils, TSESTree } from '@typescript-eslint/utils' +import { relative } from 'path' + +function toPascal(str: string) { + return str + .replace(/[-_](.)/g, (_, c: string) => c.toUpperCase()) + .replace(/^[a-z]/, (c) => c.toUpperCase()) +} + +const createRule = ESLintUtils.RuleCreator( + (name) => + `https://github.com/dev-five-git/devup/tree/main/packages/eslint-plugin/src/rules/${name}`, +) + +// Combined regex patterns for better performance (single regex test instead of multiple) +const EXCLUDE_PATTERN = + /[\\/]utils[\\/]|[\\/](__)?tests?(__)?[\\/]|\.(test|css|stories)\.[jt]sx$/ +const INCLUDE_PATTERN = + /(src[/\\])?(app[/\\](?!.*[\\/]?(page|layout|404)\.[jt]sx$)|components[/\\]).*\.[jt]sx$/ +const COMPONENT_NAME_PATTERN = /([^/\\]+)[/\\]([^/\\]+)\.[jt]sx$/i + +export const component = createRule({ + name: 'component', + defaultOptions: [], + meta: { + schema: [], + messages: { + componentNameShouldBeFollowDirectoryStructure: + 'Component name should follow directory or file name.', + componentFileShouldExportComponent: + 'Component file should export a component. (Component name: {targetComponentName})', + }, + type: 'problem', + fixable: 'code', + docs: { + description: 'Require component name to follow directory or file name.', + }, + }, + create(context) { + const filename = relative(context.cwd, context.physicalFilename) + + // Early return: check exclusion first (more likely to match, faster exit) + if (EXCLUDE_PATTERN.test(filename) || !INCLUDE_PATTERN.test(filename)) { + return {} + } + + // Extract component name from file path + const targetComponentRegex = COMPONENT_NAME_PATTERN.exec(filename)! + + const isIndex = targetComponentRegex[2].startsWith('index') + const targetComponentName = isIndex + ? toPascal(targetComponentRegex[1]) + : toPascal(targetComponentRegex[2]) + + const exportFunc: TSESTree.Identifier[] = [] + let ok = false + + return { + ExportDefaultDeclaration() { + ok = true + }, + ExportNamedDeclaration(namedExport) { + if (ok) return + + // Pass check if there are export specifiers in index file + if (namedExport.specifiers.length && isIndex) { + ok = true + return + } + + const declaration = namedExport.declaration + if (!declaration) return + + switch (declaration.type) { + case 'FunctionDeclaration': + if (declaration.id) { + if (declaration.id.name === targetComponentName) { + ok = true + } else { + exportFunc.push(declaration.id) + } + } + break + case 'ClassDeclaration': + if (declaration.id?.name === targetComponentName) { + ok = true + } + break + case 'VariableDeclaration': + for (const el of declaration.declarations) { + if (el.id.type !== 'Identifier') continue + + if (el.id.name === targetComponentName) { + ok = true + return + } + + if ( + el.init?.type === 'ArrowFunctionExpression' || + el.init?.type === 'FunctionExpression' + ) { + exportFunc.push(el.id) + } + } + break + } + }, + 'Program:exit'(program) { + if (ok) return + + // Suggest fix when component name does not match + if (exportFunc.length) { + for (const exported of exportFunc) { + context.report({ + node: exported, + messageId: 'componentNameShouldBeFollowDirectoryStructure', + fix: (fixer) => fixer.replaceText(exported, targetComponentName), + }) + } + return + } + + // Suggest adding default component when no component is exported + context.report({ + node: program, + messageId: 'componentFileShouldExportComponent', + data: { targetComponentName }, + fix: (fixer) => + fixer.insertTextAfter( + context.sourceCode.ast, + context.sourceCode.text.trim().length + ? `\nexport function ${targetComponentName}(){return <>}` + : `export function ${targetComponentName}(){return <>}`, + ), + }) + }, + } + }, +}) diff --git a/tsconfig.json b/tsconfig.json index 4c6e75b..4acc9bf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,26 +1,26 @@ -{ - "compilerOptions": { - "types": ["vite/client", "vitest/importMeta", "vitest/globals"], - "strict": true, - "target": "ESNext", - "declaration": true, - "declarationMap": true, - "removeComments": true, - "sourceMap": true, - "useDefineForClassFields": true, - "allowJs": false, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, - "strictFunctionTypes": true, - "module": "ESNext", - "moduleResolution": "Bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "baseUrl": ".", - "jsx": "react-jsx" - } -} +{ + "compilerOptions": { + "strict": true, + "target": "ESNext", + "declaration": true, + "declarationMap": true, + "removeComments": true, + "sourceMap": true, + "useDefineForClassFields": true, + "allowJs": false, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "strictFunctionTypes": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "emitDeclarationOnly": true, + "outDir": "dist", + "baseUrl": ".", + "jsx": "react-jsx" + } +} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index a1d1f0f..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,63 +0,0 @@ -import dts from 'vite-plugin-dts' -import { defineConfig } from 'vitest/config' - -export default defineConfig({ - test: { - globals: true, - coverage: { - all: true, - thresholds: { - '100': true, - }, - }, - }, - plugins: [ - dts({ - entryRoot: 'src', - staticImport: true, - pathsToAliases: false, - exclude: [ - '**/__tests__/**/*', - '**/*.test.(tsx|ts|js|jsx)', - '**/*.test-d.(tsx|ts|js|jsx)', - 'vite.config.ts', - ], - include: ['**/src/**/*.ts'], - copyDtsFiles: true, - compilerOptions: { - isolatedModules: false, - declaration: true, - }, - }) as any, - ], - build: { - rollupOptions: { - onwarn: (warning) => { - if (warning.code === 'MODULE_LEVEL_DIRECTIVE') { - return - } - }, - external: (source) => { - return !(source.includes('src') || source.startsWith('.')) - }, - - output: { - dir: 'dist', - preserveModules: true, - preserveModulesRoot: 'src', - - exports: 'named', - assetFileNames({ name }) { - return name?.replace(/^src\//g, '') ?? '' - }, - }, - }, - lib: { - formats: ['es', 'cjs'], - entry: { - index: 'src/index.ts', - }, - }, - outDir: 'dist', - }, -})