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 \`\`",
- "selfCloseSlashNeedSpace": "Whitespace is required between \`/\` and \`>\`; 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',
- },
-})