diff --git a/.commitlintrc.cjs b/.commitlintrc.cjs index 450a0353..3000575b 100644 --- a/.commitlintrc.cjs +++ b/.commitlintrc.cjs @@ -2,7 +2,7 @@ module.exports = { extends: ["@commitlint/config-conventional"], parserPreset: { parserOpts: { - headerPattern: /^(\w*)(?:\((.*)\))?!?: (.*)$/, + headerPattern: /^(\w*)(?:\((.*)\))?!?: (.*)$/u, }, }, }; diff --git a/.cspell.json b/.cspell.json deleted file mode 100644 index 5d88e1d8..00000000 --- a/.cspell.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "version": "0.2", - "language": "en", - "ignorePaths": [ - ".github/workflows/**", - "**/*.json", - "**/*.jsonc", - "**/CHANGELOG.md", - "**/dist/**", - "**/node_modules/**", - "pnpm-lock.yaml" - ], - "dictionaries": [ - "en_US", - "filetypes", - "misc", - "node", - "npm", - "softwareTerms", - "typescript" - ], - "import": ["./node_modules/@cspell/dict-cryptocurrencies/cspell-ext.json"], - "ignoreRegExpList": [ - "/[^\\s@]+@([^\\s@]+\\.)+[^\\s@]{2,4}/", - "/\\b[A-Fa-f0-9]{6}\\b/", - "/\\b[A-Za-z0-9]{32,}\\b/", - "// @ts-.*", - "/\\STS\\S+/", - "/`[^`]*`/", - "/``[\\w\\W]*?``/", - "/```[\\w\\W]*?```/", - "/~~~[\\w\\W]*?~~~/", - "\\(#.+?\\)" - ], - "words": [ - "bar", - "baz", - "cjsx", - "corge", - "ctsx", - "foo", - "fred", - "garply", - "grault", - "litecoin", - "mjsx", - "monero", - "mtsx", - "noreply", - "plugh", - "quux", - "qux", - "Rebecca", - "rebeccastevens", - "sonarjs", - "thud", - "waldo", - "xyzzy" - ], - "overrides": [ - { - "filename": "**/*.{ts,js}", - "ignoreRegExpList": ["/@[a-z]+/", "/#(end)?region/"], - "includeRegExpList": [ - "/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/", - "/(\\/\\/[^\\n\\r]*[\\n\\r]+)/" - ] - } - ] -} diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index a218275d..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "root": true, - "env": { - "node": true - }, - "plugins": ["prettier"], - "extends": [ - "@rebeccastevens/eslint-config/modern", - "@rebeccastevens/eslint-config/typescript", - "@rebeccastevens/eslint-config/common-overrides", - "plugin:prettier/recommended", - "prettier" - ], - "parserOptions": { - "project": ["./tsconfig.json"] - }, - "ignorePatterns": ["/dist/"], - "rules": { - "functional/no-throw-statements": "off" - }, - "overrides": [ - { - "files": ["src/**/*.{ts,js}"], - "rules": { - "sonarjs/no-duplicate-string": "off" - } - } - ] -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 969e4451..fdf3aba6 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,3 @@ +issuehunt: RebeccaStevens/eslint-config-rebeccastevens ko_fi: rebeccastevens custom: https://github.com/RebeccaStevens/eslint-config-rebeccastevens/blob/main/DONATIONS.md diff --git a/.github/actions/prepare/action.yml b/.github/actions/prepare/action.yml index 527ad4bc..cb46b1ac 100644 --- a/.github/actions/prepare/action.yml +++ b/.github/actions/prepare/action.yml @@ -5,10 +5,10 @@ inputs: node-version: required: false description: "`node-version` passed to `actions/setup-node`." - default: v20 + default: "20" runs: - using: "composite" + using: composite steps: - name: Configure Git run: | @@ -16,9 +16,9 @@ runs: git config --global user.name ${GITHUB_ACTOR} shell: bash - uses: pnpm/action-setup@v2 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: ${{ inputs.node-version }} - cache: "pnpm" + cache: pnpm - run: pnpm install --frozen-lockfile --ignore-scripts shell: bash diff --git a/.github/codecov.yml b/.github/codecov.yml new file mode 100644 index 00000000..bfdc9877 --- /dev/null +++ b/.github/codecov.yml @@ -0,0 +1,8 @@ +coverage: + status: + project: + default: + informational: true + patch: + default: + informational: true diff --git a/.github/labels.yml b/.github/labels.yml index f2090a35..f4789c5d 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,7 +1,7 @@ # Priority labels - name: "Priority: Critical" color: ee0701 - description: "This should be dealt with ASAP. Not fixing this issue would be a serious error." + description: This should be dealt with ASAP. Not fixing this issue would be a serious error. - name: "Priority: High" color: b60205 description: "After critical issues are fixed, these should be dealt with before any further issues." @@ -15,10 +15,10 @@ # Type labels - name: "Type: Bug" color: ee0701 - description: "Inconsistencies or issues which will cause a problem for users or implementors." + description: Inconsistencies or issues which will cause a problem for users or implementors. - name: "Type: Documentation" color: 0052cc - description: "Solely about the documentation of the project." + description: Solely about the documentation of the project. - name: "Type: Enhancement" color: 1d76db description: "Enhancement of the code, not introducing new features." @@ -27,61 +27,61 @@ description: "Marks an idea, which might be accepted and implemented." - name: "Type: Feature" color: 0e8a16 - description: "New features or options." + description: New features or options. - name: "Type: Maintenance" color: 2af79e description: "Generic maintenance tasks, e.g., package updates." # Additional markers -- name: "Security" +- name: Security color: ee0701 - description: "Marks an security issues that needs to be resolved asap." -- name: "Accepted" + description: Marks an security issues that needs to be resolved asap. +- name: Accepted color: c2e0c6 - description: "This issue or PR has been accepted." -- name: "Declined" + description: This issue or PR has been accepted. +- name: Declined color: f9d0c4 - description: "This issue or PR has been declined." -- name: "Breaking Change" + description: This issue or PR has been declined. +- name: Breaking Change color: a80016 - description: "This change will require a new major release." -- name: "Feature Removal" + description: This change will require a new major release. +- name: Feature Removal color: a80016 - description: "A feature is no longer wanted/needed (remove/deprecate it)" + description: A feature is no longer wanted/needed (remove/deprecate it) # Ongoing Status labels - name: "Status: Triage" color: fbca04 - description: "This issue needs to be triaged." + description: This issue needs to be triaged. - name: "Status: Investigation Needed" color: fef2c0 - description: "Issue need to be investigated further." + description: Issue need to be investigated further. - name: "Status: On Hold" color: cccccc - description: "Issue or PR that has been placed on hold for now." + description: Issue or PR that has been placed on hold for now. - name: "Status: In Progress" color: fbca04 - description: "Issue is currently being resolved by a developer." + description: Issue is currently being resolved by a developer. - name: "Status: Stale" color: fef2c0 - description: "There has not been activity on this issue or PR for quite some time." + description: There has not been activity on this issue or PR for quite some time. - name: "Status: Awaiting Response" color: fef2c0 - description: "Issue or PR awaits response from the creator." + description: Issue or PR awaits response from the creator. - name: "Status: Awaiting Feedback" color: fef2c0 - description: "Issue or PR awaits feedback from the community." + description: Issue or PR awaits feedback from the community. - name: "Status: Blocked" color: fef2c0 - description: "Progress on this issue is currently not possible." + description: Progress on this issue is currently not possible. # Resolution Status labels - name: "Resolution: By Design" color: e6e6e6 - description: "The behavior reported in the issue is actually correct." + description: The behavior reported in the issue is actually correct. - name: "Resolution: Duplicate" color: e6e6e6 - description: "This issue or pull request already exists" + description: This issue or pull request already exists - name: "Resolution: External" color: e6e6e6 description: "It was a real bug, but not in the code in this repo." @@ -90,24 +90,27 @@ description: "" - name: "Resolution: Not Applicable" color: e6e6e6 - description: "The issue is not relevant to code in this repo and is not an external issue. (Out of scope)" + description: The issue is not relevant to code in this repo and is not an external issue. (Out of scope) - name: "Resolution: Not Reproducible" color: e6e6e6 - description: "The bug could not be reproduced." + description: The bug could not be reproduced. - name: "Resolution: Won't Fix" color: e6e6e6 description: "A real bug or issue, but the issue is not impactful enough to spend time on." - name: "Resolution: Fixed" color: c2e0c6 - description: "The issue has been fixed." + description: The issue has been fixed. - name: "Resolution: Added" color: c2e0c6 - description: "This has been added to the project." + description: This has been added to the project. # Bots - name: ":blue_heart:" color: ffffff - description: "Renovate" + description: Renovate - name: "Status: Released" color: c2e0c6 description: "It's now live." +- name: "Status: Beta Released" + color: fef2c0 + description: "It's now live." diff --git a/.github/renovate.json b/.github/renovate.json index 49425584..0b8e452b 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,54 +1,60 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "automergeStrategy": "rebase", "extends": [ - ":ignoreModulesAndTests", - "group:monorepos", - "group:recommended", ":automergeAll", ":automergePr", - ":semanticCommits", - ":prHourlyLimitNone", + ":ignoreModulesAndTests", ":prConcurrentLimitNone", + ":prHourlyLimitNone", + ":semanticCommits", + "group:allNonMajor", + "group:monorepos", + "group:recommended", "helpers:disableTypesNodeMajor", - "workarounds:typesNodeVersioning", - "schedule:weekly" + "replacements:all", + "schedule:monthly", + "workarounds:all" ], "labels": ["Type: Maintenance", ":blue_heart:"], - "automergeStrategy": "rebase", - "postUpdateOptions": ["pnpmDedupe"], "packageRules": [ { - "matchManagers": ["npm"], + "major": { + "semanticCommitType": "build" + }, "matchDepTypes": ["dependencies"], + "matchManagers": ["npm"], "rangeStrategy": "update-lockfile", - "semanticCommitType": "chore", "semanticCommitScope": "deps", - "major": { - "semanticCommitType": "build" - } + "semanticCommitType": "chore" }, { - "matchManagers": ["npm"], "matchDepTypes": ["devDependencies"], + "matchManagers": ["npm"], "rangeStrategy": "pin", - "semanticCommitType": "chore", - "semanticCommitScope": "dev-deps" + "semanticCommitScope": "dev-deps", + "semanticCommitType": "chore" }, { - "matchManagers": ["npm"], + "major": { + "semanticCommitType": "build" + }, "matchDepTypes": ["peerDependencies"], + "matchManagers": ["npm"], "rangeStrategy": "widen", - "semanticCommitType": "chore", "semanticCommitScope": "peer-deps", - "major": { - "semanticCommitType": "build" - } + "semanticCommitType": "chore" }, { "matchManagers": ["github-actions"], "rangeStrategy": "replace", - "semanticCommitType": "ci", - "semanticCommitScope": "dev-deps" + "semanticCommitScope": "dev-deps", + "semanticCommitType": "ci" + }, + { + "allowedVersions": "<5.5", + "matchPackageNames": ["typescript"] } - ] + ], + "postUpdateOptions": ["pnpmDedupe"] } diff --git a/.github/workflows/accessibility-alt-text-bot.yml b/.github/workflows/accessibility-alt-text-bot.yml new file mode 100644 index 00000000..7db3761d --- /dev/null +++ b/.github/workflows/accessibility-alt-text-bot.yml @@ -0,0 +1,26 @@ +name: Accessibility Alt Text Bot + +on: + issue_comment: + types: + - created + - edited + issues: + types: + - edited + - opened + pull_request: + types: + - edited + - opened + +permissions: + issues: write + pull-requests: write + +jobs: + accessibility_alt_text_bot: + if: ${{ !endsWith(github.actor, '[bot]') }} + runs-on: ubuntu-latest + steps: + - uses: github/accessibility-alt-text-bot@v1.4.0 diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index d699ad38..d670bbf5 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -9,6 +9,6 @@ jobs: build_node: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - run: pnpm run build:node diff --git a/.github/workflows/done-label.yml b/.github/workflows/done-label.yml index be14dc73..4471bc63 100644 --- a/.github/workflows/done-label.yml +++ b/.github/workflows/done-label.yml @@ -7,7 +7,7 @@ on: jobs: run: - name: "Update Labels" + name: Update Labels runs-on: ubuntu-latest steps: - uses: RebeccaStevens/issue-closed-labeler-action@v1 diff --git a/.github/workflows/build.yml b/.github/workflows/lint-eslint.yml similarity index 51% rename from .github/workflows/build.yml rename to .github/workflows/lint-eslint.yml index 088a302a..4720a82e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/lint-eslint.yml @@ -1,4 +1,4 @@ -name: Build +name: Lint with ESLint on: pull_request: @@ -6,9 +6,10 @@ on: workflow_call: jobs: - build: + lint_eslint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - - run: pnpm run build + - run: pnpm run typegen + - run: pnpm run lint:eslint diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml deleted file mode 100644 index 430f9cfb..00000000 --- a/.github/workflows/lint-js.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Lint Code - -on: - pull_request: - workflow_dispatch: - workflow_call: - -jobs: - lint_js: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: ./.github/actions/prepare - - run: pnpm run lint:js diff --git a/.github/workflows/lint-knip-dev.yml b/.github/workflows/lint-knip-dev.yml index de4bc1c3..db28ccb6 100644 --- a/.github/workflows/lint-knip-dev.yml +++ b/.github/workflows/lint-knip-dev.yml @@ -9,6 +9,7 @@ jobs: lint_knip_dev: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare + - run: pnpm run typegen - run: pnpm run lint:knip:development diff --git a/.github/workflows/lint-knip-prod.yml b/.github/workflows/lint-knip-prod.yml index 70c86902..5b4c1e1d 100644 --- a/.github/workflows/lint-knip-prod.yml +++ b/.github/workflows/lint-knip-prod.yml @@ -9,6 +9,7 @@ jobs: lint_knip_prod: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare + - run: pnpm run typegen - run: pnpm run lint:knip:production diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index 278f375b..cfbd02ab 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -9,6 +9,6 @@ jobs: lint_markdown: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - run: pnpm run lint:md diff --git a/.github/workflows/lint-prettier.yml b/.github/workflows/lint-packages.yml similarity index 57% rename from .github/workflows/lint-prettier.yml rename to .github/workflows/lint-packages.yml index c666f1e1..9a21e8f1 100644 --- a/.github/workflows/lint-prettier.yml +++ b/.github/workflows/lint-packages.yml @@ -1,4 +1,4 @@ -name: Prettier +name: Lint Packages on: pull_request: @@ -6,9 +6,9 @@ on: workflow_call: jobs: - lint_prettier: + lint_packages: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - - run: pnpm run lint:prettier + - run: pnpm run lint:packages diff --git a/.github/workflows/lint-spelling.yml b/.github/workflows/lint-spelling.yml index e877d46d..d54881b9 100644 --- a/.github/workflows/lint-spelling.yml +++ b/.github/workflows/lint-spelling.yml @@ -9,6 +9,6 @@ jobs: lint_spelling: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - run: pnpm run lint:spelling diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 59f7147c..c3302518 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - next permissions: contents: write @@ -15,30 +16,33 @@ concurrency: cancel-in-progress: false jobs: - lint_js: - uses: ./.github/workflows/lint-js.yml + lint_eslint: + uses: ./.github/workflows/lint-eslint.yml + lint_knip_dev: + uses: ./.github/workflows/lint-knip-dev.yml lint_knip_prod: uses: ./.github/workflows/lint-knip-prod.yml lint_markdown: uses: ./.github/workflows/lint-markdown.yml + lint_packages: + uses: ./.github/workflows/lint-packages.yml lint_spelling: uses: ./.github/workflows/lint-spelling.yml - lint_prettier: - uses: ./.github/workflows/lint-prettier.yml type_check: - uses: ./.github/workflows/type-check.yml + uses: ./.github/workflows/typecheck.yml release: needs: - - lint_js + - lint_eslint + - lint_knip_dev - lint_knip_prod - lint_markdown + - lint_packages - lint_spelling - - lint_prettier - type_check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index ba4e89a8..a4229ee8 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -1,4 +1,4 @@ -name: "Semantic PR" +name: Semantic PR on: pull_request_target: @@ -12,6 +12,6 @@ jobs: name: Validate PR title runs-on: ubuntu-latest steps: - - uses: amannn/action-semantic-pull-request@v5.2.0 + - uses: amannn/action-semantic-pull-request@v5.4.0 env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index de1b6569..cdb1fd08 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,4 +1,4 @@ -name: "Close stale issues and PRs" +name: Close stale issues and PRs on: schedule: @@ -9,7 +9,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: days-before-issue-stale: 60 days-before-issue-close: 7 @@ -22,6 +22,6 @@ jobs: stale-issue-label: "Status: Stale" stale-pr-label: "Status: Stale" - stale-issue-message: "This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days." - close-issue-message: "This issue was closed because it has been stalled for 7 days with no activity." - stale-pr-message: "This PR is stale because it has been open 60 days with no activity." + stale-issue-message: This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days. + close-issue-message: This issue was closed because it has been stalled for 7 days with no activity. + stale-pr-message: This PR is stale because it has been open 60 days with no activity. diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 2d312b98..4ac0ddab 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -8,17 +8,12 @@ on: - .github/labels.yml workflow_dispatch: -permissions: - pull-requests: write - jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: micnncim/action-label-syncer@v1 - with: - manifest: .github/labels.yml env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/type-check.yml b/.github/workflows/typecheck.yml similarity index 66% rename from .github/workflows/type-check.yml rename to .github/workflows/typecheck.yml index d6cba21c..30d59ee3 100644 --- a/.github/workflows/type-check.yml +++ b/.github/workflows/typecheck.yml @@ -6,9 +6,9 @@ on: workflow_call: jobs: - type-check: + typecheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/prepare - - run: pnpm run type-check + - run: pnpm run typecheck diff --git a/.gitignore b/.gitignore index 01f09d67..42d4ef6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules/ +/coverage/ /dist/ -/.eslintrc.preview.json +/src/typegen.ts *.log diff --git a/.husky/commit-msg b/.husky/commit-msg index 61681a81..6a2e4c84 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - pnpm exec commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit index 5e592735..5ee7abd8 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - pnpm exec lint-staged diff --git a/.lintstagedrc.yml b/.lintstagedrc.yml index a024f998..f9179f6f 100644 --- a/.lintstagedrc.yml +++ b/.lintstagedrc.yml @@ -1,12 +1,16 @@ "*.{json,yml}": - - prettier --ignore-unknown --write + - eslint --fix + - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot "*.ts": - - prettier --ignore-unknown --write - eslint --fix - - cspell + - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot + - tsc-files -p tsconfig.build.json --noEmit "*.md": - - prettier --ignore-unknown --write + - eslint --fix - markdownlint --config=.markdownlint.json --ignore-path=.markdownlintignore - - cspell + - cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot + +pnpm-lock.yaml: + - "pnpm dedupe && :" diff --git a/.markdownlint.json b/.markdownlint.json index bfaa9566..8a5e4656 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,102 +1,297 @@ { "default": false, + "extends": "markdownlint/style/prettier", - // MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time + // MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md001.md "MD001": true, - // MD003/heading-style/header-style - Heading style - "MD003": { "style": "atx" }, - // MD004/ul-style - Unordered list style - "MD004": { "style": "dash" }, - // MD005/list-indent - Inconsistent indentation for list items at the same level + + // MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md003.md + "MD003": { + // Heading style + "style": "atx" + }, + + // MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md004.md + "MD004": { + // List style + "style": "dash" + }, + + // MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md005.md "MD005": true, - // MD007/ul-indent - Unordered list indentation - "MD007": true, - // MD009/no-trailing-spaces - Trailing spaces - "MD009": true, - // MD010/no-hard-tabs - Hard tabs - "MD010": true, - // MD011/no-reversed-links - Reversed link syntax + + // MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md007.md + "MD007": { + // Spaces for indent + "indent": 2, + // Whether to indent the first level of the list + "start_indented": false, + // Spaces for first level indent (when start_indented is set) + "start_indent": 2 + }, + + // MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md009.md + "MD009": { + // Spaces for line break - 0 to disable + "br_spaces": 0, + // Allow spaces for empty lines in list items + "list_item_empty_lines": false, + // Include unnecessary breaks + "strict": false + }, + + // MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md010.md + "MD010": { + // Include code blocks + "code_blocks": true, + // Fenced code languages to ignore + "ignore_code_languages": [], + // Number of spaces for each hard tab + "spaces_per_tab": 2 + }, + + // MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md011.md "MD011": true, - // MD012/no-multiple-blanks - Multiple consecutive blank lines - "MD012": true, - // MD013/line-length - Line length - "MD013": { "line_length": 99999 }, // no line length - // MD014/commands-show-output - Dollar signs used before commands without showing output - "MD014": false, - // MD018/no-missing-space-atx - No space after hash on atx style heading + + // MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md012.md + "MD012": { + // Consecutive blank lines + "maximum": 1 + }, + + // MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md013.md + "MD013": { + // Number of characters + "line_length": 160, + // Number of characters for headings + "heading_line_length": 160, + // Number of characters for code blocks + "code_block_line_length": 120, + // Include code blocks + "code_blocks": true, + // Include tables + "tables": false, + // Include headings + "headings": true, + // Strict length checking + "strict": false, + // Stern length checking + "stern": false + }, + + // MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md014.md + // "MD014": true, + + // MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md018.md "MD018": true, - // MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading + + // MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md019.md "MD019": true, - // MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading - // "MD020": false, - // MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading - // "MD021": true, - // MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines - "MD022": true, - // MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line + + // MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md020.md + "MD020": true, + + // MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md021.md + "MD021": true, + + // MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md022.md + "MD022": { + // Blank lines above heading + "lines_above": 1, + // Blank lines below heading + "lines_below": 1 + }, + + // MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md023.md "MD023": true, - // MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content - "MD024": { "siblings_only": true }, - // MD025/single-title/single-h1 - Multiple top level headings in the same document - "MD025": false, - // MD026/no-trailing-punctuation - Trailing punctuation in heading - "MD026": true, - // MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol + + // MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md024.md + "MD024": { + // Only check sibling headings + "siblings_only": true + }, + + // MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md025.md + "MD025": { + // Heading level + "level": 1, + // RegExp for matching title in front matter + "front_matter_title": "^\\s*title\\s*[:=]" + }, + + // MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md026.md + "MD026": { + // Punctuation characters + "punctuation": ".,;:!。,;:!" + }, + + // MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md027.md "MD027": true, - // MD028/no-blanks-blockquote - Blank line inside blockquote + + // MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md028.md "MD028": true, - // MD029/ol-prefix - Ordered list item prefix - "MD029": true, - // MD030/list-marker-space - Spaces after list markers - "MD030": true, - // MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines - "MD031": true, - // MD032/blanks-around-lists - Lists should be surrounded by blank lines + + // MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md029.md + "MD029": { + // List style + "style": "one_or_ordered" + }, + + // MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md030.md + "MD030": { + // Spaces for single-line unordered list items + "ul_single": 1, + // Spaces for single-line ordered list items + "ol_single": 1, + // Spaces for multi-line unordered list items + "ul_multi": 1, + // Spaces for multi-line ordered list items + "ol_multi": 1 + }, + + // MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md031.md + "MD031": { + // Include list items + "list_items": true + }, + + // MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md032.md "MD032": true, - // MD033/no-inline-html - Inline HTML - "MD033": { - "allowed_elements": [ - "br", - "div", - "img", - "sub", - "sup", - "span", - "details", - "summary" - ] - }, - // MD034/no-bare-urls - Bare URL used + + // MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md033.md + // "MD033": { + // // Allowed elements + // "allowed_elements": ["details", "summary", "sub", "sup", "img"] + // }, + + // MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md034.md "MD034": true, - // MD035/hr-style - Horizontal rule style - "MD035": { "style": "---" }, - // MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading - "MD036": true, - // MD037/no-space-in-emphasis - Spaces inside emphasis markers + + // MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md035.md + "MD035": { + // Horizontal rule style + "style": "---" + }, + + // MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md036.md + "MD036": { + // Punctuation characters + "punctuation": ".,;:!?。,;:!?" + }, + + // MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md037.md "MD037": true, - // MD038/no-space-in-code - Spaces inside code span elements + + // MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md038.md "MD038": true, - // MD039/no-space-in-links - Spaces inside link text + + // MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md039.md "MD039": true, - // MD040/fenced-code-language - Fenced code blocks should have a language specified - "MD040": true, - // MD041/first-line-heading/first-line-h1 - First line in file should be a top level heading - "MD041": false, - // MD042/no-empty-links - No empty links + + // MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md040.md + "MD040": { + // List of languages + "allowed_languages": [], + // Require language only + "language_only": false + }, + + // MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md041.md + // "MD041": { + // // Heading level + // "level": 1, + // // RegExp for matching title in front matter + // "front_matter_title": "^\\s*title\\s*[:=]" + // }, + + // MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md042.md "MD042": true, - // MD043/required-headings/required-headers - Required heading structure - "MD043": false, - // MD044/proper-names - Proper names should have the correct capitalization + + // MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md043.md + // "MD043": { + // // List of headings + // "headings": [], + // // Match case of headings + // "match_case": false + // }, + + // MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md044.md // "MD044": { - // "names": ["JavaScript", "TypeScript"], - // "code_blocks": false + // // List of proper names + // "names": [], + // // Include code blocks + // "code_blocks": true, + // // Include HTML elements + // "html_elements": true // }, - // MD045/no-alt-text - Images should have alternate text (alt text) + + // MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md045.md "MD045": true, - // MD046/code-block-style - Code block style - "MD046": { "style": "fenced" }, - // MD047/single-trailing-newline - Files should end with a single newline character + + // MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md046.md + "MD046": { + // Block style + "style": "fenced" + }, + + // MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md047.md "MD047": true, - // MD048/code-fence-style - Code fence style - "MD048": { "style": "backtick" } + + // MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md048.md + "MD048": { + // Code fence style + "style": "backtick" + }, + + // MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md049.md + "MD049": { + // Emphasis style + "style": "underscore" + }, + + // MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md050.md + "MD050": { + // Strong style + "style": "asterisk" + }, + + // MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md051.md + "MD051": true, + + // MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md052.md + "MD052": { + // Include shortcut syntax + "shortcut_syntax": false + }, + + // MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md053.md + "MD053": { + // Ignored definitions + "ignored_definitions": ["//"] + }, + + // MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md054.md + "MD054": { + // Allow autolinks + "autolink": true, + // Allow inline links and images + "inline": true, + // Allow full reference links and images + "full": true, + // Allow collapsed reference links and images + "collapsed": true, + // Allow shortcut reference links and images + "shortcut": true, + // Allow URLs as inline links + "url_inline": true + }, + + // MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md055.md + "MD055": { + // Table pipe style + "style": "leading_and_trailing" + }, + + // MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md056.md + "MD056": true } diff --git a/.markdownlintignore b/.markdownlintignore index e7becf85..06a1096d 100644 --- a/.markdownlintignore +++ b/.markdownlintignore @@ -1,2 +1,3 @@ -node_modules +dist/ +node_modules/ CHANGELOG.md diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..7c245e15 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +save-prefix="" +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/.nvmrc b/.nvmrc index 6d80269a..2dbbe00e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.16.0 +20.11.1 diff --git a/.prettierignore b/.prettierignore index d5e15442..51733ec2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,4 @@ -/CHANGELOG.md +/coverage*/ /dist/ -/.eslintrc.preview.json +/CHANGELOG.md /pnpm-lock.yaml diff --git a/.prettierrc.yml b/.prettierrc.yml index 01d3a913..6ff2e4e3 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -1,7 +1,14 @@ -"$schema": http://json.schemastore.org/prettierrc +$schema: http://json.schemastore.org/prettierrc plugins: - prettier-plugin-packagejson -embeddedLanguageFormatting: "off" -quoteProps: "consistent" +trailingComma: all + +overrides: + - files: "*.md" + options: + embeddedLanguageFormatting: off + - files: .nvmrc + options: + parser: yaml diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 17fab0c0..876c534b 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,7 +1,9 @@ { "recommendations": [ + "DavidAnson.vscode-markdownlint", "dbaeumer.vscode-eslint", "editorconfig.editorconfig", - "esbenp.prettier-vscode" + "esbenp.prettier-vscode", + "streetsidesoftware.code-spell-checker" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index e222e074..b362ce4b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,26 +1,40 @@ { + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": false, + "editor.rulers": [80], + "eslint.probe": [ + "html", + "javascript", + "javascriptreact", + "json", + "jsonc", + "markdown", + "toml", + "typescript", + "typescriptreact", + "vue", + "yaml" + ], + "files.associations": { + ".markdownlint.json": "jsonc", + ".markdownlintignore": "ignore" + }, + "files.exclude": { + "coverage/": true + }, "files.trimTrailingWhitespace": true, "search.exclude": { "**/.git/": true, + ".nyc_output/": true, ".vscode/": true, "dist/": true, "pnpm-lock.yaml": true }, "typescript.tsdk": "./node_modules/typescript/lib", - "files.associations": { - ".markdownlint.json": "jsonc", - ".markdownlintignore": "ignore" - }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true - }, - "[jsonc]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true + "[markdown]": { + "editor.rulers": [120] } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f27e67f..be329ae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,805 +1,1042 @@ # Changelog All notable changes to this project will be documented in this file. Dates are displayed in UTC. -## [2.0.11](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.10...v2.0.11) (2024-03-25) +# [3.0.0-next.49](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.48...v3.0.0-next.49) (2024-08-05) -### Bug Fixes +### Features -* update some rules ([5c9a858](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5c9a858f8ec6fc839a685ddd96632ba7b61ec7e7)) +* more tweaks ([3259394](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/32593945021696a0085a877402f17610179c0afc)) -## [2.0.10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.9...v2.0.10) (2024-01-27) +# [3.0.0-next.48](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.47...v3.0.0-next.48) (2024-08-03) + + +### Features + +* more tweaks ([c31a4be](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c31a4be94d443562a6913ca6226e03fe4549a661)) +* more tweaks ([b6e0b14](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b6e0b14bb1a43dd87e7ea0c685bd59b2cb33610b)) + +# [3.0.0-next.47](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.46...v3.0.0-next.47) (2024-08-01) + + +### Features + +* more tweaks ([b3df5f8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b3df5f8cfc61b621721a07c694c785ba85eec755)) + +# [3.0.0-next.46](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.45...v3.0.0-next.46) (2024-07-29) + + +### Features + +* more tweaks ([77897e2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/77897e281eb2165d5469d87bff782a82937c5e57)) + +# [3.0.0-next.45](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.44...v3.0.0-next.45) (2024-07-29) + + +### Features + +* more tweaks ([2b2e26d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2b2e26dc1f10652e310030cce9ba85182416e4f5)) + +# [3.0.0-next.44](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.43...v3.0.0-next.44) (2024-07-29) + + +### Features + +* more tweaks ([5ba4886](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5ba4886bb488f8f097ac764773a4e819ce6c1e33)) + +# [3.0.0-next.43](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.42...v3.0.0-next.43) (2024-07-11) + + +### Features + +* more tweaks ([0acd33c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0acd33c2f69ea1b53f440f5263ba8c604ac124e1)) + +# [3.0.0-next.42](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.41...v3.0.0-next.42) (2024-07-06) + + +### Features + +* more tweaks ([1425346](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/14253464d72e466c7a023e2b60bd2f346b325869)) + +# [3.0.0-next.41](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.40...v3.0.0-next.41) (2024-07-01) + + +### Features + +* more tweaks ([3c950b5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3c950b590e75472b8b4fbcee5f81c9e6dd12375f)) + +# [3.0.0-next.40](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.39...v3.0.0-next.40) (2024-06-30) + + +### Features + +* more tweaks ([4496639](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/449663982b641dc3f924fbf94f102f672f2432e9)) + +# [3.0.0-next.39](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.38...v3.0.0-next.39) (2024-06-24) + + +### Features + +* more tweaks ([ad39829](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ad3982979294d5051921d64dfe144eeca8aeac43)) +* more tweaks ([6830465](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6830465b5c876b7f6c514937151f83a1fbfb869a)) +* more tweaks ([0f06ca4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0f06ca45ee25f2dbac6ab9342e85628b2bb09255)) + +# [3.0.0-next.38](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.37...v3.0.0-next.38) (2024-06-19) + + +### Features + +* more tweaks ([6e03da4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6e03da4b5f72ca4cb12eea32595b7efd1f32ca0e)) + +# [3.0.0-next.37](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.36...v3.0.0-next.37) (2024-06-10) + + +### Features + +* more tweaks ([81678c8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/81678c8179561ee902698fd33c79eef244367941)) + +# [3.0.0-next.36](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.35...v3.0.0-next.36) (2024-06-10) + + +### Features + +* more tweaks ([ea4e0b1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ea4e0b13da7694cd52c6e0225579ce4efd767c08)) + +# [3.0.0-next.35](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.34...v3.0.0-next.35) (2024-06-10) + + +### Features + +* more tweaks ([e0db461](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e0db4615c861842dfd62750d4d0ebc730024132a)) + +# [3.0.0-next.34](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.33...v3.0.0-next.34) (2024-06-09) + + +### Features + +* more tweaks ([40b3b6d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/40b3b6df83cabce0e46bd6a3020b184801b07e66)) + +# [3.0.0-next.33](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.32...v3.0.0-next.33) (2024-06-09) + + +### Features + +* more tweaks ([7625895](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/762589547b13ab92346a0097373726502d429346)) + +# [3.0.0-next.32](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.31...v3.0.0-next.32) (2024-05-25) + + +### Features + +* more tweaks ([4c8b3fb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4c8b3fbb9da1695a6e2a83b2a8dc839f10e166b5)) + +# [3.0.0-next.31](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.30...v3.0.0-next.31) (2024-05-25) + + +### Features + +* more tweaks ([97e4b3e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/97e4b3e153e55cd3aa46bc35515cdb4cf85edf9e)) + +# [3.0.0-next.30](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.29...v3.0.0-next.30) (2024-05-25) + + +### Features + +* more tweaks ([1e20498](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1e20498f7e66c70cdc2957a07dde813c6a144e92)) + +# [3.0.0-next.29](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.28...v3.0.0-next.29) (2024-05-22) + + +### Features + +* more tweaks ([6533c65](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6533c6544a2fbcbaaf40203aafa45cd1a22f65a6)) + +# [3.0.0-next.28](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.27...v3.0.0-next.28) (2024-05-22) + + +### Features + +* more tweaks ([40ec3a1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/40ec3a15ccb3dd333fec060915ced54b9f2ab56e)) + +# [3.0.0-next.27](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.26...v3.0.0-next.27) (2024-05-19) + + +### Features + +* more tweaks ([8c018ca](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8c018ca0abb2ecb7e0e70a60e5004a0f4f29a3fe)) + +# [3.0.0-next.26](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.25...v3.0.0-next.26) (2024-05-19) + + +### Features + +* more tweaks ([ddec399](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ddec399e59a2f91b84833c6ad33521092b93729b)) + +# [3.0.0-next.25](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.24...v3.0.0-next.25) (2024-05-19) + + +### Features + +* more tweaks ([ba947b2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ba947b2cdca219252c6d9cf11f3a84f995fff02f)) + +# [3.0.0-next.24](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.23...v3.0.0-next.24) (2024-05-10) + + +### Features + +* more tweaks ([a747edc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a747edc348cec763639343276e11b492b3512959)) + +# [3.0.0-next.23](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.22...v3.0.0-next.23) (2024-05-10) + + +### Features + +* more tweaks ([aef8978](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/aef89782b7cfe395a816c5a6b6b9caab46accffa)) + +# [3.0.0-next.22](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.21...v3.0.0-next.22) (2024-05-06) + + +### Features + +* more tweaks ([c07191c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c07191cc9e626bbf9ede75b5f8f8839e99bf73c9)) + +# [3.0.0-next.21](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.20...v3.0.0-next.21) (2024-05-06) + + +### Features + +* more tweaks ([c4a2286](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c4a22865d175ee74ae52477f8d91255c85910322)) + +# [3.0.0-next.20](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.19...v3.0.0-next.20) (2024-05-06) + + +### Features + +* more tweaks ([0413e9d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0413e9dddbe1def99e4aa7ccf9f7b876937c89e9)) + +# Changelog + +All notable changes to this project will be documented in this file. Dates are displayed in UTC. + +# [3.0.0-next.19](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.18...v3.0.0-next.19) (2024-05-06) + + +### Features + +* more tweaks ([65287e6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/65287e6449a3fabfb0765530ea053747a36b3fc4)) + +# [3.0.0-next.18](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.17...v3.0.0-next.18) (2024-05-06) + +### Features + +- more tweaks ([4edbf3b](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4edbf3b5b80c3bf1dd766ea74652965ec980e331)) + +# [3.0.0-next.17](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.16...v3.0.0-next.17) (2024-05-03) + +### Features + +- more tweaks ([95c76dd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/95c76dd741ff7db1bddf4519205b4e2f6ef1055f)) + +# [3.0.0-next.16](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.15...v3.0.0-next.16) (2024-04-22) + +### Features + +- more tweaks ([2567a85](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2567a856c07e1d7c24b97b82eb45579a7597bacb)) + +# [3.0.0-next.15](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.14...v3.0.0-next.15) (2024-04-22) + +### Features + +- more tweaks ([4c1ef54](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4c1ef54a73ff73790fdff9b9d783b64482d77656)) + +# [3.0.0-next.14](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.13...v3.0.0-next.14) (2024-04-22) + +### Features + +- more tweaks ([a0a27fe](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a0a27fee014d5edd3f1fd60aa6938139ab7f6766)) + +# [3.0.0-next.13](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.12...v3.0.0-next.13) (2024-04-22) + +### Features + +- more tweaks ([c3906bb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c3906bbd35b73ba131ab6c3aac661bee7c2407bd)) + +# [3.0.0-next.12](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.11...v3.0.0-next.12) (2024-04-22) + +### Features + +- more tweaks ([74a8879](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/74a88793abacf7e1ca6e2502a062cf127ac53a3e)) + +# [3.0.0-next.11](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.10...v3.0.0-next.11) (2024-04-22) + +### Features + +- more tweaks ([d765f8a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d765f8a4d695978bdd52c7751bd728fce8d53b69)) + +# [3.0.0-next.10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.9...v3.0.0-next.10) (2024-04-21) + +### Features + +- more tweaks ([2d5402c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2d5402c6620f4a6a241af3180f28bf262fac8d21)) + +# [3.0.0-next.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.8...v3.0.0-next.9) (2024-04-21) + +### Features + +- more tweaks ([00a11c7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/00a11c73d37bcbfefaa4a6a1e11820233e13399c)) +# [3.0.0-next.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.7...v3.0.0-next.8) (2024-04-21) + +### Features + +- more tweaks ([6dc7c91](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6dc7c91a36807619fec3d1e5e5b1c8a910be5fb9)) + +# [3.0.0-next.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.6...v3.0.0-next.7) (2024-04-21) + +### Features + +- more tweaks ([b94dd92](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b94dd922ec4670fa4a7a7a4dac9952e969fac17f)) + +# [3.0.0-next.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.5...v3.0.0-next.6) (2024-04-18) ### Bug Fixes -* allow using labels for loops and switches ([f2cd334](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f2cd33408ddb55d5734ec4da2a38c28da91c5452)) +- more tweaks ([14d0426](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/14d04262fa0facdfedd9e6b2a21cceb672a1c88a)) -## [2.0.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.8...v2.0.9) (2024-01-05) +### Features + +- more tweaks ([db9e05c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/db9e05c2620891158811a6595112287d68966006)) +# [3.0.0-next.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.4...v3.0.0-next.5) (2024-04-17) ### Bug Fixes -* use string regex ([22e2aa7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/22e2aa7c819ed23fc416ff1d2447e7936c3671d3)) +- deps update ([b51004a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b51004a980b8ba9f2b1f511a23bddfcbddba5e6c)) -## [2.0.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.7...v2.0.8) (2024-01-05) +# [3.0.0-next.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.3...v3.0.0-next.4) (2024-04-16) + +### Bug Fixes +- more tweaks ([e1071eb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e1071eba5faa1fd99169eb72aec585c7e64d2f4e)) + +# [3.0.0-next.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.2...v3.0.0-next.3) (2024-04-16) ### Bug Fixes -* ignore md files for filename-case ([54d651c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/54d651c7ccd5c99dfa03f69693d59d6d8e23424b)) +- more tweaks ([8eea9af](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8eea9afc137d89f057a5e28086d2d2c7f5ae6808)) -## [2.0.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.6...v2.0.7) (2024-01-04) +# [3.0.0-next.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v3.0.0-next.1...v3.0.0-next.2) (2024-04-15) +### Bug Fixes + +- npm releases ([91b8348](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/91b8348e727d92cf85445fbe1d9ebc4d2b1c3a3f)) + +# [3.0.0-next.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.11...v3.0.0-next.1) (2024-04-15) ### Bug Fixes -* update import/no-extraneous-dependencies ([2e2ef01](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2e2ef01550957a6fb914d434ed1dc5d6fe7d8fd9)) +- build cjs and adjust rules some more ([72b9a18](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/72b9a186305e5c00b30c011558ccb51669736e13)) +- cleanup ([0fae3db](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0fae3dbcc62785001b59800071e29f8b00b5ac3b)) -## [2.0.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.5...v2.0.6) (2023-10-05) +### Features + +- migrate to eslint 9 and add more plugins ([6f02ef8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6f02ef83f11380bf84bc51e8d2f07e37833ed8c0)) +- more adjustments ([ba379dd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ba379dd16a5201de4f5e76810371eebaa21b692b)) +- more rules and fixups ([011f596](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/011f59674b7f5fa6bfe4292cb969b92b5d99f233)) +### BREAKING CHANGES + +- ESLint 9 is now required + +## [2.0.11](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.10...v2.0.11) (2024-03-25) ### Bug Fixes -* turn off prefer-destructuring when using typescript ([2f54a2f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2f54a2f3c8be594027c17a5ded2546014b2dba97)) +- update some rules ([5c9a858](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5c9a858f8ec6fc839a685ddd96632ba7b61ec7e7)) -## [2.0.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.4...v2.0.5) (2023-09-27) +## [2.0.10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.9...v2.0.10) (2024-01-27) +### Bug Fixes + +- allow using labels for loops and switches ([f2cd334](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f2cd33408ddb55d5734ec4da2a38c28da91c5452)) + +## [2.0.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.8...v2.0.9) (2024-01-05) ### Bug Fixes -* update unified-signatures rule config ([25cc9c1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/25cc9c177f1ad64e255ce5fedfd33a28efc32fdd)) +- use string regex ([22e2aa7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/22e2aa7c819ed23fc416ff1d2447e7936c3671d3)) -## [2.0.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.3...v2.0.4) (2023-08-27) +## [2.0.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.7...v2.0.8) (2024-01-05) + +### Bug Fixes +- ignore md files for filename-case ([54d651c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/54d651c7ccd5c99dfa03f69693d59d6d8e23424b)) + +## [2.0.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.6...v2.0.7) (2024-01-04) ### Bug Fixes -* turn off prefer-top-level-await for commonjs ([ab9a037](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab9a037e54182a9d35d6afc3e0226692d42a83c5)) +- update import/no-extraneous-dependencies ([2e2ef01](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2e2ef01550957a6fb914d434ed1dc5d6fe7d8fd9)) -## [2.0.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.2...v2.0.3) (2023-08-07) +## [2.0.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.5...v2.0.6) (2023-10-05) + +### Bug Fixes + +- turn off prefer-destructuring when using typescript ([2f54a2f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2f54a2f3c8be594027c17a5ded2546014b2dba97)) + +## [2.0.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.4...v2.0.5) (2023-09-27) + +### Bug Fixes +- update unified-signatures rule config ([25cc9c1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/25cc9c177f1ad64e255ce5fedfd33a28efc32fdd)) + +## [2.0.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.3...v2.0.4) (2023-08-27) ### Bug Fixes -* update sonarjs/no-duplicate-string config ([d1d3f70](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d1d3f7056e10ea022a805341b1b9202dec3196ed)) +- turn off prefer-top-level-await for commonjs ([ab9a037](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab9a037e54182a9d35d6afc3e0226692d42a83c5)) +## [2.0.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.2...v2.0.3) (2023-08-07) + +### Bug Fixes + +- update sonarjs/no-duplicate-string config ([d1d3f70](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d1d3f7056e10ea022a805341b1b9202dec3196ed)) ### Reverts -* Revert "ci: release without linting" ([a5a783c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a5a783c153bb6fdf0beb5f89342aacc5d22524ef)) +- Revert "ci: release without linting" ([a5a783c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a5a783c153bb6fdf0beb5f89342aacc5d22524ef)) ## [2.0.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.1...v2.0.2) (2023-07-21) - ### Bug Fixes -* update for latest eslint-plugin-functional v6 beta ([83536e4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/83536e403d57386f2bcdcfb01f0d68ad0733edd4)) +- update for latest eslint-plugin-functional v6 beta ([83536e4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/83536e403d57386f2bcdcfb01f0d68ad0733edd4)) ## [2.0.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v2.0.0...v2.0.1) (2023-07-17) - ### Bug Fixes -* immutability overrides setting ([8edd44d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8edd44dd28e0b809ca2c668287fd6e5780e6d3fe)) +- immutability overrides setting ([8edd44d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8edd44dd28e0b809ca2c668287fd6e5780e6d3fe)) # [2.0.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.8...v2.0.0) (2023-07-15) - ### Features -* update for typescript-eslint v6 ([5f0509a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5f0509a15b29370e5d5621fd37cac84a343711c1)) - +- update for typescript-eslint v6 ([5f0509a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5f0509a15b29370e5d5621fd37cac84a343711c1)) ### BREAKING CHANGES -* typescript-eslint v6 now required +- typescript-eslint v6 now required ## [1.7.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.7...v1.7.8) (2023-06-22) - ### Bug Fixes -* **naming-convention:** getters shouldn't be marked mutable ([2b3b11a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2b3b11a6b8c646f668043a4a08c6719b83f6e3ee)) +- **naming-convention:** getters shouldn't be marked mutable ([2b3b11a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2b3b11a6b8c646f668043a4a08c6719b83f6e3ee)) ## [1.7.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.6...v1.7.7) (2023-06-17) - ### Bug Fixes -* enforce strict version of assert package ([d642905](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d642905d8b753563076967a2789a7a3c166a1549)) +- enforce strict version of assert package ([d642905](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d642905d8b753563076967a2789a7a3c166a1549)) ## [1.7.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.5...v1.7.6) (2023-06-17) - ### Bug Fixes -* allowConstantLoopConditions ([4b8199d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4b8199d7fb450649163a3a98a7b061c85e2ff2e5)) +- allowConstantLoopConditions ([4b8199d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4b8199d7fb450649163a3a98a7b061c85e2ff2e5)) ## [1.7.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.4...v1.7.5) (2023-06-16) - ### Bug Fixes -* update jsdoc/tag-lines for new version ([02fbbf2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/02fbbf2a69b69b08bcf9be1a7c6c27fd12c3db92)) +- update jsdoc/tag-lines for new version ([02fbbf2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/02fbbf2a69b69b08bcf9be1a7c6c27fd12c3db92)) ## [1.7.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.3...v1.7.4) (2023-04-04) - ### Bug Fixes -* small fixers ([f001893](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f0018937c32643d3f077b8e96769c5e98f90e69e)) +- small fixers ([f001893](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f0018937c32643d3f077b8e96769c5e98f90e69e)) ## [1.7.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.2...v1.7.3) (2023-04-04) - ### Bug Fixes -* updating naming-convention ([84be48e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/84be48ece1671c81b285a7467c7cf2368dfc57e6)) +- updating naming-convention ([84be48e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/84be48ece1671c81b285a7467c7cf2368dfc57e6)) ## [1.7.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.1...v1.7.2) (2023-04-04) - ### Bug Fixes -* update import rules ([f613385](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f613385828e61440ad7fdaf3146f4267ea41a4a2)) +- update import rules ([f613385](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f613385828e61440ad7fdaf3146f4267ea41a4a2)) ## [1.7.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.7.0...v1.7.1) (2023-04-01) - ### Bug Fixes -* update markdown rules ([5c4077a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5c4077ae068ed84f10998acfe5dc86cd439e2fc5)) +- update markdown rules ([5c4077a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5c4077ae068ed84f10998acfe5dc86cd439e2fc5)) # [1.7.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.9...v1.7.0) (2023-04-01) - ### Features -* switch to eslint-plugin-n ([a32be24](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a32be24fb761b3c176610813089562d3fa8bedb4)) +- switch to eslint-plugin-n ([a32be24](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a32be24fb761b3c176610813089562d3fa8bedb4)) ## [1.6.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.8...v1.6.9) (2023-04-01) - ### Bug Fixes -* allow pascal case file names ([2f2cebd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2f2cebd3ef20a098c9c230e35193a5d95f8f0c8c)) +- allow pascal case file names ([2f2cebd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2f2cebd3ef20a098c9c230e35193a5d95f8f0c8c)) ## [1.6.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.7...v1.6.8) (2023-04-01) - ### Bug Fixes -* allow assertions statements ([081e628](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/081e6280600741bbdc211f79726e1a6ae4e17681)) -* treat paths starting with # as internal ([376dcaf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/376dcaf12fe54543aaca51950e3e7e716b91700b)) +- allow assertions statements ([081e628](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/081e6280600741bbdc211f79726e1a6ae4e17681)) +- treat paths starting with # as internal ([376dcaf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/376dcaf12fe54543aaca51950e3e7e716b91700b)) ## [1.6.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.6...v1.6.7) (2023-03-23) - ### Bug Fixes -* use @typescript-eslint/no-var-requires in cts files ([76481d9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/76481d9217fec8e4e9b01259d982dabc3ad40047)) +- use @typescript-eslint/no-var-requires in cts files ([76481d9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/76481d9217fec8e4e9b01259d982dabc3ad40047)) ## [1.6.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.5...v1.6.6) (2023-03-21) - ### Bug Fixes -* don't require usless jsdoc in js files ([041b24d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/041b24d4b1491652d0d4cb0b7b4d5b6127e1efad)) +- don't require usless jsdoc in js files ([041b24d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/041b24d4b1491652d0d4cb0b7b4d5b6127e1efad)) ## [1.6.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.4...v1.6.5) (2023-03-21) - ### Bug Fixes -* improve scripts config ([7e9eb0c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7e9eb0c604fb5808c19ab459b6873d3e9deeba09)) +- improve scripts config ([7e9eb0c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7e9eb0c604fb5808c19ab459b6873d3e9deeba09)) ## [1.6.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.3...v1.6.4) (2023-03-21) - ### Bug Fixes -* allow classes in test files ([091b609](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/091b609332103ce85e25414e2d3cfe52fb0d7e7c)) -* allow named imports from typescript ([376b90e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/376b90e6ffaf247bcc2932fa101aaef233ee9fab)) +- allow classes in test files ([091b609](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/091b609332103ce85e25414e2d3cfe52fb0d7e7c)) +- allow named imports from typescript ([376b90e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/376b90e6ffaf247bcc2932fa101aaef233ee9fab)) ## [1.6.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.2...v1.6.3) (2023-03-19) - ### Bug Fixes -* top-level overrides applying to non-top-level files ([2069bdc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2069bdc627f85d1cb182de47aa6257049de3be21)) -* update test config ([9203df4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9203df49d6fbd0a8459cfe8e0e4a5c2a455b6a66)) +- top-level overrides applying to non-top-level files ([2069bdc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2069bdc627f85d1cb182de47aa6257049de3be21)) +- update test config ([9203df4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9203df49d6fbd0a8459cfe8e0e4a5c2a455b6a66)) ## [1.6.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.1...v1.6.2) (2023-03-18) - ### Bug Fixes -* turn off import/no-cycle ([85fb424](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/85fb424062ffc05a7345ba346a2eca0839767b35)) +- turn off import/no-cycle ([85fb424](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/85fb424062ffc05a7345ba346a2eca0839767b35)) ## [1.6.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.6.0...v1.6.1) (2023-03-18) - ### Bug Fixes -* use unicorn/import-style instead of import/no-named-as-default-member ([0062d9a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0062d9a8d0836766c4d73f8812eb1c101ed21341)) +- use unicorn/import-style instead of import/no-named-as-default-member ([0062d9a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0062d9a8d0836766c4d73f8812eb1c101ed21341)) # [1.6.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.7...v1.6.0) (2023-03-18) - ### Features -* improve config merging and typescript import settings ([#1061](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/1061)) ([e9c7da3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e9c7da391609055b99836cd98faf2c8255e63db2)) +- improve config merging and typescript import settings ([#1061](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/1061)) ([e9c7da3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e9c7da391609055b99836cd98faf2c8255e63db2)) ## [1.5.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.6...v1.5.7) (2023-03-14) - ### Bug Fixes -* update jsdoc severities ([b14dc44](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b14dc44562df3aa8ad8b8833b7cad7dac03668ab)) +- update jsdoc severities ([b14dc44](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/b14dc44562df3aa8ad8b8833b7cad7dac03668ab)) ## [1.5.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.5...v1.5.6) (2023-03-12) - ### Bug Fixes -* jsdoc rules for js and ts ([04f2d9d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/04f2d9d3a287872aaafb35c80213ffefd1734e43)) -* update override patterns and minor changes to base config ([cf980df](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cf980df0941177ab1b6e070df0651dc0544f24da)) +- jsdoc rules for js and ts ([04f2d9d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/04f2d9d3a287872aaafb35c80213ffefd1734e43)) +- update override patterns and minor changes to base config ([cf980df](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cf980df0941177ab1b6e070df0651dc0544f24da)) ## [1.5.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.4...v1.5.5) (2023-03-11) - ### Bug Fixes -* severity of jsdoc require-throws ([12cf4cd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/12cf4cdf90a9544c35441da7bed6faa7788bd551)) -* small update to jsdoc rules ([0cab31e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0cab31e6348b9ea1fc4bc3831e51d45621a65b2d)) +- severity of jsdoc require-throws ([12cf4cd](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/12cf4cdf90a9544c35441da7bed6faa7788bd551)) +- small update to jsdoc rules ([0cab31e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0cab31e6348b9ea1fc4bc3831e51d45621a65b2d)) ## [1.5.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.3...v1.5.4) (2023-03-11) - ### Bug Fixes -* update jsdoc rules ([2fce7d0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2fce7d05d3aceee5a7eeba5fe198aede1e836df7)) +- update jsdoc rules ([2fce7d0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2fce7d05d3aceee5a7eeba5fe198aede1e836df7)) ## [1.5.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.2...v1.5.3) (2023-03-10) - ### Bug Fixes -* allowIndexSignaturePropertyAccess for dot-notation ([a70dcfb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a70dcfb142f8ee5ac0d04921ef6e4cbb496117f3)) +- allowIndexSignaturePropertyAccess for dot-notation ([a70dcfb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a70dcfb142f8ee5ac0d04921ef6e4cbb496117f3)) ## [1.5.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.1...v1.5.2) (2023-02-06) - ### Bug Fixes -* allow parameter names only made of "_"s ([6d3f3d3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6d3f3d3acb129d8390e1980f5097508ecc65dd20)) +- allow parameter names only made of "\_"s ([6d3f3d3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6d3f3d3acb129d8390e1980f5097508ecc65dd20)) ## [1.5.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.5.0...v1.5.1) (2023-02-06) - ### Bug Fixes -* allow prefixes on parameter names ([d133805](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d13380548fb932a8efc560c1428926d7e2fc0487)) +- allow prefixes on parameter names ([d133805](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d13380548fb932a8efc560c1428926d7e2fc0487)) # [1.5.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.6...v1.5.0) (2023-01-29) - ### Bug Fixes -* **functional/prefer-immutable-types:** decrease severity, enforcement and add exception ([2855e16](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2855e167c3114c7a59e47bb2189b485ba49646bc)) - +- **functional/prefer-immutable-types:** decrease severity, enforcement and add exception ([2855e16](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2855e167c3114c7a59e47bb2189b485ba49646bc)) ### Features -* update deps ([1d13853](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1d1385391599e290ab86d5c17288faf89d6152da)) +- update deps ([1d13853](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1d1385391599e290ab86d5c17288faf89d6152da)) ## [1.4.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.5...v1.4.6) (2022-12-16) - ### Bug Fixes -* **sonarjs/max-switch-cases:** turn rule off ([ae23f89](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ae23f89319d9068a8502110cfa93a43b11a1b238)) +- **sonarjs/max-switch-cases:** turn rule off ([ae23f89](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ae23f89319d9068a8502110cfa93a43b11a1b238)) ## [1.4.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.4...v1.4.5) (2022-11-17) - ### Bug Fixes -* update for latest eslint-plugin-functional beta ([e45fa06](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e45fa06b5110262d41b10d981572ae81efd808c1)) +- update for latest eslint-plugin-functional beta ([e45fa06](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e45fa06b5110262d41b10d981572ae81efd808c1)) ## [1.4.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.3...v1.4.4) (2022-10-04) - ### Bug Fixes -* update for eslint-plugin-functional 5 ([cf67943](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cf6794302dfa7af8be576c3716e52de65a01ed0a)) +- update for eslint-plugin-functional 5 ([cf67943](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cf6794302dfa7af8be576c3716e52de65a01ed0a)) ## [1.4.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.2...v1.4.3) (2022-09-29) - ### Bug Fixes -* update functional rules ([d8d8420](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d8d8420774fbb25ce1fa4d42f4d79e2b4865e126)) +- update functional rules ([d8d8420](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d8d8420774fbb25ce1fa4d42f4d79e2b4865e126)) ## [1.4.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.1...v1.4.2) (2022-09-29) - ### Bug Fixes -* turn off default-param-last ([e47adfc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e47adfc81d0b168e42cebc2063b61e4084898dd8)) +- turn off default-param-last ([e47adfc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e47adfc81d0b168e42cebc2063b61e4084898dd8)) ## [1.4.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.4.0...v1.4.1) (2022-09-24) - ### Bug Fixes -* adjust markdown overrides ([30f45b8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/30f45b8fe6a4764947ba4de4a18ab64a7f0aeb25)) +- adjust markdown overrides ([30f45b8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/30f45b8fe6a4764947ba4de4a18ab64a7f0aeb25)) # [1.4.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.23...v1.4.0) (2022-09-24) - ### Features -* add new eslint rules and configure for use with eslint-functional 5 ([15458bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/15458bf5d931aa1442f48568c85e5b65347b2c97)) +- add new eslint rules and configure for use with eslint-functional 5 ([15458bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/15458bf5d931aa1442f48568c85e5b65347b2c97)) ## [1.3.23](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.22...v1.3.23) (2022-09-08) - ### Bug Fixes -* allow "index" in paths ([42d142f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/42d142f4bea4393b3ec52362ba782e2504c8bcf9)) +- allow "index" in paths ([42d142f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/42d142f4bea4393b3ec52362ba782e2504c8bcf9)) ## [1.3.22](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.21...v1.3.22) (2022-07-11) - ### Bug Fixes -* allow bundledDependency, optionalDependency and peerDependency imports ([7c20742](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7c20742b6b4ccd51df7c64eb2f749a05fd57681f)) +- allow bundledDependency, optionalDependency and peerDependency imports ([7c20742](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7c20742b6b4ccd51df7c64eb2f749a05fd57681f)) ## [1.3.21](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.20...v1.3.21) (2022-05-29) - ### Bug Fixes -* **import/no-extraneous-dependencies:** support cts and mts extension ([50daeb3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/50daeb381d64b9a40cb8a5ae6f80b690f10fca68)) +- **import/no-extraneous-dependencies:** support cts and mts extension ([50daeb3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/50daeb381d64b9a40cb8a5ae6f80b690f10fca68)) ## [1.3.20](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.19...v1.3.20) (2022-04-17) - ### Bug Fixes -* allow plusplus ([4fd2635](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4fd2635cdaabb866ecd8d6b1abe85aeb3207b7be)) -* loosen promise rules ([517b196](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/517b19684057561d21dc846d896f6260056e1915)) +- allow plusplus ([4fd2635](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4fd2635cdaabb866ecd8d6b1abe85aeb3207b7be)) +- loosen promise rules ([517b196](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/517b19684057561d21dc846d896f6260056e1915)) ## [1.3.19](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.18...v1.3.19) (2022-04-13) - ### Bug Fixes -* tweak naming-convention" ([39f4456](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/39f4456cd39e78f09b188d3960c0baa893792b67)) +- tweak naming-convention" ([39f4456](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/39f4456cd39e78f09b188d3960c0baa893792b67)) ## [1.3.18](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.17...v1.3.18) (2022-04-09) - ### Bug Fixes -* tweak naming-convention" ([9f12b8a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9f12b8a3641217c8eb037993fbf41daeb381fa82)) +- tweak naming-convention" ([9f12b8a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9f12b8a3641217c8eb037993fbf41daeb381fa82)) ## [1.3.17](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.16...v1.3.17) (2022-04-05) - ### Bug Fixes -* tweak naming-convention" ([ab792d2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab792d2b3a40b22723bb2384cae4692e100bf754)) +- tweak naming-convention" ([ab792d2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab792d2b3a40b22723bb2384cae4692e100bf754)) ## [1.3.16](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.15...v1.3.16) (2022-04-04) - ### Bug Fixes -* tweak naming-convention" ([092ae10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/092ae102744c68657832367634daa679fa2f36b9)) +- tweak naming-convention" ([092ae10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/092ae102744c68657832367634daa679fa2f36b9)) ## [1.3.15](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.14...v1.3.15) (2022-04-04) - ### Bug Fixes -* tweak naming-convention ([3fa91b2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3fa91b2f8aa49f2bbf24b916dad0fafe63f20551)) +- tweak naming-convention ([3fa91b2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3fa91b2f8aa49f2bbf24b916dad0fafe63f20551)) ## [1.3.14](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.13...v1.3.14) (2022-04-04) - ### Bug Fixes -* fix dash character ([5b8a1c7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5b8a1c7f8954863825ead368ba5d5045d585f923)) -* tweak naming-convention ([1df2ea5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1df2ea5f5fd68b84a9de4976e5a3b87e5e606227)) +- fix dash character ([5b8a1c7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5b8a1c7f8954863825ead368ba5d5045d585f923)) +- tweak naming-convention ([1df2ea5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1df2ea5f5fd68b84a9de4976e5a3b87e5e606227)) ## [1.3.13](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.12...v1.3.13) (2022-04-04) - ### Bug Fixes -* tweak naming-convention ([136b90a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/136b90a05ff64bb3462a03bc4085a627fa874caa)) +- tweak naming-convention ([136b90a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/136b90a05ff64bb3462a03bc4085a627fa874caa)) ## [1.3.12](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.11...v1.3.12) (2022-04-02) - ### Bug Fixes -* allow underscore dangle ([c92396b](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c92396bdeda2732c34d60311a4ae74da1dac6c27)) +- allow underscore dangle ([c92396b](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c92396bdeda2732c34d60311a4ae74da1dac6c27)) ## [1.3.11](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.10...v1.3.11) (2022-04-02) - ### Bug Fixes -* turn off init-declarations ([49068ef](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/49068ef73c410ee86f1335f3c78ef11bc10c53a2)) +- turn off init-declarations ([49068ef](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/49068ef73c410ee86f1335f3c78ef11bc10c53a2)) ## [1.3.10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.9...v1.3.10) (2022-04-02) - ### Bug Fixes -* allow "m_" prefix to mark something as mutable ([0c5c0d4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0c5c0d44c09c359ff6f7660c0820fff614ad15d6)) -* remove tsdoc ([a811527](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a8115278d708793ff76681b033d9c0b18a2a6fff)) +- allow "m\_" prefix to mark something as mutable ([0c5c0d4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0c5c0d44c09c359ff6f7660c0820fff614ad15d6)) +- remove tsdoc ([a811527](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a8115278d708793ff76681b033d9c0b18a2a6fff)) ## [1.3.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.8...v1.3.9) (2022-03-23) - ### Bug Fixes -* update commonjs overrides ([3a7485f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3a7485f1afd6389c818b1dc87d632272ed306005)) +- update commonjs overrides ([3a7485f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3a7485f1afd6389c818b1dc87d632272ed306005)) ## [1.3.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.7...v1.3.8) (2022-03-23) - ### Bug Fixes -* update commonjs overrides ([ee917f0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ee917f0ee45841e85032301f0855c7c179c6463f)) +- update commonjs overrides ([ee917f0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ee917f0ee45841e85032301f0855c7c179c6463f)) ## [1.3.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.6...v1.3.7) (2022-03-23) - ### Bug Fixes -* add common js overrides ([7da04f6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7da04f6e24d0a8b6acd7b0ffccfb1aacc77e4a9a)) +- add common js overrides ([7da04f6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7da04f6e24d0a8b6acd7b0ffccfb1aacc77e4a9a)) ## [1.3.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.5...v1.3.6) (2022-03-22) - ### Bug Fixes -* update typescript overrides ([5d8a645](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5d8a6459ac4667dd5500dbff4ad4abf10c799aab)) +- update typescript overrides ([5d8a645](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5d8a6459ac4667dd5500dbff4ad4abf10c799aab)) ## [1.3.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.4...v1.3.5) (2022-03-22) - ### Bug Fixes -* turn off no-return-void for scripts ([7888b8d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7888b8d12c3b10f55d84c47009c9432ace68837b)) +- turn off no-return-void for scripts ([7888b8d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7888b8d12c3b10f55d84c47009c9432ace68837b)) ## [1.3.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.3...v1.3.4) (2022-03-22) - ### Bug Fixes -* import/internal-regex ([3bc0fa5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3bc0fa5b8e85ac3f4fc16407d27bca6035f19ded)) +- import/internal-regex ([3bc0fa5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3bc0fa5b8e85ac3f4fc16407d27bca6035f19ded)) ## [1.3.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.2...v1.3.3) (2022-03-22) - ### Bug Fixes -* upadte functional rules ([19ed80d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/19ed80dfcd99fedf3de686dbc6e06b5ab3b63f5e)) -* update import rules ([2382357](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/238235709d74a76c0ee1b53fc3c691f72074ea91)) +- upadte functional rules ([19ed80d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/19ed80dfcd99fedf3de686dbc6e06b5ab3b63f5e)) +- update import rules ([2382357](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/238235709d74a76c0ee1b53fc3c691f72074ea91)) ## [1.3.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.1...v1.3.2) (2022-03-22) - ### Bug Fixes -* update node rules ([81a5c93](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/81a5c931f79bee9314fea099d3fa532216c2104b)) +- update node rules ([81a5c93](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/81a5c931f79bee9314fea099d3fa532216c2104b)) ## [1.3.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.3.0...v1.3.1) (2022-02-09) - ### Bug Fixes -* update unicorn rules ([d0bca6e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d0bca6ee46f296ece9da5b0cb2758a59400996ad)) +- update unicorn rules ([d0bca6e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/d0bca6ee46f296ece9da5b0cb2758a59400996ad)) # [1.3.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.2.2...v1.3.0) (2022-02-07) - ### Bug Fixes -* allow throw statements inside async functions ([4bc76bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4bc76bf167517fd3ab1643a896834238d982ebb5)) - +- allow throw statements inside async functions ([4bc76bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4bc76bf167517fd3ab1643a896834238d982ebb5)) ### Features -* check tsdocs when using typescript ([3b3d586](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3b3d586ee6d01754c6db6faf2f302e866b1fd7f8)) -* update script config and add test config ([88196bc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/88196bc1fd5983fa1ff5d610f42c5e7f1a041daf)) +- check tsdocs when using typescript ([3b3d586](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3b3d586ee6d01754c6db6faf2f302e866b1fd7f8)) +- update script config and add test config ([88196bc](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/88196bc1fd5983fa1ff5d610f42c5e7f1a041daf)) ## [1.2.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.2.1...v1.2.2) (2022-01-29) - ### Bug Fixes -* **@typescript-eslint/prefer-readonly-parameter-types:** treat methods as readonly ([a0a1af7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a0a1af7995dae9cc5bd9697d8c585a275c0118bc)) -* **jsdoc/require-jsdoc:** ensure exported function declaration also require jsdoc ([8d647d1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8d647d1096079586041e2a50fce83503effd81ea)) +- **@typescript-eslint/prefer-readonly-parameter-types:** treat methods as readonly ([a0a1af7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/a0a1af7995dae9cc5bd9697d8c585a275c0118bc)) +- **jsdoc/require-jsdoc:** ensure exported function declaration also require jsdoc ([8d647d1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/8d647d1096079586041e2a50fce83503effd81ea)) ## [1.2.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.2.0...v1.2.1) (2022-01-14) - ### Bug Fixes -* **jsdoc/require-jsdoc:** only require jsdocs on types when they are exported ([0ebcdf8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0ebcdf8cdc37e1bc6441bbdf96001e7f35dfac1c)) -* **jsdoc/require-jsdoc:** require jsdocs for exported interfaces ([cec3e26](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cec3e26ed6d6b0588b4f4680b2e24eb0b05c4b9e)) +- **jsdoc/require-jsdoc:** only require jsdocs on types when they are exported ([0ebcdf8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0ebcdf8cdc37e1bc6441bbdf96001e7f35dfac1c)) +- **jsdoc/require-jsdoc:** require jsdocs for exported interfaces ([cec3e26](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/cec3e26ed6d6b0588b4f4680b2e24eb0b05c4b9e)) # [1.2.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.5...v1.2.0) (2021-12-07) - ### Bug Fixes -* add ts version of rule no-redeclare ([eaa92ac](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/eaa92aca6592ccfd2bc80f03fc966c8499c9deaa)) -* increase severity of prefer-readonly-parameter-types rule ([807acf4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/807acf494b0064af40a1aca11f362a024174a6f7)) -* turn off consistent-return in ts environment ([5cc95bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5cc95bf2fe2784ed37a553413e94e19f3ecca2fc)) -* turn off no-try-statement ([01168ad](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/01168adfe7dac707974bc45a8e6a3d6089832d3c)) -* turn off no-warning-comments ([78150eb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/78150eb466467371e08724297b6ed353c69ead85)) -* turn off prefer-await-to-then ([abeab1a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/abeab1ab0d02c57470eef48eb63aec05420f6873)) -* turn off prefer-tacit ([c26c1d6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c26c1d6a2a168fbf999cbc7930ba66bfaeb40a37)) -* turn off promise-function-async ([01e413d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/01e413daf5a5c04badbb9fe87166584a1e1eb1f2)) -* turn off sort-type-union-intersection-members" ([88c3567](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/88c356746053d623c1f1220fad450ac43dc4f3ae)) - +- add ts version of rule no-redeclare ([eaa92ac](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/eaa92aca6592ccfd2bc80f03fc966c8499c9deaa)) +- increase severity of prefer-readonly-parameter-types rule ([807acf4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/807acf494b0064af40a1aca11f362a024174a6f7)) +- turn off consistent-return in ts environment ([5cc95bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5cc95bf2fe2784ed37a553413e94e19f3ecca2fc)) +- turn off no-try-statement ([01168ad](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/01168adfe7dac707974bc45a8e6a3d6089832d3c)) +- turn off no-warning-comments ([78150eb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/78150eb466467371e08724297b6ed353c69ead85)) +- turn off prefer-await-to-then ([abeab1a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/abeab1ab0d02c57470eef48eb63aec05420f6873)) +- turn off prefer-tacit ([c26c1d6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c26c1d6a2a168fbf999cbc7930ba66bfaeb40a37)) +- turn off promise-function-async ([01e413d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/01e413daf5a5c04badbb9fe87166584a1e1eb1f2)) +- turn off sort-type-union-intersection-members" ([88c3567](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/88c356746053d623c1f1220fad450ac43dc4f3ae)) ### Features -* add config for srcipting ([458fcf6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/458fcf68baf2ee4af20a4d4ed3fba7f34bb84271)) +- add config for srcipting ([458fcf6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/458fcf68baf2ee4af20a4d4ed3fba7f34bb84271)) ## [1.1.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.4...v1.1.5) (2021-10-18) - ### Bug Fixes -* **no-extra-parens:** use typescript version of rule when in typescript ([#867](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/867)) ([ba4547e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ba4547eb5f5343befd60883480ee21862af3ee1b)) -* **space-infix-ops:** use typescript version of space-infix-ops for t… ([#868](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/868)) ([e526697](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e52669724305c042d9ef910121546ed5bd197b12)) -* **type-annotation-spacing:** add rule ([#866](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/866)) ([2604984](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/260498492a37e0d27d7420a3aa5e781e0aa7c8e1)) +- **no-extra-parens:** use typescript version of rule when in typescript ([#867](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/867)) ([ba4547e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ba4547eb5f5343befd60883480ee21862af3ee1b)) +- **space-infix-ops:** use typescript version of space-infix-ops for t… ([#868](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/868)) ([e526697](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e52669724305c042d9ef910121546ed5bd197b12)) +- **type-annotation-spacing:** add rule ([#866](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/866)) ([2604984](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/260498492a37e0d27d7420a3aa5e781e0aa7c8e1)) ## [1.1.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.3...v1.1.4) (2021-09-21) - ### Bug Fixes -* update markdown overrides ([#855](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/855)) ([4544336](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/45443362262c5cbbc31c855539ab51012e88d5c2)) +- update markdown overrides ([#855](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/855)) ([4544336](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/45443362262c5cbbc31c855539ab51012e88d5c2)) ## [1.1.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.2...v1.1.3) (2021-09-21) - ### Bug Fixes -* turn off all type-checking eslint rules for markdown ([#854](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/854)) ([2605f92](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2605f925467654e1cf0a61c4c8f35924cb6fe2ee)) +- turn off all type-checking eslint rules for markdown ([#854](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues/854)) ([2605f92](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2605f925467654e1cf0a61c4c8f35924cb6fe2ee)) ## [1.1.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.1...v1.1.2) (2021-09-19) - ### Bug Fixes -* allow mutations of things prefixed with mutable ([6ed77e4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6ed77e4f5681d204611b3461732f8ed9ec5fea83)) +- allow mutations of things prefixed with mutable ([6ed77e4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/6ed77e4f5681d204611b3461732f8ed9ec5fea83)) ## [1.1.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.1.0...v1.1.1) (2021-09-11) - ### Bug Fixes -* remove rules that aren't ready for ts ([77dcde1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/77dcde179189d7201b14d6d974929b37609363ff)) +- remove rules that aren't ready for ts ([77dcde1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/77dcde179189d7201b14d6d974929b37609363ff)) # [1.1.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.16...v1.1.0) (2021-09-10) - ### Bug Fixes -* **sonarjs/no-duplicate-string:** increase the number of duplicate strings needed to trigger rule ([581fd1e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/581fd1e1c1da16f98f0ed41a52e9fe6453cff6c9)) -* split builtins from externals ([7151110](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7151110303b032aacbffde7f37b2347a5ab1c30f)) - +- **sonarjs/no-duplicate-string:** increase the number of duplicate strings needed to trigger rule ([581fd1e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/581fd1e1c1da16f98f0ed41a52e9fe6453cff6c9)) +- split builtins from externals ([7151110](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7151110303b032aacbffde7f37b2347a5ab1c30f)) ### Features -* update ecma version ([f95e9e1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f95e9e1ca7c225858d03d246778a6d099909f217)) -* update markdown config ([c9300ed](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c9300ed1bbd2ce97aae7ace955df0a2664bbe0b7)) -* update unicorn rules ([684fa41](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/684fa410bef1b7a13a060041dfaf385aa027777e)) +- update ecma version ([f95e9e1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f95e9e1ca7c225858d03d246778a6d099909f217)) +- update markdown config ([c9300ed](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c9300ed1bbd2ce97aae7ace955df0a2664bbe0b7)) +- update unicorn rules ([684fa41](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/684fa410bef1b7a13a060041dfaf385aa027777e)) ## [1.0.16](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.15...v1.0.16) (2021-09-10) - ### Bug Fixes -* update typescript rules ([1230247](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/12302479dc68a2d3c218f783b8bf5673dd7108a5)) +- update typescript rules ([1230247](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/12302479dc68a2d3c218f783b8bf5673dd7108a5)) ## [1.0.15](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.14...v1.0.15) (2021-08-26) - ### Bug Fixes -* use consistent-type-definitions over prefer-type-literal ([adcd4fe](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/adcd4fed4f29cd8d732517e32e113d9828d25777)) +- use consistent-type-definitions over prefer-type-literal ([adcd4fe](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/adcd4fed4f29cd8d732517e32e113d9828d25777)) ## [1.0.14](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.13...v1.0.14) (2021-08-24) - ### Bug Fixes -* update what nodes require jsdoc ([27748d3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/27748d3b470a22957c7abb32168c576dfb19bac4)) +- update what nodes require jsdoc ([27748d3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/27748d3b470a22957c7abb32168c576dfb19bac4)) ## [1.0.13](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.12...v1.0.13) (2021-08-24) - ### Bug Fixes -* for simple non-readonly arrays, don't use generic style ([3d480b9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3d480b9648c7f172e4719c59bc589ad97fffabcc)) -* turn off default-case now that we are checking if exhaustive ([45dea9c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/45dea9cb74835446e6c7fb8f5788e6f1dd6341ee)) +- for simple non-readonly arrays, don't use generic style ([3d480b9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3d480b9648c7f172e4719c59bc589ad97fffabcc)) +- turn off default-case now that we are checking if exhaustive ([45dea9c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/45dea9cb74835446e6c7fb8f5788e6f1dd6341ee)) ## [1.0.12](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.11...v1.0.12) (2021-07-30) - ### Bug Fixes -* remove eslint-plugin-simple-import-sort as a peer dep as no longer used ([78d4200](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/78d420025673e42e5528e0d11f25991fccc48252)) +- remove eslint-plugin-simple-import-sort as a peer dep as no longer used ([78d4200](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/78d420025673e42e5528e0d11f25991fccc48252)) ## [1.0.11](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.10...v1.0.11) (2021-07-30) - ### Bug Fixes -* allow void before call expressions ([932351e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/932351ef856c0062f5e134afda08a80a150588f0)) +- allow void before call expressions ([932351e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/932351ef856c0062f5e134afda08a80a150588f0)) ## [1.0.10](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.9...v1.0.10) (2021-07-22) - ### Bug Fixes -* use stylistic over stylitic functional ruleset ([68d9560](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/68d956087ce25825bef8760285433eaafe80bbbc)) +- use stylistic over stylitic functional ruleset ([68d9560](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/68d956087ce25825bef8760285433eaafe80bbbc)) ## [1.0.9](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.8...v1.0.9) (2021-07-21) - ### Bug Fixes -* ignore mutable types in classes ([31e4982](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/31e4982508d5d2590f9026c1000ac69a68195a26)) +- ignore mutable types in classes ([31e4982](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/31e4982508d5d2590f9026c1000ac69a68195a26)) ## [1.0.8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.7...v1.0.8) (2021-07-21) - ### Bug Fixes -* make rule prefer-readonly-parameter-types more lenient ([c0be938](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c0be9380d597ac09b139f02f017de2cc815a83c3)) +- make rule prefer-readonly-parameter-types more lenient ([c0be938](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c0be9380d597ac09b139f02f017de2cc815a83c3)) ## [1.0.7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.6...v1.0.7) (2021-07-21) - ### Bug Fixes -* **comma-dangle:** use typescript version of rule ([2065d6e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2065d6efce4b0d1bf7c7bc7a06ddfca7b98b7563)) -* **consistent-indexed-object-style:** add rule ([c57ef18](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c57ef182eeb6d3c727a16d01651e2b8b51d6e88b)) -* **dot-notation:** use typescript version of rule ([4407aef](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4407aefe9ac256d50ca6f98a41742aa4ee19f7a7)) -* **no-confusing-void-expression:** add rule ([ced5612](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ced56129c2258bc85d0a2a1e2c57b84c629ee89c)) -* **no-invalid-void-type:** add rule ([875bb0c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/875bb0ce830a1667717354148874325ba4252450)) -* **no-loop-func:** use typescript version of rule ([db7c588](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/db7c588def28d155db445a47d617bed5424edf98)) -* **no-shadow:** use typescript version of rule ([59945b1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/59945b1b1bc0da23b1a56812498f53bd0e836cb4)) -* **no-unnecessary-type-constraint:** add rule ([7e31455](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7e31455efe953f66cdbca9f2b0c15e5520cf539e)) -* **non-nullable-type-assertion-style:** add rule ([273e0db](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/273e0db30a4185279df7a07f8422408a786436e0)) -* **object-curly-spacing:** use typescript version of rule for typescript ([3d0d7eb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3d0d7eb859540105a87cc54da003a61a3f19b85a)) -* **prefer-readonly-parameter-types:** add rule ([5d85ce2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5d85ce29e392c1d34c50bc3d339e74ffd64399a0)) -* **promise-function-async:** add rule ([26927f0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/26927f0f3730ff78358e44c5119ccdd017053cb4)) -* **restrict-plus-operands:** add rule ([f68d08e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f68d08e6e9ddae423d52a18e1ce62bc4c016428d)) -* **sort-type-union-intersection-members:** add rule ([4bfdb58](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4bfdb58e9d207c478dc14f149d801e329113887b)) -* **strict-boolean-expressions:** add rule ([c973802](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c973802db4b9afbe4afe6d609caccfb178ef84fa)) -* **unbound-method:** add rule ([9000402](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9000402bd71da82476dc3be136dceb1643d05ad4)) +- **comma-dangle:** use typescript version of rule ([2065d6e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/2065d6efce4b0d1bf7c7bc7a06ddfca7b98b7563)) +- **consistent-indexed-object-style:** add rule ([c57ef18](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c57ef182eeb6d3c727a16d01651e2b8b51d6e88b)) +- **dot-notation:** use typescript version of rule ([4407aef](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4407aefe9ac256d50ca6f98a41742aa4ee19f7a7)) +- **no-confusing-void-expression:** add rule ([ced5612](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ced56129c2258bc85d0a2a1e2c57b84c629ee89c)) +- **no-invalid-void-type:** add rule ([875bb0c](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/875bb0ce830a1667717354148874325ba4252450)) +- **no-loop-func:** use typescript version of rule ([db7c588](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/db7c588def28d155db445a47d617bed5424edf98)) +- **no-shadow:** use typescript version of rule ([59945b1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/59945b1b1bc0da23b1a56812498f53bd0e836cb4)) +- **no-unnecessary-type-constraint:** add rule ([7e31455](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7e31455efe953f66cdbca9f2b0c15e5520cf539e)) +- **non-nullable-type-assertion-style:** add rule ([273e0db](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/273e0db30a4185279df7a07f8422408a786436e0)) +- **object-curly-spacing:** use typescript version of rule for typescript ([3d0d7eb](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/3d0d7eb859540105a87cc54da003a61a3f19b85a)) +- **prefer-readonly-parameter-types:** add rule ([5d85ce2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5d85ce29e392c1d34c50bc3d339e74ffd64399a0)) +- **promise-function-async:** add rule ([26927f0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/26927f0f3730ff78358e44c5119ccdd017053cb4)) +- **restrict-plus-operands:** add rule ([f68d08e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f68d08e6e9ddae423d52a18e1ce62bc4c016428d)) +- **sort-type-union-intersection-members:** add rule ([4bfdb58](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4bfdb58e9d207c478dc14f149d801e329113887b)) +- **strict-boolean-expressions:** add rule ([c973802](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c973802db4b9afbe4afe6d609caccfb178ef84fa)) +- **unbound-method:** add rule ([9000402](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9000402bd71da82476dc3be136dceb1643d05ad4)) ## [1.0.6](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.5...v1.0.6) (2021-01-06) - ### Bug Fixes -* **common-overrides:** fix typo ([f0d6a59](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f0d6a5956e17dc7d04351271c8ff89b70db0482b)) +- **common-overrides:** fix typo ([f0d6a59](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/f0d6a5956e17dc7d04351271c8ff89b70db0482b)) ## [1.0.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.4...v1.0.5) (2021-01-05) - ### Bug Fixes -* **typescript:** update typescript ruels ([ab3f180](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab3f180ab4daeb3993f373bdbf1fca117a121b59)) +- **typescript:** update typescript ruels ([ab3f180](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ab3f180ab4daeb3993f373bdbf1fca117a121b59)) ## [1.0.4](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.3...v1.0.4) (2021-01-05) - ### Bug Fixes -* **import/no-extraneous-dependencies:** update rule options ([25f8ba8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/25f8ba8f40aaa947c535e0b81c24853b10cc4675)) +- **import/no-extraneous-dependencies:** update rule options ([25f8ba8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/25f8ba8f40aaa947c535e0b81c24853b10cc4675)) ## [1.0.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.2...v1.0.3) (2021-01-02) - ### Bug Fixes -* turn off rule import/no-commonjs ([e0607bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e0607bf6928ace68850b5dd081c2e102cf69e560)) +- turn off rule import/no-commonjs ([e0607bf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/e0607bf6928ace68850b5dd081c2e102cf69e560)) ## [1.0.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.1...v1.0.2) (2021-01-02) - ### Bug Fixes -* disable rule "new-cap" ([9aeceec](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9aeceecfdb726dd88d01a290a033208145d3c31a)) -* disable rule @typescript-eslint/no-var-requires in non-ts files ([0f1e17a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0f1e17ad23406d3f5b647d33d8c4d6140b31f42c)) -* disable rule jsdoc/require-description-complete-sentence ([9e1217b](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9e1217b7240a0f1ba4320089a854d19e6cc5d302)) -* disable rule node/global-require ([9d598cf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9d598cfa3c2087c25ea590a2ac293c8cf4b8fad5)) -* disable rules @typescript-eslint/no-require-imports ([7ce18d8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7ce18d876d9ea82fd5ec2a528c179382137ab7bd)) -* opt-in to functional/stylitic rules ([c5d6ae7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c5d6ae761035e5d036d97b38b19e30593481ee7c)) -* update unicorn rules ([4ffd355](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4ffd355da4dc046c970912e63f649b72d8f19b67)) +- disable rule "new-cap" ([9aeceec](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9aeceecfdb726dd88d01a290a033208145d3c31a)) +- disable rule @typescript-eslint/no-var-requires in non-ts files ([0f1e17a](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/0f1e17ad23406d3f5b647d33d8c4d6140b31f42c)) +- disable rule jsdoc/require-description-complete-sentence ([9e1217b](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9e1217b7240a0f1ba4320089a854d19e6cc5d302)) +- disable rule node/global-require ([9d598cf](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/9d598cfa3c2087c25ea590a2ac293c8cf4b8fad5)) +- disable rules @typescript-eslint/no-require-imports ([7ce18d8](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7ce18d876d9ea82fd5ec2a528c179382137ab7bd)) +- opt-in to functional/stylitic rules ([c5d6ae7](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/c5d6ae761035e5d036d97b38b19e30593481ee7c)) +- update unicorn rules ([4ffd355](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/4ffd355da4dc046c970912e63f649b72d8f19b67)) ## [1.0.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v1.0.0...v1.0.1) (2020-12-24) - ### Bug Fixes -* security updates ([fdb7c90](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/fdb7c90fe351ad50d5a639ba9b3a7e68fdf06131)) +- security updates ([fdb7c90](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/fdb7c90fe351ad50d5a639ba9b3a7e68fdf06131)) # [1.0.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.2.3...v1.0.0) (2020-12-22) - ### Code Refactoring -* update build process, refactor codebase, update eslint rules ([7b5947e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7b5947ee6891f64c06b7f6b7b0db8e73d2d45f57)) - +- update build process, refactor codebase, update eslint rules ([7b5947e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/7b5947ee6891f64c06b7f6b7b0db8e73d2d45f57)) ### Features -* split into multiple configs ([1b37e76](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1b37e769214936824c0146bd3211514aeb452d77)) - +- split into multiple configs ([1b37e76](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/1b37e769214936824c0146bd3211514aeb452d77)) ### BREAKING CHANGES -* import updates -* Rules have been updated +- import updates +- Rules have been updated ## [0.2.3](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.2.2...v0.2.3) (2019-12-29) - ### Bug Fixes -* **functional:** load eslint-plugin-functional's external-recommended ([5fded3f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5fded3f9872e5a7ae021c9c593111673ff791bde)) +- **functional:** load eslint-plugin-functional's external-recommended ([5fded3f](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5fded3f9872e5a7ae021c9c593111673ff791bde)) ## [0.2.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.2.1...v0.2.2) (2019-11-20) - ### Bug Fixes -* test release ([ac5b17e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ac5b17e5fe54f6c2262adb2e3c3cdea3606529df)) +- test release ([ac5b17e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/ac5b17e5fe54f6c2262adb2e3c3cdea3606529df)) ## [0.2.2](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.2.1...v0.2.2) (2019-11-20) - ### Bug Fixes -* test release ([652927e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/652927eba93ee6d5a2c316e316c627d030e88786)) +- test release ([652927e](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/652927eba93ee6d5a2c316e316c627d030e88786)) ## [0.2.1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.2.0...v0.2.1) (2019-11-20) - ### Bug Fixes -* force publish ([58075c1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/58075c1b1ad4cb8fe08b9ccf798122e18853106d)) +- force publish ([58075c1](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/58075c1b1ad4cb8fe08b9ccf798122e18853106d)) # [0.2.0](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.1.5...v0.2.0) (2019-09-17) - ### Bug Fixes -* **package:** update rimraf to version 3.0.0 ([23dd874](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/23dd874)) - +- **package:** update rimraf to version 3.0.0 ([23dd874](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/23dd874)) ### Features -* use more of [@typescript-eslint](https://github.com/typescript-eslint) rulesets ([5f6bb0d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5f6bb0d)) +- use more of [@typescript-eslint](https://github.com/typescript-eslint) rulesets ([5f6bb0d](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/commit/5f6bb0d)) ## [v0.1.5](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/compare/v0.1.4...v0.1.5) - 2019-08-10 diff --git a/LICENSE b/LICENSE index 292b4513..924bbecd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2019, Rebecca Stevens +Copyright (c) 2024, Rebecca Stevens All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index eae64b7b..219acd38 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,19 @@ An [ESLint Shareable Config](https://eslint.org/docs/developer-guide/shareable-configs.html). [![npm version](https://img.shields.io/npm/v/@rebeccastevens/eslint-config.svg)](https://www.npmjs.com/package/@rebeccastevens/eslint-config) -[![CI](https://github.com/RebeccaStevens/template-typescript-node-package/actions/workflows/release.yml/badge.svg)](https://github.com/RebeccaStevens/template-typescript-node-package/actions/workflows/release.yml) +[![CI](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/actions/workflows/release.yml/badge.svg)](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/actions/workflows/release.yml) +[![Coverage Status](https://codecov.io/gh/RebeccaStevens/eslint-config-rebeccastevens/branch/main/graph/badge.svg?token=MVpR1oAbIT)](https://codecov.io/gh/RebeccaStevens/eslint-config-rebeccastevens)\ [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) -[![GitHub Discussions](https://img.shields.io/github/discussions/RebeccaStevens/template-typescript-node-package?style=flat-square)](https://github.com/RebeccaStevens/template-typescript-node-package/discussions) -[![BSD 3 Clause license](https://img.shields.io/github/license/RebeccaStevens/template-typescript-node-package.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) +[![GitHub Discussions](https://img.shields.io/github/discussions/RebeccaStevens/eslint-config-rebeccastevens?style=flat-square)](https://github.com/RebeccaStevens/eslint-config-rebeccastevens/discussions) +[![BSD 3 Clause license](https://img.shields.io/github/license/RebeccaStevens/eslint-config-rebeccastevens.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](https://commitizen.github.io/cz-cli/) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release) -
+## Donate + +[Any donations would be much appreciated](./DONATIONS.md). 😄 ## Installation @@ -32,95 +35,21 @@ Note: This project doesn't strictly follow semantic versioning so be sure to pin ## Usage -### Language - -
- JavaScript (Modern) - -Install Peer Dependencies: +```js +// eslint.config.js +import rsEslint from "@rebeccastevens/eslint-config"; -```sh -pnpm add -D \ - babel-eslint \ - eslint-plugin-eslint-comments \ - eslint-plugin-functional \ - eslint-plugin-import \ - eslint-import-resolver-typescript \ - eslint-plugin-jsdoc \ - eslint-plugin-markdown \ - eslint-plugin-n \ - eslint-plugin-optimize-regex \ - eslint-plugin-promise \ - eslint-plugin-sonarjs \ - eslint-plugin-unicorn -``` - -Configure your project's `.eslintrc.json` file. - -```jsonc -{ - "root": true, - "extends": ["@rebeccastevens/eslint-config/modern"], - "rules": { - // Additional, per-project rules... +export default rsEslint( + { + // general config. }, - "overrides": [ - { - "files": ["**/*.test.ts"], - "rules": {} - } - ] -} -``` - -
- -
- TypeScript - -Install Peer Dependencies: - -```sh -pnpm add -D \ - @typescript-eslint/parser \ - @typescript-eslint/eslint-plugin \ - eslint-plugin-eslint-comments \ - eslint-plugin-functional \ - eslint-plugin-import \ - eslint-import-resolver-typescript \ - eslint-plugin-jsdoc \ - eslint-plugin-markdown \ - eslint-plugin-n \ - eslint-plugin-optimize-regex \ - eslint-plugin-promise \ - eslint-plugin-sonarjs \ - eslint-plugin-unicorn -``` - -Configure your project's `.eslintrc.json` file. - -```jsonc -{ - "root": true, - "parserOptions": { - "project": "tsconfig.json" + { + // project specific config. }, - "extends": [ - "@rebeccastevens/eslint-config/modern", - "@rebeccastevens/eslint-config/typescript" - ], - "rules": { - // Additional, per-project rules... + { + // another project specific config. }, - "overrides": [ - { - "files": ["**/*.test.ts"], - "rules": {} - } - ] -} +); ``` -
- See [ESLint configuration](http://eslint.org/docs/user-guide/configuring) for more information. diff --git a/cspell.config.yml b/cspell.config.yml new file mode 100644 index 00000000..3671e520 --- /dev/null +++ b/cspell.config.yml @@ -0,0 +1,67 @@ +$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json +version: "0.2" + +language: en-US + +dictionaryDefinitions: + - name: project-dictionary + path: ./project-dictionary.txt + addWords: true + +allowCompoundWords: true +caseSensitive: false +useGitignore: true + +dictionaries: + - en_US + - bash + - filetypes + - fonts + - html + - misc + - node + - npm + - softwareTerms + - typescript + - project-dictionary + +import: + - "@cspell/dict-cryptocurrencies/cspell-ext.json" + +ignorePaths: + - .eslintrc.json + - .git + - .gitattributes + - .gitignore + - .husky + - .lintstagedrc.yml + - .markdownlint.json + - .npmrc + - .prettierignore + - .prettierrc.yml + - .vscode + - CHANGELOG.md + - coverage + - cspell.config.yml + - dist + - node_modules + - package.json + - patches + - pnpm-lock.yaml + - project-dictionary.txt + - src/typegen.ts + +ignoreRegExpList: + - /\b[a-f0-9]{6}\b/ui # ignore hex color codes + - /\b[a-z0-9]{32,}\b/ui # ignore long string of hex characters + - /`[^`]*`/u # ignore things in `...` + - /```[\w\W]*?```/u # ignore things in ```...``` + +overrides: + - filename: "**/*.yml" + ignoreRegExpList: + - /^\s*(?:[a-z0-9]|-|_|\"|')+:/ui # ignore keys + + - filename: ".github/(actions|workflows)/*.yml" + ignoreRegExpList: + - /\b(?:[A-Za-z0-9\-_])+\/(?:[A-Za-z0-9\-_])+@v\d+(?:\.\d+){0,2}\b/ui # ignore action diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..a4461515 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,41 @@ +// @ts-check +// @ts-expect-error - Untyped. +import styleMigrate from "@stylistic/eslint-plugin-migrate"; +import JITI from "jiti"; + +const jiti = JITI(import.meta.url); + +/** + * @type {import('./src').default} + */ +const rsEslint = jiti("./src").default; + +export default rsEslint( + { + projectRoot: import.meta.dirname, + mode: "none", + typescript: { + useDefaultDefaultProject: false, + }, + formatters: true, + functional: "lite", + jsonc: true, + markdown: true, + stylistic: true, + yaml: true, + }, + { + rules: { + "jsdoc/require-jsdoc": "off", + }, + }, + { + files: ["src/configs/*.ts"], + plugins: { + "style-migrate": styleMigrate, + }, + rules: { + "style-migrate/migrate": ["error", { namespaceTo: "style" }], + }, + }, +); diff --git a/knip.jsonc b/knip.jsonc index 7d97057a..9cb8fd97 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -1,21 +1,44 @@ { "$schema": "node_modules/knip/schema-jsonc.json", - "entry": ["src/configs/*.ts!"], - "project": ["src/**/*.ts!"], + "entry": ["src/index.ts!", "tests/**/*.test.ts"], + "project": ["src/**/*.ts!", "tests/**/*.ts"], "ignoreDependencies": [ + "@intlify/eslint-plugin-vue-i18n", + "@stylistic/eslint-plugin", "@typescript-eslint/eslint-plugin", "@typescript-eslint/parser", - "eslint", + "@typescript-eslint/utils", + "@unocss/eslint-plugin", + "eslint-config-prettier", + "eslint-flat-config-utils", "eslint-import-resolver-typescript", + "eslint-merge-processors", "eslint-plugin-eslint-comments", + "eslint-plugin-format", "eslint-plugin-functional", - "eslint-plugin-import", + "eslint-plugin-import-x", "eslint-plugin-jsdoc", + "eslint-plugin-jsonc", "eslint-plugin-markdown", "eslint-plugin-n", + "eslint-plugin-no-only-tests", "eslint-plugin-optimize-regex", + "eslint-plugin-prettier", "eslint-plugin-promise", + "eslint-plugin-regexp", "eslint-plugin-sonarjs", + "eslint-plugin-toml", "eslint-plugin-unicorn", + "eslint-plugin-vitest", + "eslint-plugin-vue", + "eslint-plugin-yml", + "eslint-processor-vue-blocks", + "jsonc-eslint-parser", + "prettier-plugin-packagejson", + "prettier", + "toml-eslint-parser", + "tsc-files", + "vue-eslint-parser", + "yaml-eslint-parser", ], } diff --git a/package.json b/package.json index d9a7f6c9..0741efc4 100644 --- a/package.json +++ b/package.json @@ -2,140 +2,273 @@ "name": "@rebeccastevens/eslint-config", "version": "0.0.0-development", "description": "My ESLint shareable config.", - "keywords": [ - "eslint config" - ], + "keywords": ["eslint config"], "homepage": "https://github.com/RebeccaStevens/eslint-config-rebeccastevens#readme", "bugs": { "url": "https://github.com/RebeccaStevens/eslint-config-rebeccastevens/issues" }, - "repository": "git@github.com:RebeccaStevens/eslint-config-rebeccastevens.git", + "repository": { + "type": "git", + "url": "git+https://github.com/RebeccaStevens/eslint-config-rebeccastevens" + }, "license": "BSD-3-Clause", "author": { "name": "Rebecca Stevens", "email": "rebecca.stevens@outlook.co.nz" }, + "type": "module", "exports": { - "./common-overrides": { - "import": "./dist/common-overrides.mjs", - "require": "./dist/common-overrides.cjs" - }, - "./modern": { - "import": "./dist/modern.mjs", - "require": "./dist/modern.cjs" - }, - "./script": { - "import": "./dist/script.mjs", - "require": "./dist/script.cjs" + "types": { + "require": "./dist/index.d.cts", + "import": "./dist/index.d.mts" }, - "./test": { - "import": "./dist/test.mjs", - "require": "./dist/test.cjs" - }, - "./typescript": { - "import": "./dist/typescript.mjs", - "require": "./dist/typescript.cjs" - } + "require": "./dist/index.cjs", + "import": "./dist/index.mjs" }, - "files": [ - "dist/", - "package.json", - "LICENSE", - "README.md" - ], + "files": ["dist/", "package.json", "LICENSE"], "scripts": { "build": "pnpm run build:node", - "build:node": "rimraf dist && rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript", + "build:node": "rimraf dist && pnpm run typegen && rollup -c rollup.config.ts --configPlugin rollup-plugin-ts", "cz": "git-cz", - "generate-preview": "ts-node -P scripts/tsconfig.json -r tsconfig-paths/register scripts/generate-preview.ts", - "lint": "pnpm run lint:js && pnpm run lint:md && pnpm run lint:prettier && pnpm run lint:knip && pnpm run lint:spelling", - "lint:js": "pnpm run build && eslint .", - "lint:js-fix": "pnpm run build && eslint . --fix", + "lint": "pnpm run typegen && pnpm run lint:eslint && pnpm run lint:md && pnpm run lint:knip && pnpm run lint:spelling && pnpm run lint:packages", + "lint-fix": "pnpm run typegen && pnpm run lint:eslint-fix && pnpm run lint:packages-fix", + "lint:eslint": "eslint .", + "lint:eslint-fix": "eslint . --fix", "lint:knip": "pnpm run lint:knip:development && pnpm run lint:knip:production", - "lint:knip:development": "knip --exclude exports", - "lint:knip:production": "knip --production --strict --exclude exports", + "lint:knip:development": "knip --exclude exports,nsExports,types,nsTypes", + "lint:knip:production": "knip --production --strict --exclude exports,nsExports,types,nsTypes", "lint:md": "markdownlint \"**/*.md\" --config=.markdownlint.json --ignore-path=.markdownlintignore", - "lint:prettier": "prettier \"**/*\" --ignore-unknown --list-different", - "lint:prettier-fix": "prettier \"**/*\" --ignore-unknown --write", + "lint:packages": "pnpm dedupe --check", + "lint:packages-fix": "pnpm dedupe", "lint:spelling": "cspell \"**\" \".github/**/*\"", - "prepare": "husky install", + "prepare": "husky && pnpm run typegen", "release": "semantic-release", - "test": "echo no tests", - "type-check": "tsc --noEmit --skipLibCheck" + "typecheck": "pnpm run typegen && tsc --noEmit -p tsconfig.build.json", + "typegen": "tsx scripts/typegen.ts" }, "dependencies": { - "deepmerge-ts": "^5.1.0" + "@antfu/install-pkg": "^0.3.3", + "@clack/prompts": "^0.7.0", + "eslint-flat-config-utils": "^0.3.0", + "eslint-merge-processors": "^0.1.0", + "globals": "^15.9.0", + "local-pkg": "^0.5.0" }, "devDependencies": { - "@commitlint/cli": "19.2.1", - "@commitlint/config-conventional": "19.1.0", + "@commitlint/cli": "19.3.0", + "@commitlint/config-conventional": "19.2.2", "@cspell/dict-cryptocurrencies": "5.0.0", - "@rollup/plugin-commonjs": "25.0.7", - "@rollup/plugin-node-resolve": "15.2.3", - "@rollup/plugin-typescript": "11.1.6", + "@eslint/compat": "1.1.1", + "@intlify/eslint-plugin-vue-i18n": "3.0.0", "@semantic-release/changelog": "6.0.3", - "@semantic-release/commit-analyzer": "12.0.0", + "@semantic-release/commit-analyzer": "13.0.0", "@semantic-release/git": "10.0.1", - "@semantic-release/github": "10.0.2", - "@semantic-release/npm": "12.0.0", - "@semantic-release/release-notes-generator": "13.0.0", - "@types/eslint": "8.56.6", - "@types/eslint-config-prettier": "6.11.3", - "@types/eslint-plugin-prettier": "3.1.3", - "@types/node": "18.11.9", - "@types/rollup-plugin-auto-external": "2.0.5", - "@typescript-eslint/eslint-plugin": "7.3.1", - "@typescript-eslint/parser": "7.3.1", + "@semantic-release/github": "10.1.3", + "@semantic-release/npm": "12.0.1", + "@semantic-release/release-notes-generator": "14.0.1", + "@stylistic/eslint-plugin": "2.6.1", + "@stylistic/eslint-plugin-migrate": "2.6.1", + "@types/eslint": "9.6.0", + "@types/node": "22.1.0", + "@typescript-eslint/eslint-plugin": "8.0.0", + "@typescript-eslint/parser": "8.0.0", + "@typescript-eslint/utils": "8.0.0", + "@unocss/eslint-plugin": "0.61.9", "commitizen": "4.3.0", - "cspell": "8.6.1", + "cspell": "8.13.1", "cz-conventional-changelog": "3.3.0", - "eslint": "9.6.0", + "deassert": "1.0.2", + "eslint": "9.8.0", "eslint-config-prettier": "9.1.0", "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-functional": "6.3.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.1", - "eslint-plugin-markdown": "3.0.1", - "eslint-plugin-n": "16.6.2", + "eslint-plugin-format": "0.1.2", + "eslint-plugin-functional": "7.0.0-rc.1", + "eslint-plugin-import-x": "3.1.0", + "eslint-plugin-jsdoc": "48.11.0", + "eslint-plugin-jsonc": "2.16.0", + "eslint-plugin-markdown": "5.1.0", + "eslint-plugin-n": "17.10.2", + "eslint-plugin-no-only-tests": "3.1.0", "eslint-plugin-optimize-regex": "1.2.1", - "eslint-plugin-prettier": "5.1.3", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-sonarjs": "0.24.0", - "eslint-plugin-unicorn": "51.0.1", - "husky": "9.0.11", - "knip": "5.5.0", - "lint-staged": "15.2.2", - "markdownlint-cli": "0.39.0", - "prettier": "3.2.5", - "prettier-plugin-packagejson": "2.4.12", - "rimraf": "5.0.5", - "rollup": "4.13.0", - "rollup-plugin-auto-external": "2.0.0", - "semantic-release": "23.0.6", - "ts-node": "10.9.2", - "tsconfig-paths": "4.2.0", - "tslib": "2.6.2", - "typescript": "5.4.3" + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-promise": "7.0.0", + "eslint-plugin-regexp": "2.6.0", + "eslint-plugin-sonarjs": "1.0.4", + "eslint-plugin-toml": "0.11.1", + "eslint-plugin-unicorn": "55.0.0", + "eslint-plugin-vitest": "0.5.4", + "eslint-plugin-vue": "9.27.0", + "eslint-plugin-yml": "1.14.0", + "eslint-processor-vue-blocks": "0.1.2", + "eslint-typegen": "0.3.0", + "husky": "9.1.4", + "jiti": "1.21.6", + "jsonc-eslint-parser": "2.4.0", + "knip": "5.27.0", + "lint-staged": "15.2.8", + "markdownlint": "0.34.0", + "markdownlint-cli": "0.41.0", + "prettier": "3.3.3", + "prettier-plugin-packagejson": "2.5.1", + "rimraf": "6.0.1", + "rollup": "4.20.0", + "rollup-plugin-ts": "3.4.5", + "semantic-release": "24.0.0", + "toml-eslint-parser": "0.10.0", + "tsc-files": "1.1.4", + "tsx": "4.16.5", + "typescript": "5.4.5", + "vue-eslint-parser": "9.4.3", + "yaml-eslint-parser": "1.2.3" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=6.0.0", - "@typescript-eslint/parser": ">=6.0.0", - "eslint": ">=8.24.0", + "@stylistic/eslint-plugin": "*", + "@typescript-eslint/eslint-plugin": "*", + "@typescript-eslint/parser": "*", + "@typescript-eslint/utils": "*", + "@unocss/eslint-plugin": "*", + "eslint": "*", + "eslint-config-prettier": "*", + "eslint-flat-config-utils": "*", "eslint-import-resolver-typescript": "*", + "eslint-merge-processors": "*", "eslint-plugin-eslint-comments": "*", - "eslint-plugin-functional": ">=5.0.0", - "eslint-plugin-import": "*", + "eslint-plugin-format": "*", + "eslint-plugin-functional": "*", + "eslint-plugin-import-x": "*", "eslint-plugin-jsdoc": "*", + "eslint-plugin-jsonc": "*", "eslint-plugin-markdown": "*", "eslint-plugin-n": "*", + "eslint-plugin-no-only-tests": "*", "eslint-plugin-optimize-regex": "*", + "eslint-plugin-prettier": "*", "eslint-plugin-promise": "*", + "eslint-plugin-regexp": "*", "eslint-plugin-sonarjs": "*", - "eslint-plugin-unicorn": "*" + "eslint-plugin-toml": "*", + "eslint-plugin-unicorn": "*", + "eslint-plugin-vitest": "*", + "eslint-plugin-vue": "*", + "eslint-plugin-yml": "*", + "eslint-processor-vue-blocks": "*", + "jsonc-eslint-parser": "*", + "prettier": "*", + "prettier-plugin-packagejson": "*", + "toml-eslint-parser": "*", + "vue-eslint-parser": "*", + "yaml-eslint-parser": "*" + }, + "peerDependenciesMeta": { + "@stylistic/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "@typescript-eslint/utils": { + "optional": true + }, + "@unocss/eslint-plugin": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + }, + "eslint-flat-config-utils": { + "optional": true + }, + "eslint-import-resolver-typescript": { + "optional": true + }, + "eslint-merge-processors": { + "optional": true + }, + "eslint-plugin-eslint-comments": { + "optional": true + }, + "eslint-plugin-format": { + "optional": true + }, + "eslint-plugin-functional": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + }, + "eslint-plugin-jsdoc": { + "optional": true + }, + "eslint-plugin-jsonc": { + "optional": true + }, + "eslint-plugin-markdown": { + "optional": true + }, + "eslint-plugin-n": { + "optional": true + }, + "eslint-plugin-no-only-tests": { + "optional": true + }, + "eslint-plugin-optimize-regex": { + "optional": true + }, + "eslint-plugin-prettier": { + "optional": true + }, + "eslint-plugin-promise": { + "optional": true + }, + "eslint-plugin-regexp": { + "optional": true + }, + "eslint-plugin-sonarjs": { + "optional": true + }, + "eslint-plugin-toml": { + "optional": true + }, + "eslint-plugin-unicorn": { + "optional": true + }, + "eslint-plugin-vitest": { + "optional": true + }, + "eslint-plugin-vue": { + "optional": true + }, + "eslint-plugin-yml": { + "optional": true + }, + "eslint-processor-vue-blocks": { + "optional": true + }, + "jsonc-eslint-parser": { + "optional": true + }, + "prettier": { + "optional": true + }, + "prettier-plugin-packagejson": { + "optional": true + }, + "toml-eslint-parser": { + "optional": true + }, + "vue-eslint-parser": { + "optional": true + }, + "yaml-eslint-parser": { + "optional": true + } }, - "packageManager": "pnpm@8.6.2", + "packageManager": "pnpm@9.6.0", "engines": { - "node": ">=18.12.1" + "node": ">=20.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 74e932c3..ffdc834b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,239 +1,4344 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - deepmerge-ts: - specifier: ^5.1.0 - version: 5.1.0 - -devDependencies: - '@commitlint/cli': - specifier: 19.2.1 - version: 19.2.1(@types/node@18.11.9)(typescript@5.4.3) - '@commitlint/config-conventional': - specifier: 19.1.0 - version: 19.1.0 - '@cspell/dict-cryptocurrencies': - specifier: 5.0.0 - version: 5.0.0 - '@rollup/plugin-commonjs': - specifier: 25.0.7 - version: 25.0.7(rollup@4.13.0) - '@rollup/plugin-node-resolve': - specifier: 15.2.3 - version: 15.2.3(rollup@4.13.0) - '@rollup/plugin-typescript': - specifier: 11.1.6 - version: 11.1.6(rollup@4.13.0)(tslib@2.6.2)(typescript@5.4.3) - '@semantic-release/changelog': - specifier: 6.0.3 - version: 6.0.3(semantic-release@23.0.6) - '@semantic-release/commit-analyzer': - specifier: 12.0.0 - version: 12.0.0(semantic-release@23.0.6) - '@semantic-release/git': - specifier: 10.0.1 - version: 10.0.1(semantic-release@23.0.6) - '@semantic-release/github': - specifier: 10.0.2 - version: 10.0.2(semantic-release@23.0.6) - '@semantic-release/npm': - specifier: 12.0.0 - version: 12.0.0(semantic-release@23.0.6) - '@semantic-release/release-notes-generator': - specifier: 13.0.0 - version: 13.0.0(semantic-release@23.0.6) - '@types/eslint': - specifier: 8.56.6 - version: 8.56.6 - '@types/eslint-config-prettier': - specifier: 6.11.3 - version: 6.11.3 - '@types/eslint-plugin-prettier': - specifier: 3.1.3 - version: 3.1.3 - '@types/node': - specifier: 18.11.9 - version: 18.11.9 - '@types/rollup-plugin-auto-external': - specifier: 2.0.5 - version: 2.0.5 - '@typescript-eslint/eslint-plugin': - specifier: 7.3.1 - version: 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@9.6.0)(typescript@5.4.3) - '@typescript-eslint/parser': - specifier: 7.3.1 - version: 7.3.1(eslint@9.6.0)(typescript@5.4.3) - commitizen: - specifier: 4.3.0 - version: 4.3.0(@types/node@18.11.9)(typescript@5.4.3) - cspell: - specifier: 8.6.1 - version: 8.6.1 - cz-conventional-changelog: - specifier: 3.3.0 - version: 3.3.0(@types/node@18.11.9)(typescript@5.4.3) - eslint: - specifier: 9.6.0 - version: 9.6.0 - eslint-config-prettier: - specifier: 9.1.0 - version: 9.1.0(eslint@9.6.0) - eslint-import-resolver-typescript: - specifier: 3.6.1 - version: 3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@9.6.0) - eslint-plugin-eslint-comments: - specifier: 3.2.0 - version: 3.2.0(eslint@9.6.0) - eslint-plugin-functional: - specifier: 6.3.0 - version: 6.3.0(eslint@9.6.0)(typescript@5.4.3) - eslint-plugin-import: - specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) - eslint-plugin-jsdoc: - specifier: 48.2.1 - version: 48.2.1(eslint@9.6.0) - eslint-plugin-markdown: - specifier: 3.0.1 - version: 3.0.1(eslint@9.6.0) - eslint-plugin-n: - specifier: 16.6.2 - version: 16.6.2(eslint@9.6.0) - eslint-plugin-optimize-regex: - specifier: 1.2.1 - version: 1.2.1 - eslint-plugin-prettier: - specifier: 5.1.3 - version: 5.1.3(@types/eslint@8.56.6)(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.2.5) - eslint-plugin-promise: - specifier: 6.1.1 - version: 6.1.1(eslint@9.6.0) - eslint-plugin-sonarjs: - specifier: 0.24.0 - version: 0.24.0(eslint@9.6.0) - eslint-plugin-unicorn: - specifier: 51.0.1 - version: 51.0.1(eslint@9.6.0) - husky: - specifier: 9.0.11 - version: 9.0.11 - knip: - specifier: 5.5.0 - version: 5.5.0(@types/node@18.11.9)(typescript@5.4.3) - lint-staged: - specifier: 15.2.2 - version: 15.2.2 - markdownlint-cli: - specifier: 0.39.0 - version: 0.39.0 - prettier: - specifier: 3.2.5 - version: 3.2.5 - prettier-plugin-packagejson: - specifier: 2.4.12 - version: 2.4.12(prettier@3.2.5) - rimraf: - specifier: 5.0.5 - version: 5.0.5 - rollup: - specifier: 4.13.0 - version: 4.13.0 - rollup-plugin-auto-external: - specifier: 2.0.0 - version: 2.0.0(rollup@4.13.0) - semantic-release: - specifier: 23.0.6 - version: 23.0.6(typescript@5.4.3) - ts-node: - specifier: 10.9.2 - version: 10.9.2(@types/node@18.11.9)(typescript@5.4.3) - tsconfig-paths: - specifier: 4.2.0 - version: 4.2.0 - tslib: - specifier: 2.6.2 - version: 2.6.2 - typescript: - specifier: 5.4.3 - version: 5.4.3 +importers: + + .: + dependencies: + '@antfu/install-pkg': + specifier: ^0.3.3 + version: 0.3.3 + '@clack/prompts': + specifier: ^0.7.0 + version: 0.7.0 + eslint-flat-config-utils: + specifier: ^0.3.0 + version: 0.3.0 + eslint-merge-processors: + specifier: ^0.1.0 + version: 0.1.0(eslint@9.8.0) + globals: + specifier: ^15.9.0 + version: 15.9.0 + local-pkg: + specifier: ^0.5.0 + version: 0.5.0 + devDependencies: + '@commitlint/cli': + specifier: 19.3.0 + version: 19.3.0(@types/node@22.1.0)(typescript@5.4.5) + '@commitlint/config-conventional': + specifier: 19.2.2 + version: 19.2.2 + '@cspell/dict-cryptocurrencies': + specifier: 5.0.0 + version: 5.0.0 + '@eslint/compat': + specifier: 1.1.1 + version: 1.1.1 + '@intlify/eslint-plugin-vue-i18n': + specifier: 3.0.0 + version: 3.0.0(eslint@9.8.0) + '@semantic-release/changelog': + specifier: 6.0.3 + version: 6.0.3(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/commit-analyzer': + specifier: 13.0.0 + version: 13.0.0(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/git': + specifier: 10.0.1 + version: 10.0.1(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/github': + specifier: 10.1.3 + version: 10.1.3(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/npm': + specifier: 12.0.1 + version: 12.0.1(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/release-notes-generator': + specifier: 14.0.1 + version: 14.0.1(semantic-release@24.0.0(typescript@5.4.5)) + '@stylistic/eslint-plugin': + specifier: 2.6.1 + version: 2.6.1(eslint@9.8.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-migrate': + specifier: 2.6.1 + version: 2.6.1(eslint@9.8.0)(typescript@5.4.5) + '@types/eslint': + specifier: 9.6.0 + version: 9.6.0 + '@types/node': + specifier: 22.1.0 + version: 22.1.0 + '@typescript-eslint/eslint-plugin': + specifier: 8.0.0 + version: 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: 8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.4.5) + '@typescript-eslint/utils': + specifier: 8.0.0 + version: 8.0.0(eslint@9.8.0)(typescript@5.4.5) + '@unocss/eslint-plugin': + specifier: 0.61.9 + version: 0.61.9(eslint@9.8.0)(typescript@5.4.5) + commitizen: + specifier: 4.3.0 + version: 4.3.0(@types/node@22.1.0)(typescript@5.4.5) + cspell: + specifier: 8.13.1 + version: 8.13.1 + cz-conventional-changelog: + specifier: 3.3.0 + version: 3.3.0(@types/node@22.1.0)(typescript@5.4.5) + deassert: + specifier: 1.0.2 + version: 1.0.2(rollup@4.20.0) + eslint: + specifier: 9.8.0 + version: 9.8.0 + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@9.8.0) + eslint-import-resolver-typescript: + specifier: 3.6.1 + version: 3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0) + eslint-plugin-eslint-comments: + specifier: 3.2.0 + version: 3.2.0(eslint@9.8.0) + eslint-plugin-format: + specifier: 0.1.2 + version: 0.1.2(eslint@9.8.0) + eslint-plugin-functional: + specifier: 7.0.0-rc.1 + version: 7.0.0-rc.1(eslint@9.8.0)(typescript@5.4.5) + eslint-plugin-import-x: + specifier: 3.1.0 + version: 3.1.0(eslint@9.8.0)(typescript@5.4.5) + eslint-plugin-jsdoc: + specifier: 48.11.0 + version: 48.11.0(eslint@9.8.0) + eslint-plugin-jsonc: + specifier: 2.16.0 + version: 2.16.0(eslint@9.8.0) + eslint-plugin-markdown: + specifier: 5.1.0 + version: 5.1.0(eslint@9.8.0) + eslint-plugin-n: + specifier: 17.10.2 + version: 17.10.2(eslint@9.8.0) + eslint-plugin-no-only-tests: + specifier: 3.1.0 + version: 3.1.0 + eslint-plugin-optimize-regex: + specifier: 1.2.1 + version: 1.2.1 + eslint-plugin-prettier: + specifier: 5.2.1 + version: 5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.8.0))(eslint@9.8.0)(prettier@3.3.3) + eslint-plugin-promise: + specifier: 7.0.0 + version: 7.0.0(eslint@9.8.0) + eslint-plugin-regexp: + specifier: 2.6.0 + version: 2.6.0(eslint@9.8.0) + eslint-plugin-sonarjs: + specifier: 1.0.4 + version: 1.0.4(eslint@9.8.0) + eslint-plugin-toml: + specifier: 0.11.1 + version: 0.11.1(eslint@9.8.0) + eslint-plugin-unicorn: + specifier: 55.0.0 + version: 55.0.0(eslint@9.8.0) + eslint-plugin-vitest: + specifier: 0.5.4 + version: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5) + eslint-plugin-vue: + specifier: 9.27.0 + version: 9.27.0(eslint@9.8.0) + eslint-plugin-yml: + specifier: 1.14.0 + version: 1.14.0(eslint@9.8.0) + eslint-processor-vue-blocks: + specifier: 0.1.2 + version: 0.1.2(@vue/compiler-sfc@3.4.27)(eslint@9.8.0) + eslint-typegen: + specifier: 0.3.0 + version: 0.3.0(eslint@9.8.0) + husky: + specifier: 9.1.4 + version: 9.1.4 + jiti: + specifier: 1.21.6 + version: 1.21.6 + jsonc-eslint-parser: + specifier: 2.4.0 + version: 2.4.0 + knip: + specifier: 5.27.0 + version: 5.27.0(@types/node@22.1.0)(typescript@5.4.5) + lint-staged: + specifier: 15.2.8 + version: 15.2.8 + markdownlint: + specifier: 0.34.0 + version: 0.34.0 + markdownlint-cli: + specifier: 0.41.0 + version: 0.41.0 + prettier: + specifier: 3.3.3 + version: 3.3.3 + prettier-plugin-packagejson: + specifier: 2.5.1 + version: 2.5.1(prettier@3.3.3) + rimraf: + specifier: 6.0.1 + version: 6.0.1 + rollup: + specifier: 4.20.0 + version: 4.20.0 + rollup-plugin-ts: + specifier: 3.4.5 + version: 3.4.5(@babel/runtime@7.24.7)(rollup@4.20.0)(typescript@5.4.5) + semantic-release: + specifier: 24.0.0 + version: 24.0.0(typescript@5.4.5) + toml-eslint-parser: + specifier: 0.10.0 + version: 0.10.0 + tsc-files: + specifier: 1.1.4 + version: 1.1.4(typescript@5.4.5) + tsx: + specifier: 4.16.5 + version: 4.16.5 + typescript: + specifier: 5.4.5 + version: 5.4.5 + vue-eslint-parser: + specifier: 9.4.3 + version: 9.4.3(eslint@9.8.0) + yaml-eslint-parser: + specifier: 1.2.3 + version: 1.2.3 + +packages: + + '@antfu/install-pkg@0.3.3': + resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@apidevtools/json-schema-ref-parser@11.6.4': + resolution: {integrity: sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==} + engines: {node: '>= 16'} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.7': + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.7': + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.24.7': + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.24.7': + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@commitlint/cli@19.3.0': + resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.2.2': + resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.0.3': + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.0.3': + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.0.0': + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + engines: {node: '>=v18'} + + '@commitlint/format@19.3.0': + resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.2.2': + resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.2.2': + resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} + engines: {node: '>=v18'} + + '@commitlint/load@19.2.0': + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} + engines: {node: '>=v18'} + + '@commitlint/message@19.0.0': + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.0.3': + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + engines: {node: '>=v18'} + + '@commitlint/read@19.2.1': + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.1.0': + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.0.3': + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.0.0': + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.0.0': + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + engines: {node: '>=v18'} + + '@commitlint/types@19.0.3': + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + engines: {node: '>=v18'} + + '@cspell/cspell-bundled-dicts@8.13.1': + resolution: {integrity: sha512-ylAwnIdxBMJ9v6BHpFAQFZM+5zbybLtqVQJG7zQePts4e0/Qr2xjYFbC3F+fovZqyXPIx24BR+S6gFJNO1OdAw==} + engines: {node: '>=18'} + + '@cspell/cspell-json-reporter@8.13.1': + resolution: {integrity: sha512-vYZTBRkYjpNBifGNbYQsgIXesDEdUa9QAwllDcLZGKbhh5mY/C1ygPnAVpYDYiJNt1WCeIqW286DUyjRjkmHeA==} + engines: {node: '>=18'} + + '@cspell/cspell-pipe@8.13.1': + resolution: {integrity: sha512-acLWTQv3yWfeWXMds/cfQKZapslOrLHVL4VDp4rFyL/EnfgaCr7Ew9hQ7zAIARY3r/n0dByqWbOt2HKthdhx/g==} + engines: {node: '>=18'} + + '@cspell/cspell-resolver@8.13.1': + resolution: {integrity: sha512-EGdb7KLYCklV3sLxf/895b7s6sExh8DCHZFpDos2hjKwMt+F4ynsu1+ceybQtqoUF/MsyLoJXrrmPvV2uGVmUQ==} + engines: {node: '>=18'} + + '@cspell/cspell-service-bus@8.13.1': + resolution: {integrity: sha512-oLFJfxuB1rwGXn3eD5qSF9nf0lHu6YjO0JcrjWhAZQ0r3AsO97gsX50wwCFCw6szVU3rd1cTUktW0KYEZUY6dA==} + engines: {node: '>=18'} + + '@cspell/cspell-types@8.13.1': + resolution: {integrity: sha512-9dJdmyXLXJVesCJa/DWgwKsEC9p2RRFc6KORcLhNvtm1tE9TvCXiu5jV47sOmYXd6Hwan8IurBXXTz82CLVjPQ==} + engines: {node: '>=18'} + + '@cspell/dict-ada@4.0.2': + resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} + + '@cspell/dict-aws@4.0.3': + resolution: {integrity: sha512-0C0RQ4EM29fH0tIYv+EgDQEum0QI6OrmjENC9u98pB8UcnYxGG/SqinuPxo+TgcEuInj0Q73MsBpJ1l5xUnrsw==} + + '@cspell/dict-bash@4.1.3': + resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} + + '@cspell/dict-companies@3.1.3': + resolution: {integrity: sha512-qaAmfKtQLA7Sbe9zfFVpcwyG92cx6+EiWIpPURv11Ng2QMv2PKhYcterUJBooAvgqD0/qq+AsLN8MREloY5Mdw==} + + '@cspell/dict-cpp@5.1.12': + resolution: {integrity: sha512-6lXLOFIa+k/qBcu0bjaE/Kc6v3sh9VhsDOXD1Dalm3zgd0QIMjp5XBmkpSdCAK3pWCPV0Se7ysVLDfCea1BuXg==} + + '@cspell/dict-cryptocurrencies@5.0.0': + resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} + + '@cspell/dict-csharp@4.0.2': + resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==} + + '@cspell/dict-css@4.0.12': + resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==} + + '@cspell/dict-dart@2.0.3': + resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} + + '@cspell/dict-data-science@2.0.1': + resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==} + + '@cspell/dict-django@4.1.0': + resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} + + '@cspell/dict-docker@1.1.7': + resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==} + + '@cspell/dict-dotnet@5.0.2': + resolution: {integrity: sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==} + + '@cspell/dict-elixir@4.0.3': + resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} + + '@cspell/dict-en-common-misspellings@2.0.3': + resolution: {integrity: sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw==} + + '@cspell/dict-en-gb@1.1.33': + resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} + + '@cspell/dict-en_us@4.3.23': + resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==} + + '@cspell/dict-filetypes@3.0.4': + resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==} + + '@cspell/dict-fonts@4.0.0': + resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==} + + '@cspell/dict-fsharp@1.0.1': + resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} + + '@cspell/dict-fullstack@3.2.0': + resolution: {integrity: sha512-sIGQwU6G3rLTo+nx0GKyirR5dQSFeTIzFTOrURw51ISf+jKG9a3OmvsVtc2OANfvEAOLOC9Wfd8WYhmsO8KRDQ==} + + '@cspell/dict-gaming-terms@1.0.5': + resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} + + '@cspell/dict-git@3.0.0': + resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} + + '@cspell/dict-golang@6.0.9': + resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==} + + '@cspell/dict-google@1.0.1': + resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==} + + '@cspell/dict-haskell@4.0.1': + resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} + + '@cspell/dict-html-symbol-entities@4.0.0': + resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} + + '@cspell/dict-html@4.0.5': + resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} + + '@cspell/dict-java@5.0.7': + resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==} + + '@cspell/dict-julia@1.0.1': + resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} + + '@cspell/dict-k8s@1.0.6': + resolution: {integrity: sha512-srhVDtwrd799uxMpsPOQqeDJY+gEocgZpoK06EFrb4GRYGhv7lXo9Fb+xQMyQytzOW9dw4DNOEck++nacDuymg==} + + '@cspell/dict-latex@4.0.0': + resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} + + '@cspell/dict-lorem-ipsum@4.0.0': + resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==} + + '@cspell/dict-lua@4.0.3': + resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==} + + '@cspell/dict-makefile@1.0.0': + resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==} + + '@cspell/dict-monkeyc@1.0.6': + resolution: {integrity: sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==} + + '@cspell/dict-node@5.0.1': + resolution: {integrity: sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==} + + '@cspell/dict-npm@5.0.18': + resolution: {integrity: sha512-weMTyxWpzz19q4wv9n183BtFvdD5fCjtze+bFKpl+4rO/YlPhHL2cXLAeexJz/VDSBecwX4ybTZYoknd1h2J4w==} + + '@cspell/dict-php@4.0.8': + resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==} + + '@cspell/dict-powershell@5.0.5': + resolution: {integrity: sha512-3JVyvMoDJesAATYGOxcUWPbQPUvpZmkinV3m8HL1w1RrjeMVXXuK7U1jhopSneBtLhkU+9HKFwgh9l9xL9mY2Q==} + + '@cspell/dict-public-licenses@2.0.7': + resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==} + + '@cspell/dict-python@4.2.3': + resolution: {integrity: sha512-C1CPX9wwEGgcHv/p7KfjuIOp1G6KNyx5gWYweAd6/KPv+ZpeM1v572zFUTmpO8WDuAfKFf00nqYL8/GmCENWBw==} + + '@cspell/dict-r@2.0.1': + resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} + + '@cspell/dict-ruby@5.0.2': + resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} + + '@cspell/dict-rust@4.0.5': + resolution: {integrity: sha512-DIvlPRDemjKQy8rCqftAgGNZxY5Bg+Ps7qAIJjxkSjmMETyDgl0KTVuaJPt7EK4jJt6uCZ4ILy96npsHDPwoXA==} + + '@cspell/dict-scala@5.0.3': + resolution: {integrity: sha512-4yGb4AInT99rqprxVNT9TYb1YSpq58Owzq7zi3ZS5T0u899Y4VsxsBiOgHnQ/4W+ygi+sp+oqef8w8nABR2lkg==} + + '@cspell/dict-software-terms@4.0.3': + resolution: {integrity: sha512-65QAVMc3YlcI7PcqWRY5ox53tTWC8aktUZdJYCVs4VDBPUCTSDnTSmSreeg4F5Z468clv9KF/S0PkxbLjgW72A==} + + '@cspell/dict-sql@2.1.3': + resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==} + + '@cspell/dict-svelte@1.0.2': + resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==} + + '@cspell/dict-swift@2.0.1': + resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} + + '@cspell/dict-terraform@1.0.0': + resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} + + '@cspell/dict-typescript@3.1.6': + resolution: {integrity: sha512-1beC6O4P/j23VuxX+i0+F7XqPVc3hhiAzGJHEKqnWf5cWAXQtg0xz3xQJ5MvYx2a7iLaSa+lu7+05vG9UHyu9Q==} + + '@cspell/dict-vue@3.0.0': + resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} + + '@cspell/dynamic-import@8.13.1': + resolution: {integrity: sha512-jMqJHWmQy+in99JMSFlaGV9P033gCx7DCZvGO/ZSeZ2EatrUTanJk3oTG1TZknZydb0nnxr1mgTWXN7PCAAXDg==} + engines: {node: '>=18.0'} + + '@cspell/strong-weak-map@8.13.1': + resolution: {integrity: sha512-ga1ibI9ZLJWNszfP7e6qQ8gnoQOP9rE/clALMAim9ssO6cmMhEEm+i1ROH4nsDfThd6sVlUJ0IOtx5dEqPmWxw==} + engines: {node: '>=18'} + + '@cspell/url@8.13.1': + resolution: {integrity: sha512-cCyojz5ovgGCexhez2urle4Q1UOEsp96lvl4pDmWNDHa/6n8dqiIn60SVzQIsAHzJ4yEV077RSaIrTlq/T+oSQ==} + engines: {node: '>=18.0'} + + '@dprint/formatter@0.3.0': + resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==} + + '@dprint/markdown@0.17.1': + resolution: {integrity: sha512-Mk9C9tHHSScB3JOUd2PEP3keWnJZ8Kqcd99qaVhknzhxgZF/gGTx0CMyd+lpsIV+Moe+OtbRnqAjp+hKVtT1zQ==} + + '@dprint/toml@0.6.2': + resolution: {integrity: sha512-Mk5unEANsL/L+WHYU3NpDXt1ARU5bNU5k5OZELxaJodDycKG6RoRnSlZXpW6+7UN2PSnETAFVUdKrh937ZwtHA==} + + '@es-joy/jsdoccomment@0.46.0': + resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} + engines: {node: '>=16'} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint-stylistic/metadata@2.6.1': + resolution: {integrity: sha512-cjM6wojoJbLCyZWyil8IwLnj+eAke7CIzenxJrKnHDe+NGUAbP9q3xQ5F5idgkFJfNhCwJ1WjwUpxJH7mptLWg==} + + '@eslint/compat@1.1.1': + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-array@0.17.1': + resolution: {integrity: sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.8.0': + resolution: {integrity: sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} + + '@intlify/core-base@9.13.1': + resolution: {integrity: sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==} + engines: {node: '>= 16'} + + '@intlify/eslint-plugin-vue-i18n@3.0.0': + resolution: {integrity: sha512-s4fe+VOiqMZGhDrXWnL1xLyHbcFWBcEBeD/KpVrkOtL+utH2LPTi7uZ8RvWSthMS0mUL/7L74hFJ//OUU7AYww==} + engines: {node: '>=18.0.0'} + peerDependencies: + eslint: ^8.0.0 || ^9.0.0-0 + + '@intlify/message-compiler@9.13.1': + resolution: {integrity: sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==} + engines: {node: '>= 16'} + + '@intlify/shared@9.13.1': + resolution: {integrity: sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==} + engines: {node: '>= 16'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + + '@mdn/browser-compat-data@5.5.32': + resolution: {integrity: sha512-viN2VaUd1Hj2VpTDtKVT6LYfBnxzUgXJ+LSQfzuzaHa5mZBlvR3wSxMyUqbfywBbnIWHyKNwz6Yrcdpa4zEOZw==} + + '@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'} + + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} + engines: {node: '>= 18'} + + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} + engines: {node: '>= 18'} + + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + + '@octokit/plugin-paginate-rest@11.3.0': + resolution: {integrity: sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-retry@7.1.1': + resolution: {integrity: sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-throttling@9.3.0': + resolution: {integrity: sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^6.0.0 + + '@octokit/request-error@6.1.1': + resolution: {integrity: sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==} + engines: {node: '>= 18'} + + '@octokit/request@9.1.1': + resolution: {integrity: sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==} + engines: {node: '>= 18'} + + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + 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.20.0': + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.20.0': + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.20.0': + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.20.0': + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.20.0': + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.20.0': + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.20.0': + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.20.0': + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + cpu: [x64] + os: [win32] + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@semantic-release/changelog@6.0.3': + resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/commit-analyzer@13.0.0': + resolution: {integrity: sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/error@3.0.0': + resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} + engines: {node: '>=14.17'} + + '@semantic-release/error@4.0.0': + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} + + '@semantic-release/git@10.0.1': + resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/github@10.1.3': + resolution: {integrity: sha512-QVw7YT3J4VqyVjOnlRsFA3OCERAJHER4QbSPupbav3ER0fawrs2BAWbQFjsr24OAD4KTTKMZsVzF+GYFWCDtaQ==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/npm@12.0.1': + resolution: {integrity: sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/release-notes-generator@14.0.1': + resolution: {integrity: sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@snyk/github-codeowners@1.1.0': + resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} + engines: {node: '>=8.10'} + hasBin: true + + '@stylistic/eslint-plugin-js@2.6.1': + resolution: {integrity: sha512-iLOiVzcvqzDGD9U0EuVOX680v+XOPiPAjkxWj+Q6iV2GLOM5NB27tKVOpJY7AzBhidwpRbaLTgg3T4UzYx09jw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-jsx@2.6.1': + resolution: {integrity: sha512-5qHLXqxfY6jubAQfDqrifv41fx7gaqA9svDaChxMI6JiHpEBfh+PXxmm3g+B8gJCYVBTC62Rjl0Ny5QabK58bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin-migrate@2.6.1': + resolution: {integrity: sha512-v4RID0iIaGTcPC304IYkV/J/BWQVupneH8oHs0vudKGLenicnGHFdURsruyoEKqBUwcIO+v7QNoizzVrrzqEUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@stylistic/eslint-plugin-plus@2.6.1': + resolution: {integrity: sha512-z/IYu/q8ipApzNam5utSU+BrXg4pK/Gv9xNbr4eWv/bZppvTWJU62xCO4nw/6r2dHNPnqc7uCHEC7GMlBnPY0A==} + peerDependencies: + eslint: '*' + + '@stylistic/eslint-plugin-ts@2.6.1': + resolution: {integrity: sha512-Mxl1VMorEG1Hc6oBYPD0+KIJOWkjEF1R0liL7wWgKfwpqOkgmnh5lVdZBrYyfRKOE4RlGcwEFTNai1IW6orgVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@stylistic/eslint-plugin@2.6.1': + resolution: {integrity: sha512-UT0f4t+3sQ/GKW7875NiIIjZJ1Bh4gd7JNfoIkwIQyWqO7wGd0Pqzu0Ho30Ka8MNF5lm++SkVeqAk26vGxoUpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@types/conventional-commits-parser@5.0.0': + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + + '@types/eslint@9.6.0': + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@22.1.0': + resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/object-path@0.11.4': + resolution: {integrity: sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/ua-parser-js@0.7.39': + resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + + '@types/unist@2.0.10': + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + + '@typescript-eslint/eslint-plugin@8.0.0': + resolution: {integrity: sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.0.0': + resolution: {integrity: sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@8.0.0': + resolution: {integrity: sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/type-utils@8.0.0': + resolution: {integrity: sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.0.0': + resolution: {integrity: sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.0.0': + resolution: {integrity: sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@8.0.0': + resolution: {integrity: sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.0.0': + resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@unocss/config@0.61.9': + resolution: {integrity: sha512-ATvZEFMQiW3/oUaaplVMBYuagEELtnLbHSYH4pUGbJ5MALAfV98mZRyk4FkKkYoMYqWLGdCylzpgMPFDOuFQlQ==} + engines: {node: '>=14'} + + '@unocss/core@0.61.9': + resolution: {integrity: sha512-2W1YZQIWXcueGdbXU/ZCqn/8yQhWk8e8kAHFkVlbc9rictkd2UmPB9nIZ8Ii1tMwt6F0TT6vfHbLJEGCV08o2g==} + + '@unocss/eslint-plugin@0.61.9': + resolution: {integrity: sha512-jgOym3WyWXAWyjkrtIZurkl87XuWAwhN8mul8V4mokpFMB5y6VMlatCYql/dD0tIyZuFJujxfWvUkizqyE84aQ==} + engines: {node: '>=14'} + + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + + '@wessberg/stringutil@1.0.19': + resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} + engines: {node: '>=8.0.0'} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} + engines: {node: '>=14.16'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + 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'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + argv-formatter@1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + + 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-generator@2.1.0: + resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} + + browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001629: + resolution: {integrity: sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==} + + chalk-template@1.1.0: + resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} + engines: {node: '>=14.16'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + + clear-module@4.1.2: + resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + engines: {node: '>=8'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + comment-json@4.2.4: + resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} + engines: {node: '>= 6'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + commitizen@4.3.0: + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} + hasBin: true + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + compatfactory@3.0.0: + resolution: {integrity: sha512-WD5kF7koPwVoyKL8p0LlrmIZtilrD46sQStyzzxzTFinMKN2Dxk1hN+sddLSQU1mGIZvQfU8c+ONSghvvM40jg==} + engines: {node: '>=14.9.0'} + peerDependencies: + typescript: '>=3.x || >= 4.x || >= 5.x' + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-changelog-writer@8.0.0: + resolution: {integrity: sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==} + engines: {node: '>=18'} + hasBin: true + + conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + conventional-commits-parser@6.0.0: + resolution: {integrity: sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==} + engines: {node: '>=18'} + hasBin: true + + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig-typescript-loader@5.0.0: + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crosspath@2.0.0: + resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} + engines: {node: '>=14.9.0'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + cspell-config-lib@8.13.1: + resolution: {integrity: sha512-sXUFOyxvk+qDkoQdFkVEqj1hfQWzMi+tbi6ksiotQaqpm7r+YitZLSgwJjN4xgDO/rTLyP70k9fagdZ67MVZbw==} + engines: {node: '>=18'} + + cspell-dictionary@8.13.1: + resolution: {integrity: sha512-Z0T4J4ahOJaHmWq83w24KXGik1zeauO5WvDRyzDyaSgpbA5MN2hN98LvxaIx72g3I+trtRK77XFcKginuME9EA==} + engines: {node: '>=18'} + + cspell-gitignore@8.13.1: + resolution: {integrity: sha512-XyZ3X5d6x0gkWtNXSAQRcPMG41bEdLx9cTgZCYCJhEZCesU1VpNm60F3oc11dMLkO+BqPH3An+AO/YEIiaje3A==} + engines: {node: '>=18'} + hasBin: true + + cspell-glob@8.13.1: + resolution: {integrity: sha512-rW1A3t7YvPXxcC4z1pp1m9coeWzUVUmRjUw3vMNGlEDC2zecB39KKbEqesziBqnBceNAY7O5itllIGFKr03vqA==} + engines: {node: '>=18'} + + cspell-grammar@8.13.1: + resolution: {integrity: sha512-HUkd24bulvBwee1UNBurxGlPUOiywb9pB34iXXoxFWuloHohZ/DuFlE8B/31ZtjW48ffEYIu3QZfWhcnD8e81w==} + engines: {node: '>=18'} + hasBin: true + + cspell-io@8.13.1: + resolution: {integrity: sha512-t2sgZuWGBzPSOAStfvz/U3KoFEfDxEt1cXZj0Kd0Vs36v2uoLktm6ihMe7XNFu7zIdOFSajsYQ8Bi4RSLPGPxQ==} + engines: {node: '>=18'} + + cspell-lib@8.13.1: + resolution: {integrity: sha512-H1HHG1pmATSeAaY0KmQ0xnkbSqJLvh9QpXWARDLWKUBvtE+/l44H4yVhIp/No3rM7PKMmb82GuSJzMaoIhHFLQ==} + engines: {node: '>=18'} + + cspell-trie-lib@8.13.1: + resolution: {integrity: sha512-2moCsIYDmMT7hp5Non3CvWatfXptFWCuxjbXQGDNvWJ2Cj3oso/oBe4802GJv5GEenv9QBWmEtum/E7rFcx4JA==} + engines: {node: '>=18'} + + cspell@8.13.1: + resolution: {integrity: sha512-Bqppilpwx9xt3jZPaYcqe1JPteNmfKhx9pw9YglZEePDUzdiJQNVIfs31589GAnXjgdqqctR8N87ffLcaBNPXw==} + engines: {node: '>=18'} + hasBin: true + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cz-conventional-changelog@3.3.0: + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + deassert@1.0.2: + resolution: {integrity: sha512-cF1/OfxthRQkkC4vOGVT9fs0wuPWIBAPzEk/YI1XSq3JZdgSXmLW1aEegpNLq9VgypeAtmvI8vHiQ31YBK5vvQ==} + hasBin: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge-ts@7.1.0: + resolution: {integrity: sha512-q6bNsfNBtgr8ZOQqmZbl94MmYWm+QcDNIkqCxVWiw1vKvf+y/N2dZQKdnDXn4c5Ygt/y63tDof6OCN+2YwWVEg==} + engines: {node: '>=16.0.0'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + 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'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + + detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + 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'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + easy-table@1.2.0: + resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + + electron-to-chromium@1.4.796: + resolution: {integrity: sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA==} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-ci@11.0.0: + resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} + engines: {node: ^18.17 || >=20.6.1} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-flat-config-utils@0.3.0: + resolution: {integrity: sha512-FaFQLUunAl6YK7aU/pT23DXYVWg/cEHbSfxwAxpCGT6Su8H9RfkmzKLh1G2bba46p6dTlQeA4VTiV5//0SeToQ==} + + eslint-formatting-reporter@0.0.0: + resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} + peerDependencies: + eslint: '>=8.40.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.1: + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-module-utils@2.8.1: + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-parser-plain@0.1.0: + resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==} + + eslint-plugin-es-x@7.7.0: + resolution: {integrity: sha512-aP3qj8BwiEDPttxQkZdI221DLKq9sI/qHolE2YSQL1/9+xk7dTV+tB1Fz8/IaCA+lnLA1bDEnvaS2LKs0k2Uig==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-eslint-comments@3.2.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-format@0.1.2: + resolution: {integrity: sha512-ZrcO3aiumgJ6ENAv65IWkPjtW77ML/5mp0YrRK0jdvvaZJb+4kKWbaQTMr/XbJo6CtELRmCApAziEKh7L2NbdQ==} + peerDependencies: + eslint: ^8.40.0 || ^9.0.0 + + eslint-plugin-functional@7.0.0-rc.1: + resolution: {integrity: sha512-CNFH2sDr+NQ4RLYPJkZWKxK6tYL3t1Pr0TvzzykkOT1dk3SS8qMpDSSICm+nPTwXCTv1Y/FhGeWpzUqObJaRGw==} + engines: {node: '>=v18.18.0'} + peerDependencies: + eslint: ^9.0.0 + typescript: '>=4.7.4' + peerDependenciesMeta: + typescript: + optional: true + + eslint-plugin-import-x@3.1.0: + resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^8.56.0 || ^9.0.0-0 + + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsdoc@48.11.0: + resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-markdown@5.1.0: + resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + + eslint-plugin-optimize-regex@1.2.1: + resolution: {integrity: sha512-fUaU7Tj1G/KSTDTABJw4Wp427Rl7RPl9ViYTu1Jrv36fJw4DFhd4elPdXiuYtdPsNsvzn9GcVlKEssGIVjw0UQ==} + engines: {node: '>=10'} + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + 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-promise@7.0.0: + resolution: {integrity: sha512-wb1ECT+b90ndBdAujhIdAU8oQ3Vt5gKqP/t78KOmg0ifynrvc2jGR9f6ndbOVNFpKf6jLUBlBBDF3H3Wk0JICg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-sonarjs@1.0.4: + resolution: {integrity: sha512-jF0eGCUsq/HzMub4ExAyD8x1oEgjOyB9XVytYGyWgSFvdiJQJp6IuP7RmtauCf06o6N/kZErh+zW4b10y1WZ+Q==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^8.0.0 || ^9.0.0 + + eslint-plugin-toml@0.11.1: + resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-vitest@0.5.4: + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} + engines: {node: ^18.0.0 || >= 20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: ^8.57.0 || ^9.0.0 + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + vitest: + optional: true + + eslint-plugin-vue@9.27.0: + resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-typegen@0.3.0: + resolution: {integrity: sha512-NXuFC16JBS8H11cD8DJcmSzpv2+MljyDvksSbx4ak5zXebk7SEFMIdk/idYGXgevs0Lz4BClYG7b4MtD0+tFVg==} + peerDependencies: + eslint: ^8.45.0 || ^9.0.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.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.8.0: + resolution: {integrity: sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + 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-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + 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==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + execa@9.2.0: + resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==} + engines: {node: ^18.19.0 || >=20.5.0} + + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + 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-equals@5.0.1: + resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} + engines: {node: '>=6.0.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + 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.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-entry-cache@9.0.0: + resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} + engines: {node: '>=18'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + + 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'} + + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} + + findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + 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-timeout@1.0.2: + resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} + engines: {node: '>=18'} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensequence@7.0.0: + resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} + engines: {node: '>=18'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + + git-hooks-list@3.1.0: + resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} + + git-log-parser@1.2.0: + resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + + 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.1: + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + 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'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + 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==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + 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'} + + helpertypes@0.0.19: + resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} + engines: {node: '>=10.0.0'} + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + hook-std@3.0.0: + resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + human-signals@7.0.0: + resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + engines: {node: '>=18.18.0'} + + husky@9.1.4: + resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-from-esm@1.3.4: + resolution: {integrity: sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==} + engines: {node: '>=16.20'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + + importx@0.4.3: + resolution: {integrity: sha512-x6E6OxmWq/SUaj7wDeDeSjyHP+rMUbEaqJ5fw0uEtC/FTX9ocxNMFJ+ONnpJIsRpFz3ya6qJAK4orwSKqw0BSQ==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-immutable-type@4.0.0: + resolution: {integrity: sha512-gyFBCXv+NikTs8/PGZhgjbMmFZQ5jvHGZIsVu6+/9Bk4K7imlWBIDN7hTr9fNioGzFg71I4YM3z8f0aKXarTAw==} + peerDependencies: + eslint: '*' + typescript: '>=4.7.4' + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-language-code@3.1.0: + resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbot@3.8.0: + resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==} + engines: {node: '>=12'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + issue-parser@7.0.1: + resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} + engines: {node: ^18.17 || >=20.6.1} + + jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + engines: {node: '>=14'} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} + + java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + jiti@2.0.0-beta.2: + resolution: {integrity: sha512-c+PHQZakiQuMKbnhvrjZUvrK6E/AfmTOf4P+E3Y4FNVHcNMX9e/XrnbEvO+m4wS6ZjsvhHh/POQTlfy8uXFc0A==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-to-typescript-lite@14.0.1: + resolution: {integrity: sha512-MhjvNC3MfEyYmKiC1rEzwDTCc22+hWU/2HKVfnklar4tifbkT8oZvvamEG1n550JeCmJ0V+2ly+5fF5K+lIExg==} + + 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@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + knip@5.27.0: + resolution: {integrity: sha512-W8+jhO7i5pXRUqOzhJGm2DT5/d9aQjyrYTCSojqJxFOvi7ku/nHKzpBO3WNf4eflJo0t3zitmUkM69g53qoZQw==} + engines: {node: '>=18.6.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4' + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + lint-staged@15.2.8: + resolution: {integrity: sha512-PUWFf2zQzsd9EFU+kM1d7UP+AZDbKFKuj+9JNVTBkhUFhbg4MAt6WfyMMwBfM4lYqd4D2Jwac5iuTu9rVj4zCQ==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + engines: {node: '>=18.0.0'} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + + 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'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + markdownlint-cli@0.41.0: + resolution: {integrity: sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==} + engines: {node: '>=18'} + hasBin: true + + markdownlint-micromark@0.1.9: + resolution: {integrity: sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==} + engines: {node: '>=18'} + + markdownlint@0.34.0: + resolution: {integrity: sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==} + engines: {node: '>=18'} + + marked-terminal@7.0.0: + resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <13' + + marked@12.0.2: + resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} + engines: {node: '>= 18'} + hasBin: true + + mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + + mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + + micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mime@4.0.3: + resolution: {integrity: sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + 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'} + + minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@6.0.1: + resolution: {integrity: sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npm@10.8.1: + resolution: {integrity: sha512-Dp1C6SvSMYQI7YHq/y2l94uvI+59Eqbu1EpuKQHQ8p16txXRuRit5gH3Lnaagk2aXDIjg/Iru9pd05bnneKgdw==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/promise-spawn' + - '@npmcli/redact' + - '@npmcli/run-script' + - '@sigstore/tuf' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - normalize-package-data + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - semver + - spdx-expression-parse + - ssri + - supports-color + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-path@0.11.8: + resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} + engines: {node: '>= 10.12.0'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + 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'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + + p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} + + p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + 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-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + 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-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + engines: {node: '>=18'} + + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + + p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse-imports@2.1.1: + resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + engines: {node: '>= 18'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + 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-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + 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'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + 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-plugin-packagejson@2.5.1: + resolution: {integrity: sha512-6i4PW1KxEA+VrokYNGeI/q8qQX3u5DNBc7eLr9GX4OrvWr9DMls1lhbuNopkKG7Li9rTNxerWnYQyjxoUO4ROA==} + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rollup-plugin-ts@3.4.5: + resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} + peerDependencies: + '@babel/core': '>=7.x' + '@babel/plugin-transform-runtime': '>=7.x' + '@babel/preset-env': '>=7.x' + '@babel/preset-typescript': '>=7.x' + '@babel/runtime': '>=7.x' + '@swc/core': '>=1.x' + '@swc/helpers': '>=0.2' + rollup: '>=1.x || >=2.x || >=3.x' + typescript: '>=3.2.x || >= 4.x || >= 5.x' + peerDependenciesMeta: + '@babel/core': + optional: true + '@babel/plugin-transform-runtime': + optional: true + '@babel/preset-env': + optional: true + '@babel/preset-typescript': + optional: true + '@babel/runtime': + optional: true + '@swc/core': + optional: true + '@swc/helpers': + optional: true + + rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-con@1.3.2: + resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semantic-release@24.0.0: + resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + 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'} + + 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@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smol-toml@1.2.1: + resolution: {integrity: sha512-OtZKrVrGIT+m++lxyF0z5n68nkwdgZotPhy89bfA4T7nSWe0xeQtfbjM1z5VLTilJdWXH46g8i0oAcpQNkzZTg==} + engines: {node: '>= 18', pnpm: '>= 9'} + + sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + + sort-package-json@2.10.0: + resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} + hasBin: true + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + 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-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} -packages: + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} + engines: {node: '>=14.16'} + + summary@2.1.0: + resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + + super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + traverse@0.6.9: + resolution: {integrity: sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==} + engines: {node: '>= 0.4'} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-clone-node@3.0.0: + resolution: {integrity: sha512-egavvyHbIoelkgh1IC2agNB1uMNjB8VJgh0g/cn0bg2XXTcrtjrGMzEk4OD3Fi2hocICjP3vMa56nkzIzq0FRg==} + engines: {node: '>=14.9.0'} + peerDependencies: + typescript: ^3.x || ^4.x || ^5.x + + ts-declaration-location@1.0.4: + resolution: {integrity: sha512-r4JoxYhKULbZuH81Pjrp9OEG5St7XWk7zXwGkLKhmVcjiBVHTJXV5wK6dEa9JKW5QGSTW6b1lOjxAKp8R1SQhg==} + peerDependencies: + typescript: '>=4.0.0' + + tsc-files@1.1.4: + resolution: {integrity: sha512-RePsRsOLru3BPpnf237y1Xe1oCGta8rmSYzM76kYo5tLGsv5R2r3s64yapYorGTPuuLyfS9NVbh9ydzmvNie2w==} + hasBin: true + peerDependencies: + typescript: '>=3' + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsx@4.16.5: + resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.20.0: + resolution: {integrity: sha512-MBh+PHUHHisjXf4tlx0CFWoMdjx8zCMLJHOjnV1prABYZFHqtFOyauCIK2/7w4oIfwkF8iNhLtnJEfVY2vn3iw==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray.prototype.slice@1.0.3: + resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + engines: {node: '>= 0.4'} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@1.0.38: + resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + unconfig@0.5.5: + resolution: {integrity: sha512-VQZ5PT9HDX+qag0XdgQi8tJepPhXiR/yVOkn707gJDKo31lGjRilPREiQJ9Z6zd/Ugpv6ZvO5VxVIcatldYcNQ==} + + undici-types@6.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - dev: true - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + yoctocolors@2.0.2: + resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} + engines: {node: '>=18'} + + zod-validation-error@3.3.0: + resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@antfu/install-pkg@0.3.3': dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - dev: true + '@jsdevtools/ez-spawn': 3.0.4 - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - dev: true + '@antfu/utils@0.7.10': {} - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + '@apidevtools/json-schema-ref-parser@11.6.4': + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + js-yaml: 4.1.0 + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/helper-string-parser@7.24.7': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 - dev: true + picocolors: 1.0.1 - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true + '@babel/parser@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/runtime@7.24.7': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/types@7.24.7': + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@clack/core@0.3.4': + dependencies: + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.1 + sisteransi: 1.0.5 + + '@colors/colors@1.5.0': optional: true - /@commitlint/cli@19.2.1(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} - engines: {node: '>=v18'} - hasBin: true + '@commitlint/cli@19.3.0(@types/node@22.1.0)(typescript@5.4.5)': dependencies: - '@commitlint/format': 19.0.3 - '@commitlint/lint': 19.1.0 - '@commitlint/load': 19.2.0(@types/node@18.11.9)(typescript@5.4.3) + '@commitlint/format': 19.3.0 + '@commitlint/lint': 19.2.2 + '@commitlint/load': 19.2.0(@types/node@22.1.0)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 - yargs: 17.7.1 + yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - dev: true - /@commitlint/config-conventional@19.1.0: - resolution: {integrity: sha512-KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==} - engines: {node: '>=v18'} + '@commitlint/config-conventional@19.2.2': dependencies: '@commitlint/types': 19.0.3 conventional-changelog-conventionalcommits: 7.0.2 - dev: true - /@commitlint/config-validator@19.0.3: - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} - engines: {node: '>=v18'} + '@commitlint/config-validator@19.0.3': dependencies: '@commitlint/types': 19.0.3 - ajv: 8.12.0 - dev: true + ajv: 8.16.0 - /@commitlint/ensure@19.0.3: - resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} - engines: {node: '>=v18'} + '@commitlint/ensure@19.0.3': dependencies: '@commitlint/types': 19.0.3 lodash.camelcase: 4.3.0 @@ -241,504 +4346,377 @@ packages: lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 - dev: true - /@commitlint/execute-rule@19.0.0: - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} - engines: {node: '>=v18'} - dev: true + '@commitlint/execute-rule@19.0.0': {} - /@commitlint/format@19.0.3: - resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} - engines: {node: '>=v18'} + '@commitlint/format@19.3.0': dependencies: '@commitlint/types': 19.0.3 chalk: 5.3.0 - dev: true - /@commitlint/is-ignored@19.0.3: - resolution: {integrity: sha512-MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==} - engines: {node: '>=v18'} + '@commitlint/is-ignored@19.2.2': dependencies: '@commitlint/types': 19.0.3 - semver: 7.6.0 - dev: true + semver: 7.6.3 - /@commitlint/lint@19.1.0: - resolution: {integrity: sha512-ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==} - engines: {node: '>=v18'} + '@commitlint/lint@19.2.2': dependencies: - '@commitlint/is-ignored': 19.0.3 + '@commitlint/is-ignored': 19.2.2 '@commitlint/parse': 19.0.3 '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 - dev: true - /@commitlint/load@19.2.0(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} - engines: {node: '>=v18'} + '@commitlint/load@19.2.0(@types/node@22.1.0)(typescript@5.4.5)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 '@commitlint/resolve-extends': 19.1.0 '@commitlint/types': 19.0.3 chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.4.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.11.9)(cosmiconfig@9.0.0)(typescript@5.4.3) + cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.1.0)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 transitivePeerDependencies: - '@types/node' - typescript - dev: true - /@commitlint/message@19.0.0: - resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} - engines: {node: '>=v18'} - dev: true + '@commitlint/message@19.0.0': {} - /@commitlint/parse@19.0.3: - resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} - engines: {node: '>=v18'} + '@commitlint/parse@19.0.3': dependencies: '@commitlint/types': 19.0.3 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - dev: true - /@commitlint/read@19.2.1: - resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} - engines: {node: '>=v18'} + '@commitlint/read@19.2.1': dependencies: '@commitlint/top-level': 19.0.0 '@commitlint/types': 19.0.3 execa: 8.0.1 git-raw-commits: 4.0.0 minimist: 1.2.8 - dev: true - /@commitlint/resolve-extends@19.1.0: - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} - engines: {node: '>=v18'} + '@commitlint/resolve-extends@19.1.0': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/types': 19.0.3 global-directory: 4.0.1 - import-meta-resolve: 4.0.0 + import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - dev: true - /@commitlint/rules@19.0.3: - resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} - engines: {node: '>=v18'} + '@commitlint/rules@19.0.3': dependencies: '@commitlint/ensure': 19.0.3 '@commitlint/message': 19.0.0 '@commitlint/to-lines': 19.0.0 '@commitlint/types': 19.0.3 execa: 8.0.1 - dev: true - /@commitlint/to-lines@19.0.0: - resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} - engines: {node: '>=v18'} - dev: true + '@commitlint/to-lines@19.0.0': {} - /@commitlint/top-level@19.0.0: - resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} - engines: {node: '>=v18'} + '@commitlint/top-level@19.0.0': dependencies: find-up: 7.0.0 - dev: true - /@commitlint/types@19.0.3: - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} - engines: {node: '>=v18'} + '@commitlint/types@19.0.3': dependencies: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 - dev: true - /@cspell/cspell-bundled-dicts@8.6.1: - resolution: {integrity: sha512-s6Av1xIgctYLuUiazKZjQ2WRUXc9dU38BOZXwM/lb7y8grQMEuTjST1c+8MOkZkppx48/sO7GHIF3k9rEzD3fg==} - engines: {node: '>=18'} + '@cspell/cspell-bundled-dicts@8.13.1': dependencies: '@cspell/dict-ada': 4.0.2 - '@cspell/dict-aws': 4.0.1 + '@cspell/dict-aws': 4.0.3 '@cspell/dict-bash': 4.1.3 - '@cspell/dict-companies': 3.0.31 - '@cspell/dict-cpp': 5.1.3 + '@cspell/dict-companies': 3.1.3 + '@cspell/dict-cpp': 5.1.12 '@cspell/dict-cryptocurrencies': 5.0.0 '@cspell/dict-csharp': 4.0.2 '@cspell/dict-css': 4.0.12 '@cspell/dict-dart': 2.0.3 '@cspell/dict-django': 4.1.0 '@cspell/dict-docker': 1.1.7 - '@cspell/dict-dotnet': 5.0.0 + '@cspell/dict-dotnet': 5.0.2 '@cspell/dict-elixir': 4.0.3 - '@cspell/dict-en-common-misspellings': 2.0.0 + '@cspell/dict-en-common-misspellings': 2.0.3 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.17 - '@cspell/dict-filetypes': 3.0.3 + '@cspell/dict-en_us': 4.3.23 + '@cspell/dict-filetypes': 3.0.4 '@cspell/dict-fonts': 4.0.0 '@cspell/dict-fsharp': 1.0.1 - '@cspell/dict-fullstack': 3.1.5 + '@cspell/dict-fullstack': 3.2.0 '@cspell/dict-gaming-terms': 1.0.5 '@cspell/dict-git': 3.0.0 - '@cspell/dict-golang': 6.0.5 + '@cspell/dict-golang': 6.0.9 + '@cspell/dict-google': 1.0.1 '@cspell/dict-haskell': 4.0.1 '@cspell/dict-html': 4.0.5 '@cspell/dict-html-symbol-entities': 4.0.0 - '@cspell/dict-java': 5.0.6 + '@cspell/dict-java': 5.0.7 '@cspell/dict-julia': 1.0.1 - '@cspell/dict-k8s': 1.0.2 + '@cspell/dict-k8s': 1.0.6 '@cspell/dict-latex': 4.0.0 '@cspell/dict-lorem-ipsum': 4.0.0 '@cspell/dict-lua': 4.0.3 '@cspell/dict-makefile': 1.0.0 - '@cspell/dict-node': 4.0.3 - '@cspell/dict-npm': 5.0.15 - '@cspell/dict-php': 4.0.6 - '@cspell/dict-powershell': 5.0.3 - '@cspell/dict-public-licenses': 2.0.6 - '@cspell/dict-python': 4.1.11 + '@cspell/dict-monkeyc': 1.0.6 + '@cspell/dict-node': 5.0.1 + '@cspell/dict-npm': 5.0.18 + '@cspell/dict-php': 4.0.8 + '@cspell/dict-powershell': 5.0.5 + '@cspell/dict-public-licenses': 2.0.7 + '@cspell/dict-python': 4.2.3 '@cspell/dict-r': 2.0.1 '@cspell/dict-ruby': 5.0.2 - '@cspell/dict-rust': 4.0.2 - '@cspell/dict-scala': 5.0.0 - '@cspell/dict-software-terms': 3.3.18 + '@cspell/dict-rust': 4.0.5 + '@cspell/dict-scala': 5.0.3 + '@cspell/dict-software-terms': 4.0.3 '@cspell/dict-sql': 2.1.3 '@cspell/dict-svelte': 1.0.2 '@cspell/dict-swift': 2.0.1 '@cspell/dict-terraform': 1.0.0 - '@cspell/dict-typescript': 3.1.2 + '@cspell/dict-typescript': 3.1.6 '@cspell/dict-vue': 3.0.0 - dev: true - /@cspell/cspell-json-reporter@8.6.1: - resolution: {integrity: sha512-75cmJgU9iQgrDnLFIUyvgybySJJi29BPw71z+8ZO9WhNofufxoSjaWepZeYV2nK0nHXM+MbdQG5Mmj/Lv6J1FA==} - engines: {node: '>=18'} + '@cspell/cspell-json-reporter@8.13.1': dependencies: - '@cspell/cspell-types': 8.6.1 - dev: true + '@cspell/cspell-types': 8.13.1 - /@cspell/cspell-pipe@8.6.1: - resolution: {integrity: sha512-guIlGhhOLQwfqevBSgp26b+SX4I1hCH+puAksWAk93bybKkcGtGpcavAQSN9qvamox4zcHnvGutEPF+UcXuceQ==} - engines: {node: '>=18'} - dev: true + '@cspell/cspell-pipe@8.13.1': {} - /@cspell/cspell-resolver@8.6.1: - resolution: {integrity: sha512-ZUbYcvEhfokHG9qfUlIylUqEobG84PiDozCkE8U4h/rTSmYkf/nAD+M6yg+jQ0F2aTFGNbvpKKGFlfXFXveX7A==} - engines: {node: '>=18'} + '@cspell/cspell-resolver@8.13.1': dependencies: global-directory: 4.0.1 - dev: true - /@cspell/cspell-service-bus@8.6.1: - resolution: {integrity: sha512-WpI3fSW8t00UMetfd6tS8f9+xE3+ElIUO/bQ1YKK95TMIRdEUcH+QDxcHM66pJXEm4WiaN3H/MfWk1fIhGlJ8g==} - engines: {node: '>=18'} - dev: true + '@cspell/cspell-service-bus@8.13.1': {} - /@cspell/cspell-types@8.6.1: - resolution: {integrity: sha512-MXa9v6sXbbwyiNno7v7vczNph6AsMNWnpMRCcW3h/siXNQYRuMssdxqT5sQJ8Kurh3M/Wo7DlKX4n74elKL3iQ==} - engines: {node: '>=18'} - dev: true + '@cspell/cspell-types@8.13.1': {} - /@cspell/dict-ada@4.0.2: - resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} - dev: true + '@cspell/dict-ada@4.0.2': {} - /@cspell/dict-aws@4.0.1: - resolution: {integrity: sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==} - dev: true + '@cspell/dict-aws@4.0.3': {} - /@cspell/dict-bash@4.1.3: - resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} - dev: true + '@cspell/dict-bash@4.1.3': {} - /@cspell/dict-companies@3.0.31: - resolution: {integrity: sha512-hKVpV/lcGKP4/DpEPS8P4osPvFH/YVLJaDn9cBIOH6/HSmL5LbFgJNKpMGaYRbhm2FEX56MKE3yn/MNeNYuesQ==} - dev: true + '@cspell/dict-companies@3.1.3': {} - /@cspell/dict-cpp@5.1.3: - resolution: {integrity: sha512-sqnriXRAInZH9W75C+APBh6dtben9filPqVbIsiRMUXGg+s02ekz0z6LbS7kXeJ5mD2qXoMLBrv13qH2eIwutQ==} - dev: true + '@cspell/dict-cpp@5.1.12': {} - /@cspell/dict-cryptocurrencies@5.0.0: - resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} - dev: true + '@cspell/dict-cryptocurrencies@5.0.0': {} - /@cspell/dict-csharp@4.0.2: - resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==} - dev: true + '@cspell/dict-csharp@4.0.2': {} - /@cspell/dict-css@4.0.12: - resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==} - dev: true + '@cspell/dict-css@4.0.12': {} - /@cspell/dict-dart@2.0.3: - resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} - dev: true + '@cspell/dict-dart@2.0.3': {} - /@cspell/dict-data-science@1.0.11: - resolution: {integrity: sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==} - dev: true + '@cspell/dict-data-science@2.0.1': {} - /@cspell/dict-django@4.1.0: - resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} - dev: true + '@cspell/dict-django@4.1.0': {} - /@cspell/dict-docker@1.1.7: - resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==} - dev: true + '@cspell/dict-docker@1.1.7': {} - /@cspell/dict-dotnet@5.0.0: - resolution: {integrity: sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==} - dev: true + '@cspell/dict-dotnet@5.0.2': {} - /@cspell/dict-elixir@4.0.3: - resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} - dev: true + '@cspell/dict-elixir@4.0.3': {} - /@cspell/dict-en-common-misspellings@2.0.0: - resolution: {integrity: sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==} - dev: true + '@cspell/dict-en-common-misspellings@2.0.3': {} - /@cspell/dict-en-gb@1.1.33: - resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - dev: true + '@cspell/dict-en-gb@1.1.33': {} - /@cspell/dict-en_us@4.3.17: - resolution: {integrity: sha512-CS0Tb2f2YwQZ4VZ6+WLAO5uOzb0iO/iYSRl34kX4enq6quXxLYzwdfGAwv85wSYHPdga8tGiZFP+p8GPsi2JEg==} - dev: true + '@cspell/dict-en_us@4.3.23': {} - /@cspell/dict-filetypes@3.0.3: - resolution: {integrity: sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==} - dev: true + '@cspell/dict-filetypes@3.0.4': {} - /@cspell/dict-fonts@4.0.0: - resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==} - dev: true + '@cspell/dict-fonts@4.0.0': {} - /@cspell/dict-fsharp@1.0.1: - resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} - dev: true + '@cspell/dict-fsharp@1.0.1': {} - /@cspell/dict-fullstack@3.1.5: - resolution: {integrity: sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==} - dev: true + '@cspell/dict-fullstack@3.2.0': {} - /@cspell/dict-gaming-terms@1.0.5: - resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} - dev: true + '@cspell/dict-gaming-terms@1.0.5': {} - /@cspell/dict-git@3.0.0: - resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} - dev: true + '@cspell/dict-git@3.0.0': {} - /@cspell/dict-golang@6.0.5: - resolution: {integrity: sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==} - dev: true + '@cspell/dict-golang@6.0.9': {} - /@cspell/dict-haskell@4.0.1: - resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} - dev: true + '@cspell/dict-google@1.0.1': {} - /@cspell/dict-html-symbol-entities@4.0.0: - resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} - dev: true + '@cspell/dict-haskell@4.0.1': {} - /@cspell/dict-html@4.0.5: - resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} - dev: true + '@cspell/dict-html-symbol-entities@4.0.0': {} - /@cspell/dict-java@5.0.6: - resolution: {integrity: sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==} - dev: true + '@cspell/dict-html@4.0.5': {} - /@cspell/dict-julia@1.0.1: - resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} - dev: true + '@cspell/dict-java@5.0.7': {} - /@cspell/dict-k8s@1.0.2: - resolution: {integrity: sha512-tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ==} - dev: true + '@cspell/dict-julia@1.0.1': {} - /@cspell/dict-latex@4.0.0: - resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} - dev: true + '@cspell/dict-k8s@1.0.6': {} - /@cspell/dict-lorem-ipsum@4.0.0: - resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==} - dev: true + '@cspell/dict-latex@4.0.0': {} - /@cspell/dict-lua@4.0.3: - resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==} - dev: true + '@cspell/dict-lorem-ipsum@4.0.0': {} - /@cspell/dict-makefile@1.0.0: - resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==} - dev: true + '@cspell/dict-lua@4.0.3': {} + + '@cspell/dict-makefile@1.0.0': {} - /@cspell/dict-node@4.0.3: - resolution: {integrity: sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==} - dev: true + '@cspell/dict-monkeyc@1.0.6': {} - /@cspell/dict-npm@5.0.15: - resolution: {integrity: sha512-sX0X5YWNW54F4baW7b5JJB6705OCBIZtUqjOghlJNORS5No7QY1IX1zc5FxNNu4gsaCZITAmfMi4ityXEsEThA==} - dev: true + '@cspell/dict-node@5.0.1': {} - /@cspell/dict-php@4.0.6: - resolution: {integrity: sha512-ySAXisf7twoVFZqBV2o/DKiCLIDTHNqfnj0EfH9OoOUR7HL3rb6zJkm0viLUFDO2G/8SyIi6YrN/6KX+Scjjjg==} - dev: true + '@cspell/dict-npm@5.0.18': {} - /@cspell/dict-powershell@5.0.3: - resolution: {integrity: sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==} - dev: true + '@cspell/dict-php@4.0.8': {} - /@cspell/dict-public-licenses@2.0.6: - resolution: {integrity: sha512-bHqpSpJvLCUcWxj1ov/Ki8WjmESpYwRpQlqfdchekOTc93Huhvjm/RXVN1R4fVf4Hspyem1QVkCGqAmjJMj6sw==} - dev: true + '@cspell/dict-powershell@5.0.5': {} - /@cspell/dict-python@4.1.11: - resolution: {integrity: sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg==} + '@cspell/dict-public-licenses@2.0.7': {} + + '@cspell/dict-python@4.2.3': dependencies: - '@cspell/dict-data-science': 1.0.11 - dev: true + '@cspell/dict-data-science': 2.0.1 - /@cspell/dict-r@2.0.1: - resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} - dev: true + '@cspell/dict-r@2.0.1': {} - /@cspell/dict-ruby@5.0.2: - resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} - dev: true + '@cspell/dict-ruby@5.0.2': {} - /@cspell/dict-rust@4.0.2: - resolution: {integrity: sha512-RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w==} - dev: true + '@cspell/dict-rust@4.0.5': {} - /@cspell/dict-scala@5.0.0: - resolution: {integrity: sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==} - dev: true + '@cspell/dict-scala@5.0.3': {} - /@cspell/dict-software-terms@3.3.18: - resolution: {integrity: sha512-LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g==} - dev: true + '@cspell/dict-software-terms@4.0.3': {} - /@cspell/dict-sql@2.1.3: - resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==} - dev: true + '@cspell/dict-sql@2.1.3': {} - /@cspell/dict-svelte@1.0.2: - resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==} - dev: true + '@cspell/dict-svelte@1.0.2': {} - /@cspell/dict-swift@2.0.1: - resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} - dev: true + '@cspell/dict-swift@2.0.1': {} - /@cspell/dict-terraform@1.0.0: - resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} - dev: true + '@cspell/dict-terraform@1.0.0': {} - /@cspell/dict-typescript@3.1.2: - resolution: {integrity: sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==} - dev: true + '@cspell/dict-typescript@3.1.6': {} - /@cspell/dict-vue@3.0.0: - resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} - dev: true + '@cspell/dict-vue@3.0.0': {} - /@cspell/dynamic-import@8.6.1: - resolution: {integrity: sha512-Fjvkcb5umIAcHfw/iiciYWgO2mXVuRZzQAWPSub6UFCxxcJlRz39YPXa+3O/m3lnXCeo8ChoaEN8qnuV4ogk6g==} - engines: {node: '>=18.0'} + '@cspell/dynamic-import@8.13.1': dependencies: - import-meta-resolve: 4.0.0 - dev: true + import-meta-resolve: 4.1.0 - /@cspell/strong-weak-map@8.6.1: - resolution: {integrity: sha512-X6/7cy+GGVJFXsfrZapxVKn5mtehNTr7hTlg0bVj3iFoNYEPW9zq9l6WIcI4psmaU8G4DSrNsBK7pp87W3u16A==} - engines: {node: '>=18'} - dev: true + '@cspell/strong-weak-map@8.13.1': {} - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true + '@cspell/url@8.13.1': {} - /@ericcornelissen/bash-parser@0.5.2: - resolution: {integrity: sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ==} - engines: {node: '>=4'} - dependencies: - array-last: 1.3.0 - babylon: 6.18.0 - compose-function: 3.0.3 - deep-freeze: 0.0.1 - filter-iterator: 0.0.1 - filter-obj: 1.1.0 - has-own-property: 0.1.0 - identity-function: 1.0.0 - is-iterable: 1.1.1 - iterable-lookahead: 1.0.0 - lodash.curry: 4.1.1 - magic-string: 0.16.0 - map-obj: 2.0.0 - object-pairs: 0.1.0 - object-values: 1.0.0 - reverse-arguments: 1.0.0 - shell-quote-word: 1.0.1 - to-pascal-case: 1.0.0 - unescape-js: 1.1.4 - dev: true - - /@es-joy/jsdoccomment@0.42.0: - resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} - engines: {node: '>=16'} + '@dprint/formatter@0.3.0': {} + + '@dprint/markdown@0.17.1': {} + + '@dprint/toml@0.6.2': {} + + '@es-joy/jsdoccomment@0.46.0': dependencies: comment-parser: 1.4.1 - esquery: 1.5.0 + esquery: 1.6.0 jsdoc-type-pratt-parser: 4.0.0 - dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@9.6.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.8.0)': dependencies: - eslint: 9.6.0 + eslint: 9.8.0 eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true + '@eslint-community/regexpp@4.11.0': {} - /@eslint/config-array@0.17.0: - resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint-stylistic/metadata@2.6.1': {} + + '@eslint/compat@1.1.1': {} + + '@eslint/config-array@0.17.1': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.4 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 + debug: 4.3.6 + espree: 10.1.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -746,1426 +4724,870 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true - /@eslint/eslintrc@3.1.0: - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.8.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.0': {} + + '@intlify/core-base@9.13.1': dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 10.1.0 - globals: 14.0.0 + '@intlify/message-compiler': 9.13.1 + '@intlify/shared': 9.13.1 + + '@intlify/eslint-plugin-vue-i18n@3.0.0(eslint@9.8.0)': + dependencies: + '@eslint/eslintrc': 3.1.0 + '@intlify/core-base': 9.13.1 + '@intlify/message-compiler': 9.13.1 + debug: 4.3.6 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + glob: 10.4.1 + globals: 15.9.0 ignore: 5.3.1 import-fresh: 3.3.0 + is-language-code: 3.1.0 js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 + json5: 2.2.3 + jsonc-eslint-parser: 2.4.0 + lodash: 4.17.21 + parse5: 7.1.2 + semver: 7.6.3 + synckit: 0.9.1 + vue-eslint-parser: 9.4.3(eslint@9.8.0) + yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - dev: true - - /@eslint/js@9.6.0: - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@eslint/object-schema@2.1.4: - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true + '@intlify/message-compiler@9.13.1': + dependencies: + '@intlify/shared': 9.13.1 + source-map-js: 1.2.0 - /@humanwhocodes/retry@0.3.0: - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} - engines: {node: '>=18.18'} - dev: true + '@intlify/shared@9.13.1': {} - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - dev: true + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true + '@jridgewell/sourcemap-codec@1.5.0': {} - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsdevtools/ez-spawn@3.0.4': dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.0.8 - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true + '@jsdevtools/ono@7.1.3': {} - /@nodelib/fs.scandir@3.0.0: - resolution: {integrity: sha512-ktI9+PxfHYtKjF3cLTUAh2N+b8MijCRPNwKJNqTVdL0gB0QxLU2rIRaZ1t71oEa3YBDE6bukH1sR0+CDnpp/Mg==} - engines: {node: '>=16.14.0'} + '@mdn/browser-compat-data@5.5.32': {} + + '@nodelib/fs.scandir@2.1.5': dependencies: - '@nodelib/fs.stat': 3.0.0 + '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.stat@3.0.0: - resolution: {integrity: sha512-2tQOI38s19P9i7X/Drt0v8iMA+KMsgdhB/dyPER+e+2Y8L1Z7QvnuRdW/uLuf5YRFUYmnj4bMA6qCuZHFI1GDQ==} - engines: {node: '>=16.14.0'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@nodelib/fs.walk@2.0.0: - resolution: {integrity: sha512-54voNDBobGdMl3BUXSu7UaDh1P85PGHWlJ5e0XhPugo1JulOyCtp2I+5ri4wplGDJ8QGwPEQW7/x3yTLU7yF1A==} - engines: {node: '>=16.14.0'} - dependencies: - '@nodelib/fs.scandir': 3.0.0 - fastq: 1.15.0 - dev: true - - /@npmcli/git@5.0.4: - resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 - npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.6.0 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - dev: true - - /@npmcli/map-workspaces@3.0.4: - resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.10 - minimatch: 9.0.3 - read-package-json-fast: 3.0.2 - dev: true - - /@npmcli/name-from-folder@2.0.0: - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /@npmcli/package-json@5.0.0: - resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/git': 5.0.4 - glob: 10.3.10 - hosted-git-info: 7.0.1 - json-parse-even-better-errors: 3.0.0 - normalize-package-data: 6.0.0 - proc-log: 3.0.0 - semver: 7.6.0 - transitivePeerDependencies: - - bluebird - dev: true + fastq: 1.17.1 - /@npmcli/promise-spawn@7.0.1: - resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - which: 4.0.0 - dev: true - - /@octokit/auth-token@5.0.1: - resolution: {integrity: sha512-RTmWsLfig8SBoiSdgvCht4BXl1CHU89Co5xiQ5JF19my/sIRDFCQ1RPrmK0exgqUZuNm39C/bV8+/83+MJEjGg==} - engines: {node: '>= 18'} - dev: true + '@octokit/auth-token@5.1.1': {} - /@octokit/core@6.0.1: - resolution: {integrity: sha512-MIpPQXu8Y8GjHwXM81JLveiV+DHJZtLMcB5nKekBGOl3iAtk0HT3i12Xl8Biybu+bCS1+k4qbuKEq5d0RxNRnQ==} - engines: {node: '>= 18'} + '@octokit/core@6.1.2': dependencies: - '@octokit/auth-token': 5.0.1 - '@octokit/graphql': 8.0.1 - '@octokit/request': 9.0.1 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.1 + '@octokit/request-error': 6.1.1 + '@octokit/types': 13.5.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - dev: true - /@octokit/endpoint@10.0.0: - resolution: {integrity: sha512-emBcNDxBdC1y3+knJonS5zhUB/CG6TihubxM2U1/pG/Z1y3a4oV0Gzz3lmkCvWWQI6h3tqBAX9MgCBFp+M68Jw==} - engines: {node: '>= 18'} + '@octokit/endpoint@10.1.1': dependencies: - '@octokit/types': 12.6.0 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 - dev: true - /@octokit/graphql@8.0.1: - resolution: {integrity: sha512-lLDb6LhC1gBj2CxEDa5Xk10+H/boonhs+3Mi6jpRyetskDKNHe6crMeKmUE2efoLofMP8ruannLlCUgpTFmVzQ==} - engines: {node: '>= 18'} + '@octokit/graphql@8.1.1': dependencies: - '@octokit/request': 9.0.1 - '@octokit/types': 12.6.0 + '@octokit/request': 9.1.1 + '@octokit/types': 13.5.0 universal-user-agent: 7.0.2 - dev: true - /@octokit/openapi-types@20.0.0: - resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - dev: true + '@octokit/openapi-types@22.2.0': {} - /@octokit/plugin-paginate-rest@10.0.0(@octokit/core@6.0.1): - resolution: {integrity: sha512-G1Z67qOiFneKDJyMafHQkWnKm1kU3FfbRZLzxgsFg4dOa3pRNdABbdk+xo/oev6P88lnbt7GKdBNB6dJZuPphA==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' + '@octokit/plugin-paginate-rest@11.3.0(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.0.1 - '@octokit/types': 12.6.0 - dev: true + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 - /@octokit/plugin-retry@7.0.3(@octokit/core@6.0.1): - resolution: {integrity: sha512-T9l5Z7XnDZ7dkyNmhJPSUq0YjbqUT/xn4yQbhcSuv4WGC/LqM73/mKwkl68VDPoLw20e8oz4L7qQopWt9v6sow==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=6' + '@octokit/plugin-retry@7.1.1(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.0.1 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 + '@octokit/core': 6.1.2 + '@octokit/request-error': 6.1.1 + '@octokit/types': 13.5.0 bottleneck: 2.19.5 - dev: true - /@octokit/plugin-throttling@9.0.3(@octokit/core@6.0.1): - resolution: {integrity: sha512-DReKamrLBJOzld73dmmxV2H137QKJfsxszAczEZXeAJQ/Po6bzQacKajPdodA6T1jfmP9+waImus+d/R2j+R7Q==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': ^6.0.0 + '@octokit/plugin-throttling@9.3.0(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 6.0.1 - '@octokit/types': 12.6.0 + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 bottleneck: 2.19.5 - dev: true - - /@octokit/request-error@6.0.2: - resolution: {integrity: sha512-WtRVpoHcNXs84+s9s/wqfHaxM68NGMg8Av7h59B50OVO0PwwMx+2GgQ/OliUd0iQBSNWgR6N8afi/KjSHbXHWw==} - engines: {node: '>= 18'} - dependencies: - '@octokit/types': 12.6.0 - dev: true - - /@octokit/request@9.0.1: - resolution: {integrity: sha512-kL+cAcbSl3dctYLuJmLfx6Iku2MXXy0jszhaEIjQNaCp4zjHXrhVAHeuaRdNvJjW9qjl3u1MJ72+OuBP0YW/pg==} - engines: {node: '>= 18'} - dependencies: - '@octokit/endpoint': 10.0.0 - '@octokit/request-error': 6.0.2 - '@octokit/types': 12.6.0 - universal-user-agent: 7.0.2 - dev: true - - /@octokit/types@12.6.0: - resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - dependencies: - '@octokit/openapi-types': 20.0.0 - dev: true - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - - /@pkgr/core@0.1.1: - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: true - - /@pnpm/config.env-replace@1.0.0: - resolution: {integrity: sha512-ZVPVDi1E8oeXlYqkGRtX0CkzLTwE2zt62bjWaWKaAvI8NZqHzlMvGeSNDpW+JB3+aKanYb4UETJOF1/CxGPemA==} - engines: {node: '>=12.22.0'} - dev: true - - /@pnpm/constants@7.1.1: - resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} - engines: {node: '>=16.14'} - dev: true - - /@pnpm/core-loggers@9.0.6(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-iK67SGbp+06bA/elpg51wygPFjNA7JKHtKkpLxqXXHw+AjFFBC3f2OznJsCIuDK6HdGi5UhHLYqo5QxJ2gMqJQ==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - dependencies: - '@pnpm/logger': 5.0.0 - '@pnpm/types': 9.4.2 - dev: true - - /@pnpm/error@5.0.3: - resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} - engines: {node: '>=16.14'} - dependencies: - '@pnpm/constants': 7.1.1 - dev: true - - /@pnpm/fetching-types@5.0.0: - resolution: {integrity: sha512-o9gdO1v8Uc5P2fBBuW6GSpfTqIivQmQlqjQJdFiQX0m+tgxlrMRneIg392jZuc6fk7kFqjLheInlslgJfwY+4Q==} - engines: {node: '>=16.14'} - dependencies: - '@zkochan/retry': 0.2.0 - node-fetch: 3.0.0-beta.9 - transitivePeerDependencies: - - domexception - dev: true - - /@pnpm/graceful-fs@3.2.0: - resolution: {integrity: sha512-vRoXJxscDpHak7YE9SqCkzfrayn+Lw+YueOeHIPEqkgokrHeYgYeONoc2kGh0ObHaRtNSsonozVfJ456kxLNvA==} - engines: {node: '>=16.14'} - dependencies: - graceful-fs: 4.2.11 - dev: true - - /@pnpm/logger@5.0.0: - resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} - engines: {node: '>=12.17'} - dependencies: - bole: 5.0.11 - ndjson: 2.0.0 - dev: true - - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - dependencies: - graceful-fs: 4.2.10 - dev: true - - /@pnpm/npm-conf@2.1.0: - resolution: {integrity: sha512-Oe6ntvgsMTE3hDIqy6sajqHF+MnzJrOF06qC2QSiUEybLL7cp6tjoKUa32gpd9+KPVl4QyMs3E3nsXrx/Vdnlw==} - engines: {node: '>=12'} - dependencies: - '@pnpm/config.env-replace': 1.0.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - dev: true - - /@pnpm/npm-package-arg@1.0.0: - resolution: {integrity: sha512-oQYP08exi6mOPdAZZWcNIGS+KKPsnNwUBzSuAEGWuCcqwMAt3k/WVCqVIXzBxhO5sP2b43og69VHmPj6IroKqw==} - engines: {node: '>=14.6'} - dependencies: - hosted-git-info: 4.1.0 - semver: 7.6.0 - validate-npm-package-name: 4.0.0 - dev: true - - /@pnpm/npm-resolver@18.1.1(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-NptzncmMD5ZMimbjWkGpMzuBRhlCY+sh7mzypPdBOTNlh5hmEQe/VaRKjNK4V9/b0C/llElkvIePL6acybu86w==} - engines: {node: '>=16.14'} - peerDependencies: - '@pnpm/logger': ^5.0.0 - dependencies: - '@pnpm/core-loggers': 9.0.6(@pnpm/logger@5.0.0) - '@pnpm/error': 5.0.3 - '@pnpm/fetching-types': 5.0.0 - '@pnpm/graceful-fs': 3.2.0 - '@pnpm/logger': 5.0.0 - '@pnpm/resolve-workspace-range': 5.0.1 - '@pnpm/resolver-base': 11.1.0 - '@pnpm/types': 9.4.2 - '@zkochan/retry': 0.2.0 - encode-registry: 3.0.1 - load-json-file: 6.2.0 - lru-cache: 10.2.0 - normalize-path: 3.0.0 - p-limit: 3.1.0 - p-memoize: 4.0.1 - parse-npm-tarball-url: 3.0.0 - path-temp: 2.1.0 - ramda: /@pnpm/ramda@0.28.1 - rename-overwrite: 5.0.0 - semver: 7.6.0 - ssri: 10.0.5 - version-selector-type: 3.0.0 - transitivePeerDependencies: - - domexception - dev: true - /@pnpm/ramda@0.28.1: - resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} - dev: true + '@octokit/request-error@6.1.1': + dependencies: + '@octokit/types': 13.5.0 - /@pnpm/resolve-workspace-range@5.0.1: - resolution: {integrity: sha512-yQ0pMthlw8rTgS/C9hrjne+NEnnSNevCjtdodd7i15I59jMBYciHifZ/vjg0NY+Jl+USTc3dBE+0h/4tdYjMKg==} - engines: {node: '>=16.14'} + '@octokit/request@9.1.1': dependencies: - semver: 7.6.0 - dev: true + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.1 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 - /@pnpm/resolver-base@11.1.0: - resolution: {integrity: sha512-y2qKaj18pwe1VWc3YXEitdYFo+WqOOt60aqTUuOVkJAirUzz0DzuYh3Ifct4znYWPdgUXHaN5DMphNF5iL85rA==} - engines: {node: '>=16.14'} + '@octokit/types@13.5.0': dependencies: - '@pnpm/types': 9.4.2 - dev: true + '@octokit/openapi-types': 22.2.0 - /@pnpm/types@9.4.2: - resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} - engines: {node: '>=16.14'} - dev: true + '@pkgjs/parseargs@0.11.0': + optional: true - /@pnpm/workspace.pkgs-graph@2.0.15(@pnpm/logger@5.0.0): - resolution: {integrity: sha512-Txxd5FzzVfBfGCTngISaxFlJzZhzdS8BUrCEtAWJfZOFbQzpWy27rzkaS7TaWW2dHiFcCVYzPI/2vgxfeRansA==} - engines: {node: '>=16.14'} - dependencies: - '@pnpm/npm-package-arg': 1.0.0 - '@pnpm/npm-resolver': 18.1.1(@pnpm/logger@5.0.0) - '@pnpm/resolve-workspace-range': 5.0.1 - ramda: /@pnpm/ramda@0.28.1 - transitivePeerDependencies: - - '@pnpm/logger' - - domexception - dev: true + '@pkgr/core@0.1.1': {} - /@rollup/plugin-commonjs@25.0.7(rollup@4.13.0): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.8 - rollup: 4.13.0 - dev: true - - /@rollup/plugin-node-resolve@15.2.3(rollup@4.13.0): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.0 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.4 - rollup: 4.13.0 - dev: true + graceful-fs: 4.2.10 - /@rollup/plugin-typescript@11.1.6(rollup@4.13.0)(tslib@2.6.2)(typescript@5.4.3): - resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true + '@pnpm/npm-conf@2.2.2': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) - resolve: 1.22.4 - rollup: 4.13.0 - tslib: 2.6.2 - typescript: 5.4.3 - dev: true + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 - /@rollup/pluginutils@5.1.0(rollup@4.13.0): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@rollup/pluginutils@5.1.0(rollup@4.20.0)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.13.0 - dev: true + optionalDependencies: + rollup: 4.20.0 - /@rollup/rollup-android-arm-eabi@4.13.0: - resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true + '@rollup/rollup-android-arm-eabi@4.20.0': optional: true - /@rollup/rollup-android-arm64@4.13.0: - resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true + '@rollup/rollup-android-arm64@4.20.0': optional: true - /@rollup/rollup-darwin-arm64@4.13.0: - resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + '@rollup/rollup-darwin-arm64@4.20.0': optional: true - /@rollup/rollup-darwin-x64@4.13.0: - resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@rollup/rollup-darwin-x64@4.20.0': optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.13.0: - resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.0: - resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm-musleabihf@4.20.0': optional: true - /@rollup/rollup-linux-arm64-musl@4.13.0: - resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm64-gnu@4.20.0': optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.0: - resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm64-musl@4.20.0': optional: true - /@rollup/rollup-linux-x64-gnu@4.13.0: - resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': optional: true - /@rollup/rollup-linux-x64-musl@4.13.0: - resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-riscv64-gnu@4.20.0': optional: true - /@rollup/rollup-win32-arm64-msvc@4.13.0: - resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-linux-s390x-gnu@4.20.0': optional: true - /@rollup/rollup-win32-ia32-msvc@4.13.0: - resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-linux-x64-gnu@4.20.0': optional: true - /@rollup/rollup-win32-x64-msvc@4.13.0: - resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-linux-x64-musl@4.20.0': optional: true - /@semantic-release/changelog@6.0.3(semantic-release@23.0.6): - resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} - engines: {node: '>=14.17'} - peerDependencies: - semantic-release: '>=18.0.0' + '@rollup/rollup-win32-arm64-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.20.0': + optional: true + + '@sec-ant/readable-stream@0.4.1': {} + + '@semantic-release/changelog@6.0.3(semantic-release@24.0.0(typescript@5.4.5))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - fs-extra: 11.1.0 + fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 23.0.6(typescript@5.4.3) - dev: true + semantic-release: 24.0.0(typescript@5.4.5) - /@semantic-release/commit-analyzer@12.0.0(semantic-release@23.0.6): - resolution: {integrity: sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.4.5))': dependencies: - conventional-changelog-angular: 7.0.0 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4 - import-from-esm: 1.3.3 + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.6 + import-from-esm: 1.3.4 lodash-es: 4.17.21 - micromatch: 4.0.5 - semantic-release: 23.0.6(typescript@5.4.3) + micromatch: 4.0.7 + semantic-release: 24.0.0(typescript@5.4.5) transitivePeerDependencies: - supports-color - dev: true - /@semantic-release/error@3.0.0: - resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} - engines: {node: '>=14.17'} - dev: true + '@semantic-release/error@3.0.0': {} - /@semantic-release/error@4.0.0: - resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} - engines: {node: '>=18'} - dev: true + '@semantic-release/error@4.0.0': {} - /@semantic-release/git@10.0.1(semantic-release@23.0.6): - resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} - engines: {node: '>=14.17'} - peerDependencies: - semantic-release: '>=18.0.0' + '@semantic-release/git@10.0.1(semantic-release@24.0.0(typescript@5.4.5))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.4 + debug: 4.3.6 dir-glob: 3.0.1 execa: 5.1.1 lodash: 4.17.21 - micromatch: 4.0.5 + micromatch: 4.0.7 p-reduce: 2.1.0 - semantic-release: 23.0.6(typescript@5.4.3) + semantic-release: 24.0.0(typescript@5.4.5) transitivePeerDependencies: - supports-color - dev: true - /@semantic-release/github@10.0.2(semantic-release@23.0.6): - resolution: {integrity: sha512-SP5ihhv/uQa8vPuWKmbJrrzfv8lRUkDFC6qwgaWoorrflN1DEW0IGCa9w/PxUp8Ad3dbvXZPmpXdGiP3eyTzhg==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/github@10.1.3(semantic-release@24.0.0(typescript@5.4.5))': dependencies: - '@octokit/core': 6.0.1 - '@octokit/plugin-paginate-rest': 10.0.0(@octokit/core@6.0.1) - '@octokit/plugin-retry': 7.0.3(@octokit/core@6.0.1) - '@octokit/plugin-throttling': 9.0.3(@octokit/core@6.0.1) + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.0(@octokit/core@6.1.2) + '@octokit/plugin-retry': 7.1.1(@octokit/core@6.1.2) + '@octokit/plugin-throttling': 9.3.0(@octokit/core@6.1.2) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.3.4 + debug: 4.3.6 dir-glob: 3.0.1 globby: 14.0.1 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.0 - issue-parser: 7.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + issue-parser: 7.0.1 lodash-es: 4.17.21 - mime: 4.0.1 + mime: 4.0.3 p-filter: 4.1.0 - semantic-release: 23.0.6(typescript@5.4.3) + semantic-release: 24.0.0(typescript@5.4.5) url-join: 5.0.0 transitivePeerDependencies: - supports-color - dev: true - /@semantic-release/npm@12.0.0(semantic-release@23.0.6): - resolution: {integrity: sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' + '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.4.5))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - execa: 8.0.1 - fs-extra: 11.1.0 + execa: 9.2.0 + fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 - normalize-url: 8.0.0 - npm: 10.5.0 + normalize-url: 8.0.1 + npm: 10.8.1 rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 23.0.6(typescript@5.4.3) - semver: 7.6.0 - tempy: 3.0.0 - dev: true - - /@semantic-release/release-notes-generator@13.0.0(semantic-release@23.0.6): - resolution: {integrity: sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==} - engines: {node: '>=20.8.1'} - peerDependencies: - semantic-release: '>=20.1.0' - dependencies: - conventional-changelog-angular: 7.0.0 - conventional-changelog-writer: 7.0.1 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4 - get-stream: 7.0.0 - import-from-esm: 1.3.3 + semantic-release: 24.0.0(typescript@5.4.5) + semver: 7.6.3 + tempy: 3.1.0 + + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.4.5))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.6 + get-stream: 7.0.1 + import-from-esm: 1.3.4 into-stream: 7.0.0 lodash-es: 4.17.21 - read-pkg-up: 11.0.0 - semantic-release: 23.0.6(typescript@5.4.3) + read-package-up: 11.0.0 + semantic-release: 24.0.0(typescript@5.4.5) transitivePeerDependencies: - supports-color - dev: true - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: true + '@sindresorhus/is@4.6.0': {} - /@sindresorhus/merge-streams@2.3.0: - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - dev: true + '@sindresorhus/merge-streams@2.3.0': {} - /@snyk/github-codeowners@1.1.0: - resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} - engines: {node: '>=8.10'} - hasBin: true + '@sindresorhus/merge-streams@4.0.0': {} + + '@snyk/github-codeowners@1.1.0': dependencies: commander: 4.1.1 ignore: 5.3.1 p-map: 4.0.0 - dev: true - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true + '@stylistic/eslint-plugin-js@2.6.1(eslint@9.8.0)': + dependencies: + '@types/eslint': 9.6.0 + acorn: 8.12.1 + eslint: 9.8.0 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true + '@stylistic/eslint-plugin-jsx@2.6.1(eslint@9.8.0)': + dependencies: + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@types/eslint': 9.6.0 + eslint: 9.8.0 + estraverse: 5.3.0 + picomatch: 4.0.2 - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true + '@stylistic/eslint-plugin-migrate@2.6.1(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@eslint-stylistic/metadata': 2.6.1 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + transitivePeerDependencies: + - eslint + - supports-color + - typescript - /@tsconfig/node16@1.0.3: - resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} - dev: true + '@stylistic/eslint-plugin-plus@2.6.1(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@types/eslint': 9.6.0 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript - /@types/conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@stylistic/eslint-plugin-ts@2.6.1(eslint@9.8.0)(typescript@5.4.5)': dependencies: - '@types/node': 18.11.9 - dev: true + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@types/eslint': 9.6.0 + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript - /@types/eslint-config-prettier@6.11.3: - resolution: {integrity: sha512-3wXCiM8croUnhg9LdtZUJQwNcQYGWxxdOWDjPe1ykCqJFPVpzAKfs/2dgSoCtAvdPeaponcWPI7mPcGGp9dkKQ==} - dev: true + '@stylistic/eslint-plugin@2.6.1(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@stylistic/eslint-plugin-js': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-jsx': 2.6.1(eslint@9.8.0) + '@stylistic/eslint-plugin-plus': 2.6.1(eslint@9.8.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-ts': 2.6.1(eslint@9.8.0)(typescript@5.4.5) + '@types/eslint': 9.6.0 + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript - /@types/eslint-plugin-prettier@3.1.3: - resolution: {integrity: sha512-Jk+lgBZM0u9ETUyqe2HvykL1j6uE7L1oEqbInWtsVHT6sP+AdwLb4ncmQBqASTS+YzYOPF6hKX0zgEhblRMjqA==} + '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/eslint': 8.56.6 - dev: true + '@types/node': 22.1.0 - /@types/eslint@8.56.6: - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + '@types/eslint@9.6.0': dependencies: '@types/estree': 1.0.5 - '@types/json-schema': 7.0.12 - dev: true + '@types/json-schema': 7.0.15 - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true + '@types/estree@1.0.5': {} - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - dev: true + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/mdast@3.0.10: - resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + '@types/mdast@3.0.15': dependencies: - '@types/unist': 2.0.6 - dev: true + '@types/unist': 2.0.10 - /@types/node@18.11.9: - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} - dev: true + '@types/node@17.0.45': {} - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true + '@types/node@22.1.0': + dependencies: + undici-types: 6.13.0 - /@types/picomatch@2.3.3: - resolution: {integrity: sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==} - dev: true + '@types/normalize-package-data@2.4.4': {} - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: true + '@types/object-path@0.11.4': {} - /@types/rollup-plugin-auto-external@2.0.5: - resolution: {integrity: sha512-jspE/1q/4MjrC0lilOpF7Ej5z2vvByPq6lb5ERHt9jCRnp0WJRq+SLK9oPfYroy0xhFhDqQoXLeSHcKqATDaoA==} - dependencies: - rollup: 4.13.0 - dev: true + '@types/semver@7.5.8': {} - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - dev: true + '@types/ua-parser-js@0.7.39': {} - /@types/unist@2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: true + '@types/unist@2.0.10': {} - /@typescript-eslint/eslint-plugin@7.3.1(@typescript-eslint/parser@7.3.1)(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5)': dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.3.1 - '@typescript-eslint/type-utils': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4 - eslint: 9.6.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/type-utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.0.0 + eslint: 9.8.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@7.3.1(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.3.1 - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4 - eslint: 9.6.0 - typescript: 5.4.3 + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 + eslint: 9.8.0 + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@7.3.1: - resolution: {integrity: sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/visitor-keys': 7.3.1 - dev: true + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - /@typescript-eslint/type-utils@7.3.1(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/scope-manager@8.0.0': + dependencies: + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.8.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - debug: 4.3.4 - eslint: 9.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.4.5) + debug: 4.3.6 + eslint: 9.8.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@7.3.1: - resolution: {integrity: sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==} - engines: {node: ^18.18.0 || >=20.0.0} - dev: true + '@typescript-eslint/type-utils@8.0.0(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.4.5) + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + debug: 4.3.6 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - eslint + - supports-color - /@typescript-eslint/typescript-estree@7.3.1(typescript@5.4.3): - resolution: {integrity: sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.0.0': {} + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@7.3.1(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + '@typescript-eslint/typescript-estree@8.0.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/visitor-keys': 8.0.0 + debug: 4.3.6 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@9.8.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.3.1 - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) - eslint: 9.6.0 - semver: 7.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) + eslint: 9.8.0 transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@7.3.1: - resolution: {integrity: sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.0.0(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@typescript-eslint/scope-manager': 8.0.0 + '@typescript-eslint/types': 8.0.0 + '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.4.5) + eslint: 9.8.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - dev: true - /@zkochan/retry@0.2.0: - resolution: {integrity: sha512-WhB+2B/ZPlW2Xy/kMJBrMbqecWXcbDDgn0K0wKBAgO2OlBTz1iLJrRWduo+DGGn0Akvz1Lu4Xvls7dJojximWw==} - engines: {node: '>=10'} - dev: true + '@typescript-eslint/visitor-keys@8.0.0': + dependencies: + '@typescript-eslint/types': 8.0.0 + eslint-visitor-keys: 3.4.3 - /@zkochan/rimraf@2.1.3: - resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} - engines: {node: '>=12.10'} + '@unocss/config@0.61.9': dependencies: - rimraf: 3.0.2 - dev: true + '@unocss/core': 0.61.9 + unconfig: 0.5.5 + transitivePeerDependencies: + - supports-color - /JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true + '@unocss/core@0.61.9': {} + + '@unocss/eslint-plugin@0.61.9(eslint@9.8.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.4.5) + '@unocss/config': 0.61.9 + '@unocss/core': 0.61.9 + magic-string: 0.30.11 + synckit: 0.9.1 + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + '@vue/compiler-core@3.4.27': + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.4.27 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.27': + dependencies: + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/compiler-sfc@3.4.27': + dependencies: + '@babel/parser': 7.24.7 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.27': + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/shared@3.4.27': {} + + '@wessberg/stringutil@1.0.19': {} + + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 through: 2.3.8 - dev: true - /acorn-jsx@5.3.2(acorn@8.12.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.12.0 - dev: true + acorn: 8.12.1 - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true + acorn-walk@8.3.2: {} - /acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true + acorn@8.12.1: {} - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} - engines: {node: '>= 14'} + agent-base@7.1.1: dependencies: - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color - dev: true - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true - /aggregate-error@5.0.0: - resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} - engines: {node: '>=18'} + aggregate-error@5.0.0: dependencies: clean-stack: 5.2.0 indent-string: 5.0.0 - dev: true - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + 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 - dev: true - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.16.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 - dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 - dev: true - /ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} - dev: true + ansi-escapes@6.2.1: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true + ansi-regex@5.0.1: {} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - dev: true - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} - dev: true - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true + ansi-styles@6.2.1: {} - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true + any-promise@1.3.0: {} - /argv-formatter@1.0.0: - resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - dev: true + are-docs-informative@0.0.2: {} - /arity-n@1.0.4: - resolution: {integrity: sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==} - dev: true + argparse@2.0.1: {} - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + argv-formatter@1.0.0: {} + + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - dev: true - /array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true + array-ify@1.0.0: {} - /array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 - dev: true - /array-last@1.3.0: - resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 4.0.0 - dev: true - - /array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - dev: true + array-timsort@1.0.3: {} - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true + array-union@2.1.0: {} - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - dev: true - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - dev: true - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true + at-least-node@1.0.0: {} - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - dev: true - - /babylon@6.18.0: - resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} - hasBin: true - dev: true - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true + balanced-match@1.0.2: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true + base64-js@1.5.1: {} - /before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - dev: true + before-after-hook@3.0.2: {} - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 - readable-stream: 3.6.1 - dev: true + readable-stream: 3.6.2 - /bole@5.0.11: - resolution: {integrity: sha512-KB0Ye0iMAW5BnNbnLfMSQcnI186hKUzE2fpkZWqcxsoTR7eqzlTidSOMYPHJOn/yR7VGH7uSZp37qH9q2Et0zQ==} - dependencies: - fast-safe-stringify: 2.1.1 - individual: 3.0.0 - dev: true + boolbase@1.0.0: {} - /bottleneck@2.19.5: - resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - dev: true + bottleneck@2.19.5: {} - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.3: dependencies: - fill-range: 7.0.1 - dev: true + fill-range: 7.1.1 - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist-generator@2.1.0: + dependencies: + '@mdn/browser-compat-data': 5.5.32 + '@types/object-path': 0.11.4 + '@types/semver': 7.5.8 + '@types/ua-parser-js': 0.7.39 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001629 + isbot: 3.8.0 + object-path: 0.11.8 + semver: 7.6.3 + ua-parser-js: 1.0.38 + + browserslist@4.23.1: dependencies: - caniuse-lite: 1.0.30001600 - electron-to-chromium: 1.4.715 + caniuse-lite: 1.0.30001629 + electron-to-chromium: 1.4.796 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: true + update-browserslist-db: 1.0.16(browserslist@4.23.1) - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - /builtins@2.0.1: - resolution: {integrity: sha512-XkkVe5QAb6guWPXTzpSrYpSlN3nqEmrrE2TkAr/tp7idSF6+MONh9WvKrAuR3HiKLvoSgmbs8l1U9IPmMrIoLw==} - dependencies: - semver: 6.3.1 - dev: true + builtin-modules@3.3.0: {} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + bundle-require@5.0.0(esbuild@0.21.5): dependencies: - semver: 7.6.0 - dev: true + esbuild: 0.21.5 + load-tsconfig: 0.2.5 - /cachedir@2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} - engines: {node: '>=6'} - dev: true + cachedir@2.3.0: {} - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 - dev: true - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true + call-me-maybe@1.0.2: {} - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} - dev: true + callsites@3.1.0: {} - /chalk-template@1.1.0: - resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} - engines: {node: '>=14.16'} + caniuse-lite@1.0.30001629: {} + + chalk-template@1.1.0: dependencies: chalk: 5.3.0 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true + chalk@5.3.0: {} - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true + char-regex@1.0.2: {} - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: true + character-entities-legacy@1.1.4: {} - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: true + character-entities@1.2.4: {} - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: true + character-reference-invalid@1.1.4: {} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true + chardet@0.7.0: {} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: true + ci-info@4.0.0: {} - /clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true + clean-stack@2.2.0: {} - /clean-stack@5.2.0: - resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} - engines: {node: '>=14.16'} + clean-stack@5.2.0: dependencies: escape-string-regexp: 5.0.0 - dev: true - /clear-module@4.1.2: - resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} - engines: {node: '>=8'} + clear-module@4.1.2: dependencies: parent-module: 2.0.0 resolve-from: 5.0.0 - dev: true - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - dev: true - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: dependencies: - restore-cursor: 4.0.0 - dev: true + restore-cursor: 5.1.0 - /cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true + cli-highlight@2.1.11: dependencies: chalk: 4.1.2 highlight.js: 10.7.3 @@ -2173,120 +5595,68 @@ packages: parse5: 5.1.1 parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.0 - dev: true - /cli-spinners@2.7.0: - resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} - engines: {node: '>=6'} - dev: true + cli-spinners@2.9.2: {} - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.5: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: true - /cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 string-width: 7.1.0 - dev: true - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true + cli-width@3.0.0: {} - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true + clone@1.0.4: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - dev: true - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - dev: true - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + color-name@1.1.3: {} - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true + color-name@1.1.4: {} - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + colorette@2.0.20: {} - /commander@12.0.0: - resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} - engines: {node: '>=18'} - dev: true + commander@12.1.0: {} - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true + commander@4.1.1: {} - /comment-json@4.2.3: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} - engines: {node: '>= 6'} + comment-json@4.2.4: dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 esprima: 4.0.1 has-own-prop: 2.0.0 repeat-string: 1.6.1 - dev: true - /comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - dev: true + comment-parser@1.4.1: {} - /commitizen@4.3.0(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} - engines: {node: '>= 12'} - hasBin: true + commitizen@4.3.0(@types/node@22.1.0)(typescript@5.4.5): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@18.11.9)(typescript@5.4.3) + cz-conventional-changelog: 3.3.0(@types/node@22.1.0)(typescript@5.4.5) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -2302,536 +5672,336 @@ packages: transitivePeerDependencies: - '@types/node' - typescript - dev: true - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true - - /compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 - dev: true - /compose-function@3.0.3: - resolution: {integrity: sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg==} + compatfactory@3.0.0(typescript@5.4.5): dependencies: - arity-n: 1.0.4 - dev: true + helpertypes: 0.0.19 + typescript: 5.4.5 - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true + concat-map@0.0.1: {} - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + confbox@0.1.7: {} + + config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - dev: true - /configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + conventional-changelog-angular@7.0.0: dependencies: - dot-prop: 6.0.1 - graceful-fs: 4.2.11 - unique-string: 3.0.0 - write-file-atomic: 3.0.3 - xdg-basedir: 5.1.0 - dev: true + compare-func: 2.0.0 - /conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + conventional-changelog-angular@8.0.0: dependencies: compare-func: 2.0.0 - dev: true - /conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} + conventional-changelog-conventionalcommits@7.0.2: dependencies: compare-func: 2.0.0 - dev: true - /conventional-changelog-writer@7.0.1: - resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} - engines: {node: '>=16'} - hasBin: true + conventional-changelog-writer@8.0.0: dependencies: - conventional-commits-filter: 4.0.0 - handlebars: 4.7.7 - json-stringify-safe: 5.0.1 - meow: 12.1.1 - semver: 7.6.0 - split2: 4.2.0 - dev: true + '@types/semver': 7.5.8 + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.6.3 - /conventional-commit-types@3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: true + conventional-commit-types@3.0.0: {} - /conventional-commits-filter@4.0.0: - resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} - engines: {node: '>=16'} - dev: true + conventional-commits-filter@5.0.0: {} - /conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true + conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 is-text-path: 2.0.0 meow: 12.1.1 split2: 4.2.0 - dev: true - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + conventional-commits-parser@6.0.0: dependencies: - browserslist: 4.23.0 - dev: true + meow: 13.2.0 - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true + convert-hrtime@5.0.0: {} - /cosmiconfig-typescript-loader@5.0.0(@types/node@18.11.9)(cosmiconfig@9.0.0)(typescript@5.4.3): - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' + core-js-compat@3.37.1: dependencies: - '@types/node': 18.11.9 - cosmiconfig: 9.0.0(typescript@5.4.3) - jiti: 1.21.0 - typescript: 5.4.3 - dev: true + browserslist: 4.23.1 - /cosmiconfig@9.0.0(typescript@5.4.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + core-util-is@1.0.3: {} + + cosmiconfig-typescript-loader@5.0.0(@types/node@22.1.0)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + dependencies: + '@types/node': 22.1.0 + cosmiconfig: 9.0.0(typescript@5.4.5) + jiti: 1.21.6 + typescript: 5.4.5 + + cosmiconfig@9.0.0(typescript@5.4.5): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - typescript: 5.4.3 - dev: true - - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true + optionalDependencies: + typescript: 5.4.5 - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + crosspath@2.0.0: + dependencies: + '@types/node': 17.0.45 - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: true - /cspell-config-lib@8.6.1: - resolution: {integrity: sha512-I6LatgXJb8mxKFzIywO81TlUD/qWnUDrhB6yTUPdP90bwZcXMmGoCsZxhd2Rvl9fz5fWne0T839I1coShfm86g==} - engines: {node: '>=18'} + cspell-config-lib@8.13.1: dependencies: - '@cspell/cspell-types': 8.6.1 - comment-json: 4.2.3 - yaml: 2.4.1 - dev: true + '@cspell/cspell-types': 8.13.1 + comment-json: 4.2.4 + yaml: 2.5.0 - /cspell-dictionary@8.6.1: - resolution: {integrity: sha512-0SfKPi1QoWbGpZ/rWMR7Jn0+GaQT9PAMLWjVOu66PUNUXI5f4oCTHpnZE1Xts+5VX8shZC3TAMHEgtgKuQn4RQ==} - engines: {node: '>=18'} + cspell-dictionary@8.13.1: dependencies: - '@cspell/cspell-pipe': 8.6.1 - '@cspell/cspell-types': 8.6.1 - cspell-trie-lib: 8.6.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + cspell-trie-lib: 8.13.1 fast-equals: 5.0.1 - gensequence: 7.0.0 - dev: true - /cspell-gitignore@8.6.1: - resolution: {integrity: sha512-3gtt351sSDfN826aMXTqGHVLz2lz9ZHr8uemImUc24Q+676sXkJM9lXzqP8PUqwGhLyt5qSf+9pt0ieNwQy/cA==} - engines: {node: '>=18'} - hasBin: true + cspell-gitignore@8.13.1: dependencies: - cspell-glob: 8.6.1 + '@cspell/url': 8.13.1 + cspell-glob: 8.13.1 + cspell-io: 8.13.1 find-up-simple: 1.0.0 - dev: true - /cspell-glob@8.6.1: - resolution: {integrity: sha512-QjtngIR0XsUQLmHHDO86hps/JR5sRxSBwCvcsNCEmSdpdofLFc8cuxi3o33JWge7UAPBCQOLGfpA7/Wx31srmw==} - engines: {node: '>=18'} + cspell-glob@8.13.1: dependencies: - micromatch: 4.0.5 - dev: true + '@cspell/url': 8.13.1 + micromatch: 4.0.7 - /cspell-grammar@8.6.1: - resolution: {integrity: sha512-MaG0e/F0b2FnIRULCZ61JxEiJgTP/6rsbUoR5nG9X+WmJYItYmxC1F/FPPrVeTu+jJr/8O4pdnslE20pimHaCw==} - engines: {node: '>=18'} - hasBin: true + cspell-grammar@8.13.1: dependencies: - '@cspell/cspell-pipe': 8.6.1 - '@cspell/cspell-types': 8.6.1 - dev: true + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 - /cspell-io@8.6.1: - resolution: {integrity: sha512-ofxBB8QtUPvh/bOwKLYsqU1hwQCet8E98jkn/5f4jtG+/x5Zd80I0Ez+tlbjiBmrrQfOKh+i8ipfzHD8JtoreQ==} - engines: {node: '>=18'} + cspell-io@8.13.1: dependencies: - '@cspell/cspell-service-bus': 8.6.1 - dev: true + '@cspell/cspell-service-bus': 8.13.1 + '@cspell/url': 8.13.1 - /cspell-lib@8.6.1: - resolution: {integrity: sha512-kGeDUypRtThFT81IdUK7yU8eUwO5MYWj8pGQ0N8WFsqbCahJrUdcocceVSpnCX48W3CXu12DkqYG9kv5Umn7Xw==} - engines: {node: '>=18'} + cspell-lib@8.13.1: dependencies: - '@cspell/cspell-bundled-dicts': 8.6.1 - '@cspell/cspell-pipe': 8.6.1 - '@cspell/cspell-resolver': 8.6.1 - '@cspell/cspell-types': 8.6.1 - '@cspell/dynamic-import': 8.6.1 - '@cspell/strong-weak-map': 8.6.1 + '@cspell/cspell-bundled-dicts': 8.13.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-resolver': 8.13.1 + '@cspell/cspell-types': 8.13.1 + '@cspell/dynamic-import': 8.13.1 + '@cspell/strong-weak-map': 8.13.1 + '@cspell/url': 8.13.1 clear-module: 4.1.2 - comment-json: 4.2.3 - configstore: 6.0.0 - cspell-config-lib: 8.6.1 - cspell-dictionary: 8.6.1 - cspell-glob: 8.6.1 - cspell-grammar: 8.6.1 - cspell-io: 8.6.1 - cspell-trie-lib: 8.6.1 + comment-json: 4.2.4 + cspell-config-lib: 8.13.1 + cspell-dictionary: 8.13.1 + cspell-glob: 8.13.1 + cspell-grammar: 8.13.1 + cspell-io: 8.13.1 + cspell-trie-lib: 8.13.1 + env-paths: 3.0.0 fast-equals: 5.0.1 gensequence: 7.0.0 import-fresh: 3.3.0 resolve-from: 5.0.0 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - dev: true + xdg-basedir: 5.1.0 - /cspell-trie-lib@8.6.1: - resolution: {integrity: sha512-iuJuAyWoqTH/TpFAR/ISJGQQoW3oiw54GyvXIucPoCJt/jgQONDuzqPW+skiLvcgcTbXCN9dutZTb2gImIkmpw==} - engines: {node: '>=18'} + cspell-trie-lib@8.13.1: dependencies: - '@cspell/cspell-pipe': 8.6.1 - '@cspell/cspell-types': 8.6.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 gensequence: 7.0.0 - dev: true - /cspell@8.6.1: - resolution: {integrity: sha512-/Qle15v4IQe7tViSWX0+RCZJ2HJ4HUCZV9Z4uOVasNUz+DWCrxysNR+pfCRYuLX/6lQdqCM9QCR9GZc7a2KIVA==} - engines: {node: '>=18'} - hasBin: true + cspell@8.13.1: dependencies: - '@cspell/cspell-json-reporter': 8.6.1 - '@cspell/cspell-pipe': 8.6.1 - '@cspell/cspell-types': 8.6.1 - '@cspell/dynamic-import': 8.6.1 + '@cspell/cspell-json-reporter': 8.13.1 + '@cspell/cspell-pipe': 8.13.1 + '@cspell/cspell-types': 8.13.1 + '@cspell/dynamic-import': 8.13.1 + '@cspell/url': 8.13.1 chalk: 5.3.0 chalk-template: 1.1.0 - commander: 12.0.0 - cspell-gitignore: 8.6.1 - cspell-glob: 8.6.1 - cspell-io: 8.6.1 - cspell-lib: 8.6.1 + commander: 12.1.0 + cspell-dictionary: 8.13.1 + cspell-gitignore: 8.13.1 + cspell-glob: 8.13.1 + cspell-io: 8.13.1 + cspell-lib: 8.13.1 fast-glob: 3.3.2 fast-json-stable-stringify: 2.1.0 - file-entry-cache: 8.0.0 + file-entry-cache: 9.0.0 get-stdin: 9.0.0 - semver: 7.6.0 + semver: 7.6.3 strip-ansi: 7.1.0 - vscode-uri: 3.0.8 - dev: true - /cz-conventional-changelog@3.3.0(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} + cssesc@3.0.0: {} + + cz-conventional-changelog@3.3.0(@types/node@22.1.0)(typescript@5.4.5): dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@18.11.9)(typescript@5.4.3) + commitizen: 4.3.0(@types/node@22.1.0)(typescript@5.4.5) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 - word-wrap: 1.2.3 + word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@18.11.9)(typescript@5.4.3) + '@commitlint/load': 19.2.0(@types/node@22.1.0)(typescript@5.4.5) transitivePeerDependencies: - '@types/node' - typescript - dev: true - - /dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} - dev: true - /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} - dev: true + dargs@8.1.0: {} - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + deassert@1.0.2(rollup@4.20.0): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.20.0) + acorn: 8.12.1 + acorn-walk: 8.3.2 + magic-string: 0.30.11 + transitivePeerDependencies: + - rollup + + debug@3.2.7: dependencies: ms: 2.1.3 - dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.6: dependencies: ms: 2.1.2 - dev: true - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true - - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: true + dedent@0.7.0: {} - /deep-freeze@0.0.1: - resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==} - dev: true + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge-ts@5.1.0: - resolution: {integrity: sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==} - engines: {node: '>=16.0.0'} + deep-is@0.1.4: {} - /deepmerge@4.3.0: - resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} - engines: {node: '>=0.10.0'} - dev: true + deepmerge-ts@7.1.0: {} - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - dev: true - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - dev: true - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - dev: true - /detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: true + defu@6.1.4: {} - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true + detect-file@1.0.0: {} - /detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - dev: true + detect-indent@6.1.0: {} - /detect-newline@4.0.0: - resolution: {integrity: sha512-1aXUEPdfGdzVPFpzGJJNgq9o81bGg1s09uxTWsqBlo9PI332uyJRQq13+LK/UN4JfxJbFdCXonUFQ9R/p7yCtw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + detect-indent@7.0.1: {} - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true + detect-newline@4.0.1: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dev: true - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + doctrine@3.0.0: dependencies: - is-obj: 2.0.0 - dev: true + esutils: 2.0.3 - /dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 - dev: true - /duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer2@0.1.4: dependencies: readable-stream: 2.3.8 - dev: true - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + eastasianwidth@0.2.0: {} - /easy-table@1.2.0: - resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + easy-table@1.2.0: dependencies: ansi-regex: 5.0.1 optionalDependencies: wcwidth: 1.0.1 - dev: true - /electron-to-chromium@1.4.715: - resolution: {integrity: sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==} - dev: true + electron-to-chromium@1.4.796: {} - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: true - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true + emoji-regex@10.3.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + emoji-regex@8.0.0: {} - /emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: true + emoji-regex@9.2.2: {} - /encode-registry@3.0.1: - resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==} - engines: {node: '>=10'} - dependencies: - mem: 8.1.1 - dev: true + emojilib@2.4.0: {} - /enhanced-resolve@5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - dev: true - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true + entities@4.5.0: {} - /env-ci@11.0.0: - resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} - engines: {node: ^18.17 || >=20.6.1} + env-ci@11.0.0: dependencies: execa: 8.0.1 java-properties: 1.0.2 - dev: true - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true + env-paths@2.2.1: {} - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true + env-paths@3.0.0: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + environment@1.1.0: {} + + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - dev: true - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} - engines: {node: '>= 0.4'} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -2848,7 +6018,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -2879,114 +6049,105 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - dev: true - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: true + es-errors@1.3.0: {} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + es-module-lexer@1.5.4: {} + + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - dev: true - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true + escalade@3.1.2: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true + escape-string-regexp@1.0.5: {} - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: true + escape-string-regexp@4.0.0: {} - /eslint-compat-utils@0.5.0(eslint@9.6.0): - resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.8.0): dependencies: - eslint: 9.6.0 - semver: 7.6.0 - dev: true + eslint: 9.8.0 + semver: 7.6.3 - /eslint-config-prettier@9.1.0(eslint@9.6.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@9.8.0): dependencies: - eslint: 9.6.0 - dev: true + eslint: 9.8.0 - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-flat-config-utils@0.3.0: + dependencies: + '@types/eslint': 9.6.0 + pathe: 1.1.2 + + eslint-formatting-reporter@0.0.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + prettier-linter-helpers: 1.0.0 + + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 - resolve: 1.22.4 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@9.6.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0): dependencies: - debug: 4.3.4 - enhanced-resolve: 5.12.0 - eslint: 9.6.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) + debug: 4.3.6 + enhanced-resolve: 5.17.0 + eslint: 9.8.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.8.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.3 + get-tsconfig: 4.7.5 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -2994,103 +6155,90 @@ packages: - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-merge-processors@0.1.0(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-module-utils@2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0): dependencies: - '@typescript-eslint/parser': 7.3.1(eslint@9.6.0)(typescript@5.4.3) debug: 3.2.7 - eslint: 9.6.0 + optionalDependencies: + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@9.6.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0) transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-es-x@7.6.0(eslint@9.6.0): - resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' + eslint-parser-plain@0.1.0: {} + + eslint-plugin-es-x@7.7.0(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.6.2 - eslint: 9.6.0 - eslint-compat-utils: 0.5.0(eslint@9.6.0) - dev: true + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) - /eslint-plugin-eslint-comments@3.2.0(eslint@9.6.0): - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' + eslint-plugin-eslint-comments@3.2.0(eslint@9.8.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.6.0 + eslint: 9.8.0 ignore: 5.3.1 - dev: true - /eslint-plugin-functional@6.3.0(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-QuODFnj0kaQAIicniMQaV9t9aCkwJo6Ibx/5pDVWgluFZKwl9jfUZL09jF5S0E9A0eL45hq7sCybAb7FEnIorQ==} - engines: {node: '>=16.10.0'} - peerDependencies: - eslint: ^8.0.0 - typescript: '>=4.3.5' - peerDependenciesMeta: - typescript: - optional: true + eslint-plugin-format@0.1.2(eslint@9.8.0): dependencies: - '@typescript-eslint/utils': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - deepmerge-ts: 5.1.0 - escape-string-regexp: 4.0.0 - eslint: 9.6.0 - is-immutable-type: 2.0.4(eslint@9.6.0)(typescript@5.4.3) - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + '@dprint/formatter': 0.3.0 + '@dprint/markdown': 0.17.1 + '@dprint/toml': 0.6.2 + eslint: 9.8.0 + eslint-formatting-reporter: 0.0.0(eslint@9.8.0) + eslint-parser-plain: 0.1.0 + prettier: 3.3.3 + synckit: 0.9.1 + + eslint-plugin-functional@7.0.0-rc.1(eslint@9.8.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/utils': 8.0.0(eslint@9.8.0)(typescript@5.4.5) + deepmerge-ts: 7.1.0 + escape-string-regexp: 5.0.0 + eslint: 9.8.0 + is-immutable-type: 4.0.0(eslint@9.8.0)(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.4.5) + ts-declaration-location: 1.0.4(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import-x@3.1.0(eslint@9.8.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.4.5) + debug: 4.3.6 + doctrine: 3.0.0 + eslint: 9.8.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.7.5 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.6.3 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.8.0): dependencies: - '@typescript-eslint/parser': 7.3.1(eslint@9.6.0)(typescript@5.4.3) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.6.0 + eslint: 9.8.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.6.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.8.0))(eslint@9.8.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -3100,125 +6248,115 @@ packages: object.values: 1.2.0 semver: 6.3.1 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.0.0(eslint@9.8.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-jsdoc@48.2.1(eslint@9.6.0): - resolution: {integrity: sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint-plugin-jsdoc@48.11.0(eslint@9.8.0): dependencies: - '@es-joy/jsdoccomment': 0.42.0 + '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.4 + debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: 9.6.0 - esquery: 1.5.0 - is-builtin-module: 3.2.1 - semver: 7.6.0 + eslint: 9.8.0 + espree: 10.1.0 + esquery: 1.6.0 + parse-imports: 2.1.1 + semver: 7.6.3 spdx-expression-parse: 4.0.0 + synckit: 0.9.1 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-markdown@3.0.1(eslint@9.6.0): - resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-jsonc@2.16.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + + eslint-plugin-markdown@5.1.0(eslint@9.8.0): dependencies: - eslint: 9.6.0 + eslint: 9.8.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-n@16.6.2(eslint@9.6.0): - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' + eslint-plugin-n@17.10.2(eslint@9.8.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - builtins: 5.0.1 - eslint: 9.6.0 - eslint-plugin-es-x: 7.6.0(eslint@9.6.0) - get-tsconfig: 4.7.3 - globals: 13.24.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + enhanced-resolve: 5.17.0 + eslint: 9.8.0 + eslint-plugin-es-x: 7.7.0(eslint@9.8.0) + get-tsconfig: 4.7.5 + globals: 15.9.0 ignore: 5.3.1 - is-builtin-module: 3.2.1 - is-core-module: 2.13.1 - minimatch: 3.1.2 - resolve: 1.22.4 - semver: 7.6.0 - dev: true + minimatch: 9.0.5 + semver: 7.6.3 - /eslint-plugin-optimize-regex@1.2.1: - resolution: {integrity: sha512-fUaU7Tj1G/KSTDTABJw4Wp427Rl7RPl9ViYTu1Jrv36fJw4DFhd4elPdXiuYtdPsNsvzn9GcVlKEssGIVjw0UQ==} - engines: {node: '>=10'} + eslint-plugin-no-only-tests@3.1.0: {} + + eslint-plugin-optimize-regex@1.2.1: dependencies: regexp-tree: 0.1.27 - dev: true - /eslint-plugin-prettier@5.1.3(@types/eslint@8.56.6)(eslint-config-prettier@9.1.0)(eslint@9.6.0)(prettier@3.2.5): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@9.8.0))(eslint@9.8.0)(prettier@3.3.3): dependencies: - '@types/eslint': 8.56.6 - eslint: 9.6.0 - eslint-config-prettier: 9.1.0(eslint@9.6.0) - prettier: 3.2.5 + eslint: 9.8.0 + prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 - dev: true + synckit: 0.9.1 + optionalDependencies: + '@types/eslint': 9.6.0 + eslint-config-prettier: 9.1.0(eslint@9.8.0) - /eslint-plugin-promise@6.1.1(eslint@9.6.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint-plugin-promise@7.0.0(eslint@9.8.0): dependencies: - eslint: 9.6.0 - dev: true + eslint: 9.8.0 - /eslint-plugin-sonarjs@0.24.0(eslint@9.6.0): - resolution: {integrity: sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg==} - engines: {node: '>=16'} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-regexp@2.6.0(eslint@9.8.0): dependencies: - eslint: 9.6.0 - dev: true + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + comment-parser: 1.4.1 + eslint: 9.8.0 + jsdoc-type-pratt-parser: 4.0.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 - /eslint-plugin-unicorn@51.0.1(eslint@9.6.0): - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' + eslint-plugin-sonarjs@1.0.4(eslint@9.8.0): + dependencies: + eslint: 9.8.0 + + eslint-plugin-toml@0.11.1(eslint@9.8.0): + dependencies: + debug: 4.3.6 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@55.0.0(eslint@9.8.0): dependencies: - '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint/eslintrc': 2.1.4 + '@babel/helper-validator-identifier': 7.24.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.36.1 - eslint: 9.6.0 - esquery: 1.5.0 + core-js-compat: 3.37.1 + eslint: 9.8.0 + esquery: 1.6.0 + globals: 15.9.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -3226,52 +6364,89 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.0 + semver: 7.6.3 strip-indent: 3.0.0 + + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/utils': 7.18.0(eslint@9.8.0)(typescript@5.4.5) + eslint: 9.8.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.0.0(@typescript-eslint/parser@8.0.0(eslint@9.8.0)(typescript@5.4.5))(eslint@9.8.0)(typescript@5.4.5) transitivePeerDependencies: - supports-color - dev: true + - typescript - /eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-plugin-vue@9.27.0(eslint@9.8.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + eslint: 9.8.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.0 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.8.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.14.0(eslint@9.8.0): + dependencies: + debug: 4.3.6 + eslint: 9.8.0 + eslint-compat-utils: 0.5.1(eslint@9.8.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.27)(eslint@9.8.0): + dependencies: + '@vue/compiler-sfc': 3.4.27 + eslint: 9.8.0 + + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /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} - dev: true + eslint-scope@8.0.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 - /eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true + eslint-typegen@0.3.0(eslint@9.8.0): + dependencies: + '@types/eslint': 9.6.0 + eslint: 9.8.0 + json-schema-to-typescript-lite: 14.0.1 + ohash: 1.1.3 - /eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.0.0: {} + + eslint@9.8.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.6.2 - '@eslint/config-array': 0.17.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.8.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/config-array': 0.17.1 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.8.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -3286,72 +6461,43 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true - /espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.1.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 - dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 - dev: true - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.6.0: dependencies: estraverse: 5.3.0 - dev: true - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - dev: true - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true + estraverse@5.3.0: {} - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + estree-walker@2.0.2: {} - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true + esutils@2.0.3: {} - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true + eventemitter3@5.0.1: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -3362,476 +6508,308 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + execa@8.0.1: dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true - /expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} + execa@9.2.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.0.2 + + expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 - dev: true - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + fast-deep-equal@3.1.3: {} - /fast-diff@1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} - dev: true + fast-diff@1.3.0: {} - /fast-equals@5.0.1: - resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} - engines: {node: '>=6.0.0'} - dev: true + fast-equals@5.0.1: {} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true + micromatch: 4.0.7 - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true + fast-json-stable-stringify@2.1.0: {} - /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - dev: true + fast-levenshtein@2.0.6: {} - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fastq@1.17.1: dependencies: reusify: 1.0.4 - dev: true - - /fetch-blob@2.1.2: - resolution: {integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==} - engines: {node: ^10.17.0 || >=12.3.0} - peerDependencies: - domexception: '*' - peerDependenciesMeta: - domexception: - optional: true - dev: true - /figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} - engines: {node: '>=4'} + figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /figures@6.1.0: - resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} - engines: {node: '>=18'} + figures@6.1.0: dependencies: is-unicode-supported: 2.0.0 - dev: true - /file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + file-entry-cache@9.0.0: dependencies: - to-regex-range: 5.0.1 - dev: true + flat-cache: 5.0.0 - /filter-iterator@0.0.1: - resolution: {integrity: sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA==} - dev: true - - /filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 - /find-node-modules@2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + find-node-modules@2.1.3: dependencies: findup-sync: 4.0.0 merge: 2.1.1 - dev: true - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true + find-root@1.1.0: {} - /find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - dev: true + find-up-simple@1.0.0: {} - /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + find-up@2.1.0: dependencies: locate-path: 2.0.0 - dev: true - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true - /find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} + find-up@7.0.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 unicorn-magic: 0.1.0 - dev: true - /find-versions@5.1.0: - resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} - engines: {node: '>=12'} + find-versions@6.0.0: dependencies: semver-regex: 4.0.5 - dev: true + super-regex: 1.0.0 - /findup-sync@4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} + findup-sync@4.0.0: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.5 + micromatch: 4.0.7 resolve-dir: 1.0.1 - dev: true - /flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - dev: true - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + flatted@3.3.1: {} + + for-each@0.3.3: dependencies: is-callable: 1.2.7 - dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true - /from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + from2@2.3.0: dependencies: inherits: 2.0.4 - readable-stream: 2.3.8 - dev: true - - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + readable-stream: 2.3.8 - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} - engines: {node: '>=14.14'} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + universalify: 2.0.1 - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + universalify: 2.0.1 - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true + fs.realpath@1.0.0: {} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true + fsevents@2.3.3: optional: true - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true + function-bind@1.1.2: {} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + function-timeout@1.0.2: {} + + function.prototype.name@1.1.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gensequence@7.0.0: - resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} - engines: {node: '>=18'} - dev: true + gensequence@7.0.0: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - dev: true + get-east-asian-width@1.2.0: {} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 - dev: true - /get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - dev: true + get-stdin@9.0.0: {} - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true + get-stream@6.0.1: {} - /get-stream@7.0.0: - resolution: {integrity: sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw==} - engines: {node: '>=16'} - dev: true + get-stream@7.0.1: {} - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true + get-stream@8.0.1: {} - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 - dev: true - /git-hooks-list@3.1.0: - resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} - dev: true + git-hooks-list@3.1.0: {} - /git-log-parser@1.2.0: - resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} + git-log-parser@1.2.0: dependencies: argv-formatter: 1.0.0 spawn-error-forwarder: 1.0.0 split2: 1.0.0 stream-combiner2: 1.1.1 through2: 2.0.5 - traverse: 0.6.7 - dev: true + traverse: 0.6.9 - /git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - hasBin: true + git-raw-commits@4.0.0: dependencies: dargs: 8.1.0 meow: 12.1.1 split2: 4.2.0 - dev: true - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - dev: true - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.4.1: dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true + jackspeak: 3.4.0 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + glob@11.0.0: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true + foreground-child: 3.1.1 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.6 + minimatch: 3.1.2 once: 1.4.0 - dev: true + path-is-absolute: 1.0.1 - /global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + global-directory@4.0.1: dependencies: ini: 4.1.1 - dev: true - /global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 is-windows: 1.0.2 resolve-dir: 1.0.1 - dev: true - /global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} + global-prefix@1.0.2: dependencies: expand-tilde: 2.0.2 homedir-polyfill: 1.0.3 ini: 1.3.8 is-windows: 1.0.2 which: 1.3.1 - dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@13.24.0: dependencies: type-fest: 0.20.2 - dev: true - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - dev: true + globals@14.0.0: {} - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globals@15.9.0: {} + + globalthis@1.0.4: dependencies: define-properties: 1.2.1 - dev: true + gopd: 1.0.1 - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -3839,22 +6817,16 @@ packages: ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 - dev: true - /globby@13.1.4: - resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 - dev: true - /globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} - engines: {node: '>=18'} + globby@14.0.1: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 @@ -3862,30 +6834,18 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 - dev: true - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - dev: true - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true + graceful-fs@4.2.10: {} - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true + graceful-fs@4.2.11: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true + graphemer@1.4.0: {} - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} - engines: {node: '>=0.4.7'} - hasBin: true + handlebars@4.7.8: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -3893,226 +6853,126 @@ packages: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.17.4 - dev: true - - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true + has-bigints@1.0.2: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true + has-flag@3.0.0: {} - /has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - dev: true + has-flag@4.0.0: {} - /has-own-property@0.1.0: - resolution: {integrity: sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw==} - dev: true + has-own-prop@2.0.0: {} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - dev: true - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - dev: true + has-proto@1.0.3: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true + has-symbols@1.0.3: {} - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - dev: true - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - dev: true - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true + helpertypes@0.0.19: {} - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} + highlight.js@10.7.3: {} + + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 - dev: true - /hook-std@3.0.0: - resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + hook-std@3.0.0: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@7.0.2: dependencies: - lru-cache: 10.2.0 - dev: true + lru-cache: 10.2.2 - /http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} - engines: {node: '>= 14'} + http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.0 - debug: 4.3.4 + agent-base: 7.1.1 + debug: 4.3.6 transitivePeerDependencies: - supports-color - dev: true - /https-proxy-agent@7.0.0: - resolution: {integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==} - engines: {node: '>= 14'} + https-proxy-agent@7.0.4: dependencies: - agent-base: 7.1.0 - debug: 4.3.4 + agent-base: 7.1.1 + debug: 4.3.6 transitivePeerDependencies: - supports-color - dev: true - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true + human-signals@2.1.0: {} - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true + human-signals@5.0.0: {} - /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} - engines: {node: '>=18'} - hasBin: true - dev: true + human-signals@7.0.0: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + husky@9.1.4: {} + + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - dev: true - /identity-function@1.0.0: - resolution: {integrity: sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw==} - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true + ieee754@1.2.1: {} - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - dev: true + ignore@5.3.1: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true - /import-from-esm@1.3.3: - resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} - engines: {node: '>=16.20'} + import-from-esm@1.3.4: dependencies: - debug: 4.3.4 - import-meta-resolve: 4.0.0 + debug: 4.3.6 + import-meta-resolve: 4.1.0 transitivePeerDependencies: - supports-color - dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - dev: true + import-meta-resolve@4.1.0: {} - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true + importx@0.4.3: + dependencies: + bundle-require: 5.0.0(esbuild@0.21.5) + debug: 4.3.6 + esbuild: 0.21.5 + jiti: 2.0.0-beta.2 + jiti-v1: jiti@1.21.6 + pathe: 1.1.2 + pkg-types: 1.1.3 + tsx: 4.16.5 + transitivePeerDependencies: + - supports-color - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true + imurmurhash@0.1.4: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@4.0.0: {} - /index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} - engines: {node: '>=18'} - dev: true + indent-string@5.0.0: {} - /individual@3.0.0: - resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - dev: true + index-to-position@0.1.2: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true + ini@1.3.8: {} - /ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + ini@4.1.1: {} - /ini@4.1.2: - resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + ini@4.1.3: {} - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} - engines: {node: '>=12.0.0'} + inquirer@8.2.5: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -4124,713 +6984,392 @@ packages: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.8.0 + rxjs: 7.8.1 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 wrap-ansi: 7.0.0 - dev: true - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.4 - dev: true + side-channel: 1.0.6 - /into-stream@7.0.0: - resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} - engines: {node: '>=12'} + into-stream@7.0.0: dependencies: from2: 2.3.0 p-is-promise: 3.0.0 - dev: true - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: true + is-alphabetical@1.0.4: {} - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@1.0.4: dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 - dev: true - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true + is-arrayish@0.2.1: {} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.2 - dev: true - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 - dev: true - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: true + is-decimal@1.0.4: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true + is-extglob@2.1.1: {} - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true + is-fullwidth-code-point@4.0.0: {} - /is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} + is-fullwidth-code-point@5.0.0: dependencies: get-east-asian-width: 1.2.0 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - dev: true - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: true + is-hexadecimal@1.0.4: {} - /is-immutable-type@2.0.4(eslint@9.6.0)(typescript@5.4.3): - resolution: {integrity: sha512-kjNGSmAQdEj7NJ/Cim9u6OUB/efEsuoUU3fCygl+o0DBwNS0blVjRHumRBX9cBwpZQEQaYVpVLO635HqWvdZRw==} - peerDependencies: - eslint: '*' - typescript: '>=4.7.4' + is-immutable-type@4.0.0(eslint@9.8.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/type-utils': 7.3.1(eslint@9.6.0)(typescript@5.4.3) - eslint: 9.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - typescript: 5.4.3 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.8.0)(typescript@5.4.5) + eslint: 9.8.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + ts-declaration-location: 1.0.4(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - /is-iterable@1.1.1: - resolution: {integrity: sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ==} - engines: {node: '>= 4'} - dev: true + is-interactive@1.0.0: {} - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true + is-language-code@3.1.0: + dependencies: + '@babel/runtime': 7.24.7 - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.3: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - - /is-number@4.0.0: - resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true + is-number@7.0.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true + is-obj@2.0.0: {} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - dev: true + is-path-inside@3.0.3: {} - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - dev: true + is-plain-obj@4.1.0: {} - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true + is-stream@2.0.1: {} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + is-stream@3.0.0: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-stream@4.0.1: {} + + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} + is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 - dev: true - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.13: dependencies: which-typed-array: 1.1.15 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: true + is-unicode-supported@0.1.0: {} - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} - engines: {node: '>=18'} - dev: true + is-unicode-supported@2.0.0: {} - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: true + is-utf8@0.2.1: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - dev: true - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true + isbot@3.8.0: {} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: true + isexe@2.0.0: {} - /issue-parser@7.0.0: - resolution: {integrity: sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==} - engines: {node: ^18.17 || >=20.6.1} + issue-parser@7.0.1: dependencies: lodash.capitalize: 4.2.1 lodash.escaperegexp: 4.1.2 lodash.isplainobject: 4.0.6 lodash.isstring: 4.0.1 lodash.uniqby: 4.7.0 - dev: true - /iterable-lookahead@1.0.0: - resolution: {integrity: sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ==} - engines: {node: '>=4'} - dev: true + jackspeak@3.4.0: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@4.0.1: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true - /java-properties@1.0.2: - resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} - engines: {node: '>= 0.6.0'} - dev: true + java-properties@1.0.2: {} - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - dev: true + jiti@1.21.6: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true + jiti@2.0.0-beta.2: {} - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-tokens@4.0.0: {} + + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - dev: true - - /jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} - dev: true - - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - dev: true + jsdoc-type-pratt-parser@4.0.0: {} - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true + jsesc@0.5.0: {} - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true + jsesc@3.0.2: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true + json-buffer@3.0.1: {} - /json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + json-parse-better-errors@1.0.2: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true + json-schema-to-typescript-lite@14.0.1: + dependencies: + '@apidevtools/json-schema-ref-parser': 11.6.4 + '@types/json-schema': 7.0.15 - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true + json-schema-traverse@0.4.1: {} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true + json-schema-traverse@1.0.0: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true + json5@2.2.3: {} - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: true + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.12.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.3 - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonc-parser@3.2.1: {} + + jsonfile@6.1.0: dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: true - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: true + jsonparse@1.3.1: {} - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + jsonpointer@5.0.1: {} + + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - dev: true - /knip@5.5.0(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-50hMAFPBW2z/IJeW5rNKKNNLXVQNJFJDQ72C4o+vsCNCiPv5mn4M52iQVsp8hwjOcVGYB7bKFKaNVzPAQ6C4gw==} - engines: {node: '>=18.6.0'} - hasBin: true - peerDependencies: - '@types/node': '>=18' - typescript: '>=5.0.4' + knip@5.27.0(@types/node@22.1.0)(typescript@5.4.5): dependencies: - '@ericcornelissen/bash-parser': 0.5.2 - '@nodelib/fs.walk': 2.0.0 - '@npmcli/map-workspaces': 3.0.4 - '@npmcli/package-json': 5.0.0 - '@pnpm/logger': 5.0.0 - '@pnpm/workspace.pkgs-graph': 2.0.15(@pnpm/logger@5.0.0) + '@nodelib/fs.walk': 1.2.8 '@snyk/github-codeowners': 1.1.0 - '@types/node': 18.11.9 - '@types/picomatch': 2.3.3 + '@types/node': 22.1.0 easy-table: 1.2.0 fast-glob: 3.3.2 - jiti: 1.21.0 + jiti: 1.21.6 js-yaml: 4.1.0 - micromatch: 4.0.5 minimist: 1.2.8 - picocolors: 1.0.0 - picomatch: 4.0.1 + picocolors: 1.0.1 + picomatch: 4.0.2 pretty-ms: 9.0.0 - smol-toml: 1.1.4 + resolve: 1.22.8 + smol-toml: 1.2.1 strip-json-comments: 5.0.1 summary: 2.1.0 - typescript: 5.4.3 - zod: 3.22.4 - zod-validation-error: 3.0.3(zod@3.22.4) - transitivePeerDependencies: - - bluebird - - domexception - dev: true + typescript: 5.4.5 + zod: 3.23.8 + zod-validation-error: 3.3.0(zod@3.23.8) - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} - dev: true + lilconfig@3.1.2: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true + lines-and-columns@1.2.4: {} - /linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 - dev: true - /lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} - engines: {node: '>=18.12.0'} - hasBin: true + lint-staged@15.2.8: dependencies: chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 + commander: 12.1.0 + debug: 4.3.6 execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.7 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.4 + yaml: 2.5.0 transitivePeerDependencies: - supports-color - dev: true - /listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} - engines: {node: '>=18.0.0'} + listr2@8.2.4: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.0 + log-update: 6.1.0 + rfdc: 1.4.1 wrap-ansi: 9.0.0 - dev: true - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} + load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 - dev: true - /load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} + load-tsconfig@0.2.5: {} + + local-pkg@0.5.0: dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: true + mlly: 1.7.1 + pkg-types: 1.1.3 - /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + locate-path@2.0.0: dependencies: p-locate: 2.0.0 path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - dev: true - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 - dev: true - - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: true + lodash-es@4.17.21: {} - /lodash.capitalize@4.2.1: - resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} - dev: true + lodash.camelcase@4.3.0: {} - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: true + lodash.capitalize@4.2.1: {} - /lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - dev: true + lodash.escaperegexp@4.1.2: {} - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true + lodash.isplainobject@4.0.6: {} - /lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: true + lodash.isstring@4.0.1: {} - /lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - dev: true + lodash.kebabcase@4.1.1: {} - /lodash.map@4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} - dev: true + lodash.map@4.6.0: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true + lodash.merge@4.6.2: {} - /lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - dev: true + lodash.mergewith@4.6.2: {} - /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - dev: true + lodash.snakecase@4.1.1: {} - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true + lodash.startcase@4.4.0: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: true + lodash.uniq@4.5.0: {} - /lodash.uniqby@4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - dev: true + lodash.uniqby@4.7.0: {} - /lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - dev: true + lodash.upperfirst@4.3.1: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - dev: true - /log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} - engines: {node: '>=18'} + log-update@6.1.0: dependencies: - ansi-escapes: 6.2.1 - cli-cursor: 4.0.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 - dev: true - - /longest@2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} - dev: true - - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - /magic-string@0.16.0: - resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==} - dependencies: - vlq: 0.2.3 - dev: true + longest@2.0.1: {} - /magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true + lru-cache@10.2.2: {} - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true + lru-cache@11.0.0: {} - /map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} + magic-string@0.30.11: dependencies: - p-defer: 1.0.0 - dev: true + '@jridgewell/sourcemap-codec': 1.5.0 - /map-obj@2.0.0: - resolution: {integrity: sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==} - engines: {node: '>=4'} - dev: true - - /markdown-it@14.0.0: - resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} - hasBin: true + markdown-it@14.1.0: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -4838,655 +7377,310 @@ packages: mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 - dev: true - /markdownlint-cli@0.39.0: - resolution: {integrity: sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==} - engines: {node: '>=18'} - hasBin: true + markdownlint-cli@0.41.0: dependencies: - commander: 11.1.0 + commander: 12.1.0 get-stdin: 9.0.0 - glob: 10.3.10 + glob: 10.4.1 ignore: 5.3.1 js-yaml: 4.1.0 jsonc-parser: 3.2.1 - markdownlint: 0.33.0 - minimatch: 9.0.3 + jsonpointer: 5.0.1 + markdownlint: 0.34.0 + minimatch: 9.0.5 run-con: 1.3.2 - dev: true + smol-toml: 1.2.1 - /markdownlint-micromark@0.1.8: - resolution: {integrity: sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==} - engines: {node: '>=16'} - dev: true + markdownlint-micromark@0.1.9: {} - /markdownlint@0.33.0: - resolution: {integrity: sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==} - engines: {node: '>=18'} + markdownlint@0.34.0: dependencies: - markdown-it: 14.0.0 - markdownlint-micromark: 0.1.8 - dev: true + markdown-it: 14.1.0 + markdownlint-micromark: 0.1.9 - /marked-terminal@7.0.0(marked@12.0.1): - resolution: {integrity: sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==} - engines: {node: '>=16.0.0'} - peerDependencies: - marked: '>=1 <13' + marked-terminal@7.0.0(marked@12.0.2): dependencies: ansi-escapes: 6.2.1 chalk: 5.3.0 cli-highlight: 2.1.11 - cli-table3: 0.6.3 - marked: 12.0.1 + cli-table3: 0.6.5 + marked: 12.0.2 node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 - dev: true - /marked@12.0.1: - resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} - engines: {node: '>= 18'} - hasBin: true - dev: true + marked@12.0.2: {} - /mdast-util-from-markdown@0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + mdast-util-from-markdown@0.8.5: dependencies: - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.15 mdast-util-to-string: 2.0.0 micromark: 2.11.4 parse-entities: 2.0.0 unist-util-stringify-position: 2.0.3 transitivePeerDependencies: - supports-color - dev: true - - /mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: true - /mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - dev: true + mdast-util-to-string@2.0.0: {} - /mem@6.1.1: - resolution: {integrity: sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==} - engines: {node: '>=8'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: true + mdurl@2.0.0: {} - /mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - dev: true + meow@12.1.1: {} - /meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - dev: true + meow@13.2.0: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true + merge2@1.4.1: {} - /merge@2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} - dev: true + merge@2.1.1: {} - /micromark@2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + micromark@2.11.4: dependencies: - debug: 4.3.4 + debug: 4.3.6 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color - dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.7: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 - dev: true - /mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} - engines: {node: '>=16'} - hasBin: true - dev: true + mime@4.0.3: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true + mimic-fn@2.1.0: {} - /mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - dev: true + mimic-fn@4.0.0: {} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true + mimic-function@5.0.1: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@10.0.1: dependencies: - brace-expansion: 1.1.11 - dev: true + brace-expansion: 2.0.1 - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@3.1.2: dependencies: - brace-expansion: 2.0.1 - dev: true + brace-expansion: 1.1.11 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 - dev: true - /minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true + minimist@1.2.7: {} - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true + minimist@1.2.8: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true + minipass@7.1.2: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.3 - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true + ms@2.1.2: {} - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true + ms@2.1.3: {} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + mute-stream@0.0.8: {} + + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true + nanoid@3.3.7: {} - /ndjson@2.0.0: - resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - json-stringify-safe: 5.0.1 - minimist: 1.2.8 - readable-stream: 3.6.1 - split2: 3.2.2 - through2: 4.0.2 - dev: true + natural-compare@1.4.0: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true + neo-async@2.6.2: {} - /nerf-dart@1.0.0: - resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: true + nerf-dart@1.0.0: {} - /node-emoji@2.1.3: - resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} - engines: {node: '>=18'} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 char-regex: 1.0.2 emojilib: 2.4.0 skin-tone: 2.0.0 - dev: true - - /node-fetch@3.0.0-beta.9: - resolution: {integrity: sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==} - engines: {node: ^10.17 || >=12.3} - dependencies: - data-uri-to-buffer: 3.0.1 - fetch-blob: 2.1.2 - transitivePeerDependencies: - - domexception - dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true + node-releases@2.0.14: {} - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.4 - semver: 5.7.1 + resolve: 1.22.8 + semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} + normalize-package-data@6.0.1: dependencies: - hosted-git-info: 7.0.1 + hosted-git-info: 7.0.2 is-core-module: 2.13.1 - semver: 7.6.0 + semver: 7.6.3 validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} - engines: {node: '>=14.16'} - dev: true - - /npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - semver: 7.6.0 - dev: true - - /npm-normalize-package-bin@3.0.0: - resolution: {integrity: sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - proc-log: 3.0.0 - semver: 7.6.0 - validate-npm-package-name: 5.0.0 - dev: true - /npm-pick-manifest@9.0.0: - resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.0 - npm-package-arg: 11.0.1 - semver: 7.6.0 - dev: true + normalize-url@8.0.1: {} - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 - dev: true - /npm@10.5.0: - resolution: {integrity: sha512-Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - dev: true - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/run-script' - - '@sigstore/tuf' - - abbrev - - archy - - cacache - - chalk - - ci-info - - cli-columns - - cli-table3 - - columnify - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmhook - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - normalize-package-data - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - npmlog - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - spdx-expression-parse - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which - - write-file-atomic + npm@10.8.1: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + object-assign@4.1.1: {} - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true + object-inspect@1.13.1: {} - /object-pairs@0.1.0: - resolution: {integrity: sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA==} - dev: true + object-keys@1.1.1: {} - /object-values@1.0.0: - resolution: {integrity: sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ==} - engines: {node: '>=0.10.0'} - dev: true + object-path@0.11.8: {} - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true - - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 - dev: true - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 - dev: true + es-abstract: 1.23.3 - /object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + object.values@1.2.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + ohash@1.1.3: {} + + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true + word-wrap: 1.2.5 - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + ora@5.4.1: dependencies: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.7.0 + cli-spinners: 2.9.2 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - dev: true - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true - - /p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - dev: true + os-tmpdir@1.0.2: {} - /p-each-series@3.0.0: - resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} - engines: {node: '>=12'} - dev: true + p-each-series@3.0.0: {} - /p-filter@4.1.0: - resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} - engines: {node: '>=18'} + p-filter@4.1.0: dependencies: - p-map: 7.0.1 - dev: true + p-map: 7.0.2 - /p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - dev: true + p-is-promise@3.0.0: {} - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} + p-limit@1.3.0: dependencies: p-try: 1.0.0 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - dev: true - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@4.0.0: dependencies: yocto-queue: 1.0.0 - dev: true - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} + p-locate@2.0.0: dependencies: p-limit: 1.3.0 - dev: true - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - dev: true - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@6.0.0: dependencies: p-limit: 4.0.0 - dev: true - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - /p-map@7.0.1: - resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} - engines: {node: '>=18'} - dev: true + p-map@7.0.2: {} - /p-memoize@4.0.1: - resolution: {integrity: sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==} - engines: {node: '>=10'} - dependencies: - mem: 6.1.1 - mimic-fn: 3.1.0 - dev: true + p-reduce@2.1.0: {} - /p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} - dev: true + p-reduce@3.0.0: {} - /p-reduce@3.0.0: - resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} - engines: {node: '>=12'} - dev: true + p-try@1.0.0: {} - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true + p-try@2.2.0: {} - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true + package-json-from-dist@1.0.0: {} - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - dev: true - /parent-module@2.0.0: - resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} - engines: {node: '>=8'} + parent-module@2.0.0: dependencies: callsites: 3.1.0 - dev: true - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@2.0.0: dependencies: character-entities: 1.2.4 character-entities-legacy: 1.1.4 @@ -5494,326 +7688,176 @@ packages: is-alphanumerical: 1.0.4 is-decimal: 1.0.4 is-hexadecimal: 1.0.4 - dev: true - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + parse-imports@2.1.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} + parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.14.0 - dev: true + type-fest: 4.20.0 - /parse-ms@4.0.0: - resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} - engines: {node: '>=18'} - dev: true - - /parse-npm-tarball-url@3.0.0: - resolution: {integrity: sha512-InpdgIdNe5xWMEUcrVQUniQKwnggBtJ7+SCwh7zQAZwbbIYZV9XdgJyhtmDSSvykFyQXoe4BINnzKTfCwWLs5g==} - engines: {node: '>=8.15'} - dependencies: - semver: 6.3.1 - dev: true + parse-ms@4.0.0: {} - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: true + parse-passwd@1.0.0: {} - /parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 - dev: true - /parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - dev: true + parse5@5.1.1: {} - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true + parse5@6.0.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true + parse5@7.1.2: + dependencies: + entities: 4.5.0 - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true + path-exists@3.0.0: {} - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + path-exists@4.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true + path-exists@5.0.0: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true + path-is-absolute@1.0.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-key@3.1.1: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + path-key@4.0.0: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 - dev: true + path-parse@1.0.7: {} - /path-temp@2.1.0: - resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} - engines: {node: '>=8.15'} + path-scurry@1.11.1: dependencies: - unique-string: 2.0.0 - dev: true + lru-cache: 10.2.2 + minipass: 7.1.2 - /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + path-scurry@2.0.0: dependencies: - pify: 3.0.0 - dev: true + lru-cache: 11.0.0 + minipass: 7.1.2 - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-type@4.0.0: {} - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - dev: true + path-type@5.0.0: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + pathe@1.1.2: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true + picocolors@1.0.1: {} - /picomatch@4.0.1: - resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} - engines: {node: '>=12'} - dev: true + picomatch@2.3.1: {} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + picomatch@4.0.2: {} - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true + pidtree@0.6.0: {} - /pkg-conf@2.1.0: - resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} - engines: {node: '>=4'} + pify@3.0.0: {} + + pkg-conf@2.1.0: dependencies: find-up: 2.1.0 load-json-file: 4.0.0 - dev: true - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - dev: true + pkg-types@1.1.3: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: true + pluralize@8.0.0: {} - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true + possible-typed-array-names@1.0.0: {} - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + postcss-selector-parser@6.1.0: dependencies: - fast-diff: 1.2.0 - dev: true + cssesc: 3.0.0 + util-deprecate: 1.0.2 - /prettier-plugin-packagejson@2.4.12(prettier@3.2.5): - resolution: {integrity: sha512-hifuuOgw5rHHTdouw9VrhT8+Nd7UwxtL1qco8dUfd4XUFQL6ia3xyjSxhPQTsGnSYFraTWy5Omb+MZm/OWDTpQ==} - peerDependencies: - prettier: '>= 1.16.0' - peerDependenciesMeta: - prettier: - optional: true + postcss@8.4.38: dependencies: - prettier: 3.2.5 - sort-package-json: 2.8.0 - synckit: 0.9.0 - dev: true + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - dev: true + prelude-ls@1.2.1: {} - /pretty-ms@9.0.0: - resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} - engines: {node: '>=18'} + prettier-linter-helpers@1.0.0: dependencies: - parse-ms: 4.0.0 - dev: true + fast-diff: 1.3.0 - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true + prettier-plugin-packagejson@2.5.1(prettier@3.3.3): + dependencies: + sort-package-json: 2.10.0 + synckit: 0.9.1 + optionalDependencies: + prettier: 3.3.3 - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dev: true + prettier@3.3.3: {} - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} + pretty-ms@9.0.0: dependencies: - err-code: 2.0.3 - retry: 0.12.0 - dev: true + parse-ms: 4.0.0 - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: true + process-nextick-args@2.0.1: {} - /punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - dev: true + proto-list@1.2.4: {} - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true + punycode.js@2.3.1: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true + punycode@2.3.1: {} - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + queue-microtask@1.2.3: {} + + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: true - - /read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - json-parse-even-better-errors: 3.0.0 - npm-normalize-package-bin: 3.0.0 - dev: true - /read-pkg-up@11.0.0: - resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} - engines: {node: '>=18'} - deprecated: Renamed to read-package-up + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.14.0 - dev: true + type-fest: 4.20.0 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - - /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.0 + normalize-package-data: 6.0.1 parse-json: 8.1.0 - type-fest: 4.14.0 + type-fest: 4.20.0 unicorn-magic: 0.1.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -5822,320 +7866,212 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.1: - resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - dev: true + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regenerator-runtime@0.14.1: {} + + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: - '@pnpm/npm-conf': 2.1.0 - dev: true + '@pnpm/npm-conf': 2.2.2 - /regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - dev: true - /rename-overwrite@5.0.0: - resolution: {integrity: sha512-vSxE5Ww7Jnyotvaxi3Dj0vOMoojH8KMkBfs9xYeW/qNfJiLTcC1fmwTjrbGUq3mQSOCxkG0DbdcvwTUrpvBN4w==} - engines: {node: '>=12.10'} - dependencies: - '@zkochan/rimraf': 2.1.3 - fs-extra: 10.1.0 - dev: true - - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true + repeat-string@1.6.1: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true + require-from-string@2.0.2: {} - /resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} + resolve-dir@1.0.1: dependencies: expand-tilde: 2.0.2 global-modules: 1.0.0 - dev: true - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /reverse-arguments@1.0.0: - resolution: {integrity: sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ==} - dev: true + onetime: 7.0.0 + signal-exit: 4.1.0 - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true + reusify@1.0.4: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 - dev: true + rfdc@1.4.1: {} - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@6.0.1: dependencies: - glob: 10.3.10 - dev: true + glob: 11.0.0 + package-json-from-dist: 1.0.0 - /rollup-plugin-auto-external@2.0.0(rollup@4.13.0): - resolution: {integrity: sha512-HQM3ZkZYfSam1uoZtAB9sK26EiAsfs1phrkf91c/YX+S07wugyRXSigBxrIwiLr5EPPilKYmoMxsrnlGBsXnuQ==} - engines: {node: '>=6'} - peerDependencies: - rollup: '>=0.45.2' + rollup-plugin-ts@3.4.5(@babel/runtime@7.24.7)(rollup@4.20.0)(typescript@5.4.5): dependencies: - builtins: 2.0.1 - read-pkg: 3.0.0 - rollup: 4.13.0 - safe-resolve: 1.0.0 - semver: 5.7.1 - dev: true + '@rollup/pluginutils': 5.1.0(rollup@4.20.0) + '@wessberg/stringutil': 1.0.19 + ansi-colors: 4.1.3 + browserslist: 4.23.1 + browserslist-generator: 2.1.0 + compatfactory: 3.0.0(typescript@5.4.5) + crosspath: 2.0.0 + magic-string: 0.30.11 + rollup: 4.20.0 + ts-clone-node: 3.0.0(typescript@5.4.5) + tslib: 2.6.3 + typescript: 5.4.5 + optionalDependencies: + '@babel/runtime': 7.24.7 - /rollup@4.13.0: - resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup@4.20.0: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.0 - '@rollup/rollup-android-arm64': 4.13.0 - '@rollup/rollup-darwin-arm64': 4.13.0 - '@rollup/rollup-darwin-x64': 4.13.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 - '@rollup/rollup-linux-arm64-gnu': 4.13.0 - '@rollup/rollup-linux-arm64-musl': 4.13.0 - '@rollup/rollup-linux-riscv64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-musl': 4.13.0 - '@rollup/rollup-win32-arm64-msvc': 4.13.0 - '@rollup/rollup-win32-ia32-msvc': 4.13.0 - '@rollup/rollup-win32-x64-msvc': 4.13.0 - fsevents: 2.3.2 - dev: true - - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-con@1.3.2: - resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==} - hasBin: true + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 + fsevents: 2.3.3 + + run-async@2.4.1: {} + + run-con@1.3.2: dependencies: deep-extend: 0.6.0 - ini: 4.1.2 + ini: 4.1.3 minimist: 1.2.8 strip-json-comments: 3.1.1 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - dev: true - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + rxjs@7.8.1: dependencies: - tslib: 2.6.2 - dev: true + tslib: 2.6.3 - /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true - /safe-resolve@1.0.0: - resolution: {integrity: sha512-aQpRvfxoi1y0UxKEU0tNO327kb0/LMo8Xrk64M2u172UqOOLCCM0khxN2OTClDiTqTJz5864GMD1X92j4YiHTg==} - dev: true + safer-buffer@2.1.2: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 - /semantic-release@23.0.6(typescript@5.4.3): - resolution: {integrity: sha512-/r62F4PNhJZhyZYMobcpcACGwpFNQyaVcSmqZQXG50GMbHSBVZQLCvwafqxO1lDQKVgmGmyCEtOVYzwvzvyhVw==} - engines: {node: '>=20.8.1'} - hasBin: true + semantic-release@24.0.0(typescript@5.4.5): dependencies: - '@semantic-release/commit-analyzer': 12.0.0(semantic-release@23.0.6) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.4.5)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.0.2(semantic-release@23.0.6) - '@semantic-release/npm': 12.0.0(semantic-release@23.0.6) - '@semantic-release/release-notes-generator': 13.0.0(semantic-release@23.0.6) + '@semantic-release/github': 10.1.3(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/npm': 12.0.1(semantic-release@24.0.0(typescript@5.4.5)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0(typescript@5.4.5)) aggregate-error: 5.0.0 - cosmiconfig: 9.0.0(typescript@5.4.3) - debug: 4.3.4 + cosmiconfig: 9.0.0(typescript@5.4.5) + debug: 4.3.6 env-ci: 11.0.0 - execa: 8.0.1 + execa: 9.2.0 figures: 6.1.0 - find-versions: 5.1.0 + find-versions: 6.0.0 get-stream: 6.0.1 git-log-parser: 1.2.0 hook-std: 3.0.0 - hosted-git-info: 7.0.1 - import-from-esm: 1.3.3 + hosted-git-info: 7.0.2 + import-from-esm: 1.3.4 lodash-es: 4.17.21 - marked: 12.0.1 - marked-terminal: 7.0.0(marked@12.0.1) - micromatch: 4.0.5 + marked: 12.0.2 + marked-terminal: 7.0.0(marked@12.0.2) + micromatch: 4.0.7 p-each-series: 3.0.0 p-reduce: 3.0.0 - read-pkg-up: 11.0.0 + read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.0 + semver: 7.6.3 semver-diff: 4.0.0 signale: 1.4.0 - yargs: 17.7.1 + yargs: 17.7.2 transitivePeerDependencies: - supports-color - typescript - dev: true - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: - semver: 7.6.0 - dev: true + semver: 7.6.3 - /semver-regex@4.0.5: - resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} - engines: {node: '>=12'} - dev: true + semver-regex@4.0.5: {} - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true + semver@6.3.1: {} - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true + semver@7.6.3: {} - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -6143,587 +8079,343 @@ packages: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 - dev: true - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - /shell-quote-word@1.0.1: - resolution: {integrity: sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg==} - dev: true + shebang-regex@3.0.0: {} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 + es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - dev: true - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /signale@1.4.0: - resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} - engines: {node: '>=6'} + signale@1.4.0: dependencies: chalk: 2.4.2 figures: 2.0.0 pkg-conf: 2.1.0 - dev: true - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + sisteransi@1.0.5: {} + + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: true - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: true + slash@4.0.0: {} - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: true + slash@5.1.0: {} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slashes@3.0.12: {} + + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - dev: true - /smol-toml@1.1.4: - resolution: {integrity: sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q==} - engines: {node: '>= 18', pnpm: '>= 8'} - dev: true + smol-toml@1.2.1: {} - /sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - dev: true + sort-object-keys@1.1.3: {} - /sort-package-json@2.8.0: - resolution: {integrity: sha512-PxeNg93bTJWmDGnu0HADDucoxfFiKkIr73Kv85EBThlI1YQPdc0XovBgg2llD0iABZbu2SlKo8ntGmOP9wOj/g==} - hasBin: true + sort-package-json@2.10.0: dependencies: detect-indent: 7.0.1 - detect-newline: 4.0.0 + detect-newline: 4.0.1 get-stdin: 9.0.0 git-hooks-list: 3.1.0 - globby: 13.1.4 + globby: 13.2.2 is-plain-obj: 4.1.0 + semver: 7.6.3 sort-object-keys: 1.1.3 - dev: true - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.2.0: {} - /spawn-error-forwarder@1.0.0: - resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} - dev: true + source-map@0.6.1: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spawn-error-forwarder@1.0.0: {} + + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.12 - dev: true + spdx-license-ids: 3.0.18 - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true + spdx-exceptions@2.5.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 - dev: true + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 - /spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-expression-parse@4.0.0: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 - dev: true + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 - /spdx-license-ids@3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} - dev: true + spdx-license-ids@3.0.18: {} - /split2@1.0.0: - resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + split2@1.0.0: dependencies: through2: 2.0.5 - dev: true - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.1 - dev: true - - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: true + split2@4.2.0: {} - /ssri@10.0.5: - resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minipass: 7.0.4 - dev: true + stable-hash@0.0.4: {} - /stream-combiner2@1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 readable-stream: 2.3.8 - dev: true - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.3.2: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} - engines: {node: '>=18'} + string-width@7.1.0: dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - dev: true - - /string.fromcodepoint@0.2.1: - resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==} - dev: true - /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true + strip-bom@3.0.0: {} - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true + strip-bom@4.0.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-final-newline@4.0.0: {} + + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true + strip-json-comments@3.1.1: {} - /strip-json-comments@5.0.1: - resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} - engines: {node: '>=14.16'} - dev: true + strip-json-comments@5.0.1: {} - /summary@2.1.0: - resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} - dev: true + summary@2.1.0: {} - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + super-regex@1.0.0: + dependencies: + function-timeout: 1.0.2 + time-span: 5.1.0 + + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.6.2: dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.6.2 - dev: true + tslib: 2.6.3 - /synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 - dev: true + tslib: 2.6.3 - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true + tapable@2.2.1: {} - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - dev: true + temp-dir@3.0.0: {} - /tempy@3.0.0: - resolution: {integrity: sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==} - engines: {node: '>=14.16'} + tempy@3.1.0: dependencies: is-stream: 3.0.0 - temp-dir: 2.0.0 + temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 - dev: true - /text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - dev: true + text-extensions@2.4.0: {} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + text-table@0.2.0: {} - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.1 - dev: true + through@2.3.8: {} - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - dev: true - /to-no-case@1.0.2: - resolution: {integrity: sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==} - dev: true + to-fast-properties@2.0.0: {} - /to-pascal-case@1.0.0: - resolution: {integrity: sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA==} + to-regex-range@5.0.1: dependencies: - to-space-case: 1.0.0 - dev: true + is-number: 7.0.0 - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + toml-eslint-parser@0.10.0: dependencies: - is-number: 7.0.0 - dev: true + eslint-visitor-keys: 3.4.3 - /to-space-case@1.0.0: - resolution: {integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==} + traverse@0.6.9: dependencies: - to-no-case: 1.0.2 - dev: true + gopd: 1.0.1 + typedarray.prototype.slice: 1.0.3 + which-typed-array: 1.1.15 - /traverse@0.6.7: - resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} - dev: true + ts-api-utils@1.3.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 - /ts-api-utils@1.3.0(typescript@5.4.3): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + ts-clone-node@3.0.0(typescript@5.4.5): dependencies: - typescript: 5.4.3 - dev: true + compatfactory: 3.0.0(typescript@5.4.5) + typescript: 5.4.5 - /ts-node@10.9.2(@types/node@18.11.9)(typescript@5.4.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + ts-declaration-location@1.0.4(typescript@5.4.5): dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.9 - acorn: 8.12.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.4.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + minimatch: 10.0.1 + typescript: 5.4.5 + + tsc-files@1.1.4(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true + tslib@2.6.3: {} - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true + tsx@4.16.5: + dependencies: + esbuild: 0.21.5 + get-tsconfig: 4.7.5 + optionalDependencies: + fsevents: 2.3.3 - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true + type-fest@0.20.2: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.21.3: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@0.8.1: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true + type-fest@1.4.0: {} - /type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} - engines: {node: '>=16'} - dev: true + type-fest@2.19.0: {} - /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + type-fest@4.20.0: {} + + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 @@ -6731,11 +8423,8 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -6743,345 +8432,196 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray.prototype.slice@1.0.3: dependencies: - is-typedarray: 1.0.0 - dev: true + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + typed-array-buffer: 1.0.2 + typed-array-byte-offset: 1.0.2 - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - dev: true + typescript@5.4.5: {} - /uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - dev: true + ua-parser-js@1.0.38: {} - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + uc.micro@2.1.0: {} + + ufo@1.5.3: {} + + uglify-js@3.17.4: optional: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unescape-js@1.1.4: - resolution: {integrity: sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==} + unconfig@0.5.5: dependencies: - string.fromcodepoint: 0.2.1 - dev: true + '@antfu/utils': 0.7.10 + defu: 6.1.4 + importx: 0.4.3 + transitivePeerDependencies: + - supports-color - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: true + undici-types@6.13.0: {} - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: true + unicode-emoji-modifier-base@1.0.0: {} - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: true + unicorn-magic@0.1.0: {} - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: true - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + unist-util-stringify-position@2.0.3: dependencies: - '@types/unist': 2.0.6 - dev: true + '@types/unist': 2.0.10 - /universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} - dev: true + universal-user-agent@7.0.2: {} - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.1: {} - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true + browserslist: 4.23.1 + escalade: 3.1.2 + picocolors: 1.0.1 - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: - punycode: 2.3.0 - dev: true - - /url-join@5.0.0: - resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + punycode: 2.3.1 - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + url-join@5.0.0: {} - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true + util-deprecate@1.0.2: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /validate-npm-package-name@4.0.0: - resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - builtins: 5.0.1 - dev: true + vscode-languageserver-textdocument@1.0.12: {} - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - builtins: 5.0.1 - dev: true + vscode-uri@3.0.8: {} - /version-selector-type@3.0.0: - resolution: {integrity: sha512-PSvMIZS7C1MuVNBXl/CDG2pZq8EXy/NW2dHIdm3bVP5N0PC8utDK8ttXLXj44Gn3J0lQE3U7Mpm1estAOd+eiA==} - engines: {node: '>=10.13'} + vue-eslint-parser@9.4.3(eslint@9.8.0): dependencies: - semver: 7.6.0 - dev: true - - /vlq@0.2.3: - resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} - dev: true - - /vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - dev: true - - /vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: true + debug: 4.3.6 + eslint: 9.8.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - isexe: 3.1.1 - dev: true - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true + word-wrap@1.2.5: {} - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + wordwrap@1.0.0: {} - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true - /wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 string-width: 7.1.0 strip-ansi: 7.1.0 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true + wrappy@1.0.2: {} - /xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - dev: true + xdg-basedir@5.1.0: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xml-name-validator@4.0.0: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + xtend@4.0.2: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true + y18n@5.0.8: {} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.5.0 - /yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} - engines: {node: '>= 14'} - hasBin: true - dev: true + yaml@2.5.0: {} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true + yocto-queue@0.1.0: {} - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true + yocto-queue@1.0.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true + yoctocolors@2.0.2: {} - /zod-validation-error@3.0.3(zod@3.22.4): - resolution: {integrity: sha512-cETTrcMq3Ze58vhdR0zD37uJm/694I6mAxcf/ei5bl89cC++fBNxrC2z8lkFze/8hVMPwrbtrwXHR2LB50fpHw==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.18.0 + zod-validation-error@3.3.0(zod@3.23.8): dependencies: - zod: 3.22.4 - dev: true + zod: 3.23.8 - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: true + zod@3.23.8: {} diff --git a/project-dictionary.txt b/project-dictionary.txt new file mode 100644 index 00000000..861cfcd7 --- /dev/null +++ b/project-dictionary.txt @@ -0,0 +1,37 @@ +antfu +attributify +bar +baz +boop +corge +deassert +foo +fred +garply +grault +iife +intlify +jiti +knip +litecoin +lockb +lookarounds +monero +nocheck +noreply +nums +nuxt +nvim +plugh +quux +qux +Rebecca +slidev +sonarjs +Stevens +thud +TSES +unocss +vitepress +waldo +xyzzy diff --git a/rollup.config.ts b/rollup.config.ts index 8f8e10ce..d0f1770e 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -1,64 +1,53 @@ -import * as fs from "node:fs"; -import * as path from "node:path"; - -import rollupPluginCommonjs from "@rollup/plugin-commonjs"; -import rollupPluginNodeResolve from "@rollup/plugin-node-resolve"; -import rollupPluginTypescript from "@rollup/plugin-typescript"; -import { type RollupOptions } from "rollup"; -import rollupPluginAutoExternal from "rollup-plugin-auto-external"; - -const configDir = "./src/configs/"; - -const configFiles: ReadonlyArray = fs - .readdirSync(configDir) - .filter((file) => file !== "index.ts" && file.endsWith(".ts")); - -const common: Partial = { - output: { - dir: "./dist", - sourcemap: false, - exports: "default", - }, - - treeshake: { - annotations: true, - moduleSideEffects: [], - propertyReadSideEffects: false, - unknownGlobalSideEffects: false, - }, -}; - -/** - * Get the rollup config for the given eslint config. - */ -function getConfig(filename: string): RollupOptions { - return { - ...common, - - input: `${configDir}${filename}`, - - output: [ - { - ...common.output, - entryFileNames: `${path.basename(filename, ".ts")}.cjs`, - format: "cjs", +import { rollupPlugin as rollupPluginDeassert } from "deassert"; +import type { RollupOptions } from "rollup"; +import rollupPluginTs from "rollup-plugin-ts"; + +import pkg from "./package.json" with { type: "json" }; + +const treeshake = { + annotations: true, + moduleSideEffects: ["src/typegen.ts"], + propertyReadSideEffects: false, + unknownGlobalSideEffects: false, +} satisfies RollupOptions["treeshake"]; + +export default { + input: "src/index.ts", + + output: [ + { + file: pkg.exports.import, + format: "esm", + sourcemap: false, + generatedCode: { + preset: "es2015", }, - { - ...common.output, - entryFileNames: `${path.basename(filename, ".ts")}.mjs`, - format: "esm", + }, + { + file: pkg.exports.require, + format: "cjs", + sourcemap: false, + generatedCode: { + preset: "es2015", }, - ], - - plugins: [ - rollupPluginAutoExternal(), - rollupPluginNodeResolve(), - rollupPluginCommonjs(), - rollupPluginTypescript({ - tsconfig: "tsconfig.build.json", - }), - ], - }; -} - -export default configFiles.map((filename) => getConfig(filename)); + }, + ], + + external: [ + ...Object.keys(pkg.dependencies), + ...Object.keys(pkg.peerDependencies), + ], + + plugins: [ + rollupPluginTs({ + transpileOnly: true, + tsconfig: "tsconfig.build.json", + }), + rollupPluginDeassert({ + include: ["**/*.{js,ts}"], + exclude: ["**/*.d.ts"], + }), + ], + + treeshake, +} satisfies RollupOptions; diff --git a/scripts/generate-preview.ts b/scripts/generate-preview.ts deleted file mode 100644 index a535655e..00000000 --- a/scripts/generate-preview.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { promises as fs } from "node:fs"; - -import prettierConfig from "eslint-config-prettier"; -import { configs as prettierPluginConfigs } from "eslint-plugin-prettier"; - -import overridesConfig from "~/configs/common-overrides"; -import modernConfig from "~/configs/modern"; -import typescriptConfig from "~/configs/typescript"; -import { mergeConfigs } from "~/merge-configs"; - -// Merged config. -const config = mergeConfigs( - modernConfig, - typescriptConfig, - overridesConfig, - prettierPluginConfigs!["recommended"]!, - prettierConfig, -); - -// Write the file. -void fs.writeFile( - ".eslintrc.preview.json", - JSON.stringify(config, undefined, 2), -); diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json deleted file mode 100644 index 035f11be..00000000 --- a/scripts/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../tsconfig.base.json", - "compilerOptions": { - "module": "commonjs" - } -} diff --git a/scripts/typegen.ts b/scripts/typegen.ts new file mode 100644 index 00000000..e72613cf --- /dev/null +++ b/scripts/typegen.ts @@ -0,0 +1,146 @@ +import fs from "node:fs/promises"; + +import { type Linter } from "eslint"; +import { flatConfigsToRulesDTS } from "eslint-typegen/core"; + +import { + comments, + formatters, + functional, + ignores, + imports, + inEditor, + javascript, + jsdoc, + jsonc, + markdown, + node, + overrides, + promise, + regexp, + sonar, + sortTsconfig, + stylistic, + test, + toml, + typescript, + unicorn, + unocss, + vue, + yaml, +} from "../src/configs"; +import { combine } from "../src/utils"; + +const configs = (await combine( + comments(), + formatters({}, {}), + functional({ + functionalEnforcement: "none", + ignoreNamePattern: [], + stylistic: false, + overrides: undefined, + parserOptions: {}, + filesTypeAware: [], + mode: "none", + }), + ignores({ + projectRoot: process.cwd(), + ignores: [], + ignoreFiles: [], + }), + imports({ + stylistic: false, + parserOptions: {}, + filesTypeAware: [], + }), + inEditor(), + javascript({ + overrides: undefined, + functionalEnforcement: "none", + ignoreNamePattern: [], + }), + jsdoc({ + stylistic: false, + }), + jsonc({ + files: [], + stylistic: false, + overrides: undefined, + }), + markdown({ + files: [], + enableTypeRequiredRules: false, + componentExts: [], + overrides: undefined, + }), + node(), + overrides(), + promise(), + regexp(), + sonar({ + functionalEnforcement: "none", + ignoreNamePattern: [], + }), + sortTsconfig(), + stylistic({ + stylistic: { + indent: 2, + jsx: true, + quotes: "double", + semi: true, + }, + overrides: undefined, + typescript: false + }), + test({ + files: [], + overrides: undefined, + }), + toml({ + overrides: undefined, + stylistic: false, + files: [], + }), + typescript({ + files: [], + componentExts: [], + overrides: undefined, + parserOptions: {}, + filesTypeAware: [], + unsafe: "off", + functionalEnforcement: "none", + ignoreNamePattern: [], + projectRoot: process.cwd(), + mode: "none", + }), + unicorn(), + unocss({ + attributify: false, + strict: false, + overrides: undefined, + }), + vue({ + sfcBlocks: false, + vueVersion: 2, + i18n: false, + overrides: undefined, + typescript: false, + stylistic: false, + files: [], + filesTypeAware: [], + parserOptions: {}, + }), + yaml({ + overrides: undefined, + stylistic: false, + files: [], + }), +)) as Linter.FlatConfig[]; + +const dts = await flatConfigsToRulesDTS(configs, { + includeIgnoreComments: false, +}); + +const fullDts = `// @ts-nocheck\n${dts}`; + +await fs.writeFile("src/typegen.ts", fullDts); diff --git a/src/builtin/deprecated.ts b/src/builtin/deprecated.ts deleted file mode 100644 index a705b414..00000000 --- a/src/builtin/deprecated.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { type Linter } from "eslint"; - -export const rules: Linter.Config["rules"] = { - "callback-return": "off", - "global-require": "off", - "handle-callback-err": "off", - "id-blacklist": "off", - "indent-legacy": "off", - "lines-around-directive": "off", - "newline-after-var": "off", - "newline-before-return": "off", - "no-buffer-constructor": "off", - "no-catch-shadow": "off", - "no-mixed-requires": "off", - "no-native-reassign": "off", - "no-negated-in-lhs": "off", - "no-new-require": "off", - "no-path-concat": "off", - "no-process-env": "off", - "no-process-exit": "off", - "no-restricted-modules": "off", - "no-spaced-func": "off", - "no-sync": "off", - "prefer-reflect": "off", - "require-jsdoc": "off", - "valid-jsdoc": "off", -}; - -export const overrides: NonNullable = []; diff --git a/src/builtin/index.ts b/src/builtin/index.ts deleted file mode 100644 index 49b7c53f..00000000 --- a/src/builtin/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { type Linter } from "eslint"; - -import { - rules as deprecatedRules, - overrides as deprecatedOverrides, -} from "./deprecated"; -import { - rules as layoutRules, - overrides as layoutOverrides, -} from "./layout+formatting"; -import { - rules as possibleProblemsRules, - overrides as possibleProblemsOverrides, -} from "./possible-problems"; -import { - rules as suggestionsRules, - overrides as suggestionsOverrides, -} from "./suggestions"; - -export const rules: Linter.Config["rules"] = { - ...possibleProblemsRules, - ...suggestionsRules, - ...layoutRules, - ...deprecatedRules, -}; - -export const overrides: NonNullable = [ - ...deprecatedOverrides, - ...layoutOverrides, - ...possibleProblemsOverrides, - ...suggestionsOverrides, -]; diff --git a/src/builtin/layout+formatting.ts b/src/builtin/layout+formatting.ts deleted file mode 100644 index ccc308d4..00000000 --- a/src/builtin/layout+formatting.ts +++ /dev/null @@ -1,289 +0,0 @@ -import { type Linter } from "eslint"; - -export const rules: Linter.Config["rules"] = { - "array-bracket-spacing": ["error", "never"], - "arrow-parens": ["error", "always"], - "arrow-spacing": ["error", { before: true, after: true }], - "block-spacing": ["error", "always"], - "brace-style": "error", - "capitalized-comments": "off", - "comma-dangle": [ - "error", - { - arrays: "only-multiline", - objects: "only-multiline", - imports: "only-multiline", - exports: "only-multiline", - functions: "ignore", - }, - ], - "comma-spacing": ["error", { before: false, after: true }], - "comma-style": ["error", "last"], - "computed-property-spacing": "error", - "consistent-this": "off", - "dot-location": ["error", "property"], - "eol-last": "error", - "func-call-spacing": ["error", "never"], - "func-name-matching": "error", - "func-names": ["error", "as-needed"], - "func-style": ["error", "declaration", { allowArrowFunctions: true }], - "function-paren-newline": "off", - "generator-star-spacing": ["error", "after"], - "implicit-arrow-linebreak": "off", - "indent": [ - "error", - 2, - { - SwitchCase: 1, - VariableDeclarator: 1, - outerIIFEBody: 1, - MemberExpression: 1, - FunctionDeclaration: { - parameters: 1, - body: 1, - }, - FunctionExpression: { - parameters: 1, - body: 1, - }, - CallExpression: { - arguments: 1, - }, - ArrayExpression: 1, - ObjectExpression: 1, - ImportDeclaration: 1, - flatTernaryExpressions: false, - ignoreComments: false, - }, - ], - "key-spacing": ["error", { beforeColon: false, afterColon: true }], - "keyword-spacing": ["error", { before: true, after: true }], - "line-comment-position": "off", - "linebreak-style": ["error", "unix"], - "lines-around-comment": [ - "warn", - { - beforeBlockComment: true, - beforeLineComment: false, - afterBlockComment: false, - afterLineComment: false, - allowBlockStart: true, - allowBlockEnd: true, - allowObjectStart: true, - allowObjectEnd: true, - allowArrayStart: true, - allowArrayEnd: true, - allowClassStart: true, - allowClassEnd: true, - }, - ], - "lines-between-class-members": [ - "error", - "always", - { - exceptAfterSingleLine: true, - }, - ], - "max-depth": ["error", 10], - "max-len": [ - "off", - { - code: 100, - ignoreComments: true, - }, - ], - "max-lines-per-function": "off", - "max-nested-callbacks": "off", - "max-params": "off", - "max-statements-per-line": ["error", { max: 1 }], - "multiline-comment-style": "off", - "multiline-ternary": ["error", "always-multiline"], - // This rule is implemented in a not very nice way when it comes to working with 3rd parties. - "new-cap": "off", - "new-parens": "error", - "newline-per-chained-call": [ - "error", - { - ignoreChainWithDepth: 2, - }, - ], - "no-array-constructor": "error", - "no-inline-comments": "off", - "no-lonely-if": "error", - "no-mixed-operators": [ - "error", - { - groups: [ - ["+", "-", "*", "/", "%", "**"], - ["&", "|", "^", "~", "<<", ">>", ">>>"], - ["==", "!=", "===", "!==", ">", ">=", "<", "<="], - ["&&", "||"], - ["in", "instanceof"], - ], - allowSamePrecedence: true, - }, - ], - "no-mixed-spaces-and-tabs": "error", - "no-multi-assign": "error", - "no-multiple-empty-lines": [ - "error", - { - max: 1, - maxEOF: 1, - }, - ], - "no-negated-condition": "off", - "no-nested-ternary": "off", - "no-new-object": "error", - "no-plusplus": "off", - "no-restricted-syntax": [ - "error", - { - selector: "ForInStatement", - message: - "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.", - }, - { - selector: "WithStatement", - message: - "`with` is disallowed in strict mode because it makes code impossible to predict and optimize.", - }, - { - selector: - ':not(ArrowFunctionExpression) > UnaryExpression[operator="void"] > :not(CallExpression)', - message: 'Don\'t use "void".', - }, - ], - "no-tabs": "error", - "no-trailing-spaces": "error", - "no-underscore-dangle": "off", - "no-unneeded-ternary": "error", - "no-whitespace-before-property": "error", - "no-multi-spaces": [ - "error", - { - ignoreEOLComments: true, - }, - ], - "nonblock-statement-body-position": [ - "error", - "beside", - { - overrides: {}, - }, - ], - "object-curly-newline": [ - "error", - { - ObjectExpression: { - minProperties: 3, - multiline: true, - consistent: true, - }, - ObjectPattern: { - minProperties: 3, - multiline: true, - consistent: true, - }, - }, - ], - "object-curly-spacing": ["error", "always"], - "object-property-newline": [ - "error", - { - allowAllPropertiesOnSameLine: true, - }, - ], - "one-var": [ - "error", - { - var: "never", - let: "never", - const: "never", - }, - ], - "one-var-declaration-per-line": ["error", "always"], - "operator-assignment": ["error", "always"], - "operator-linebreak": [ - "error", - "after", - { - overrides: { - "=": "none", - "==": "none", - "===": "none", - "?": "before", - ":": "before", - }, - }, - ], - "padded-blocks": [ - "error", - { - blocks: "never", - switches: "never", - classes: "never", - }, - ], - "prefer-object-spread": "error", - "quote-props": ["error", "consistent-as-needed"], - "quotes": [ - "error", - "double", - { - avoidEscape: true, - allowTemplateLiterals: true, - }, - ], - "rest-spread-spacing": ["error", "never"], - "semi": ["error", "always"], - "semi-spacing": ["error", { before: false, after: true }], - "semi-style": ["error", "last"], - "space-before-blocks": ["error", "always"], - "space-before-function-paren": [ - "error", - { - asyncArrow: "always", - anonymous: "never", - named: "never", - }, - ], - "space-in-parens": ["error", "never"], - "space-infix-ops": "error", - "space-unary-ops": [ - "error", - { - words: true, - nonwords: false, - }, - ], - "spaced-comment": [ - "error", - "always", - { - line: { - exceptions: ["-", "+", "*"], - markers: ["*package", "!", "/", ",", "="], - }, - block: { - balanced: true, - exceptions: ["-", "+", "*"], - markers: ["*package", "!", "*", ",", ":", "::", "flow-include"], - }, - }, - ], - "switch-colon-spacing": ["error", { after: true, before: false }], - "template-curly-spacing": ["error", "never"], - "template-tag-spacing": ["error", "never"], - "unicode-bom": ["error", "never"], - "wrap-iife": [ - "error", - "inside", - { - functionPrototypeMethods: true, - }, - ], - "yield-star-spacing": ["error", "after"], -}; - -export const overrides: NonNullable = []; diff --git a/src/builtin/possible-problems.ts b/src/builtin/possible-problems.ts deleted file mode 100644 index 5e8ab173..00000000 --- a/src/builtin/possible-problems.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { type Linter } from "eslint"; - -export const rules: Linter.Config["rules"] = { - "constructor-super": "error", - "for-direction": "error", - "getter-return": "error", - "no-await-in-loop": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": ["error", "always"], - "no-console": "off", - "no-constant-binary-expression": "error", - "no-constant-condition": "error", - "no-constructor-return": "error", - "no-control-regex": "error", - "no-debugger": "warn", - "no-dupe-args": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-empty": ["warn", { allowEmptyCatch: true }], - "no-ex-assign": "error", - "no-extra-boolean-cast": "error", - "no-extra-parens": [ - "error", - "all", - { - nestedBinaryExpressions: false, - }, - ], - "no-class-assign": "error", - "no-const-assign": "error", - "no-dupe-class-members": "error", - "no-duplicate-imports": "off", - "no-extra-semi": "error", - "no-fallthrough": "error", - "no-func-assign": "error", - "no-inner-declarations": ["error", "functions"], - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-misleading-character-class": "error", - "no-new-symbol": "error", - "no-obj-calls": "error", - "no-promise-executor-return": "error", - "no-prototype-builtins": "error", - "no-regex-spaces": "error", - "no-self-assign": "error", - "no-self-compare": "error", - "no-sparse-arrays": "error", - "no-template-curly-in-string": "warn", - "no-this-before-super": "error", - "no-undef": "error", - "no-unexpected-multiline": "error", - "no-unmodified-loop-condition": "error", - "no-unreachable-loop": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unused-private-class-members": "error", - "no-unused-vars": [ - "error", - { - vars: "all", - args: "after-used", - ignoreRestSiblings: true, - }, - ], - "no-use-before-define": [ - "error", - { - functions: true, - classes: true, - variables: true, - }, - ], - "require-atomic-updates": "error", - "use-isnan": "error", - "valid-typeof": [ - "error", - { - requireStringLiterals: true, - }, - ], -}; - -export const overrides: NonNullable = []; diff --git a/src/builtin/suggestions.ts b/src/builtin/suggestions.ts deleted file mode 100644 index e5b5485f..00000000 --- a/src/builtin/suggestions.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { type Linter } from "eslint"; - -import { typescriptDeclarationFiles } from "~/files"; - -const useNumberIsFinite = "Please use Number.isFinite instead"; -const useNumberIsNan = "Please use Number.isNaN instead"; -const useObjectDefineProperty = "Please use Object.defineProperty instead."; - -export const rules: Linter.Config["rules"] = { - "accessor-pairs": "error", - "arrow-body-style": ["error", "as-needed"], - "block-scoped-var": "error", - "class-methods-use-this": "error", - "consistent-return": [ - "error", - { - treatUndefinedAsUnspecified: false, - }, - ], - "curly": ["error", "all"], - "default-case-last": "error", - "default-param-last": "off", - "dot-notation": "error", - "eqeqeq": ["error", "always", { null: "always" }], - "grouped-accessor-pairs": "error", - "guard-for-in": "error", - "init-declarations": "off", - "logical-assignment-operators": "error", - "max-classes-per-file": ["error", 1], - "no-alert": "error", - "no-caller": "error", - "no-case-declarations": "error", - "no-else-return": [ - "error", - { - allowElseIf: false, - }, - ], - "no-empty-function": "off", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-floating-decimal": "error", - "no-global-assign": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-invalid-this": "error", - "no-iterator": "error", - "no-labels": [ - "error", - { - allowLoop: true, - allowSwitch: true, - }, - ], - "no-lone-blocks": "error", - "no-loop-func": "error", - "no-multi-str": "off", - "no-new-func": "error", - "no-new-object": "error", - "no-new-wrappers": "error", - "no-new": "error", - "no-octal-escape": "error", - "no-octal": "error", - "no-param-reassign": "error", - "no-proto": "error", - "no-redeclare": "error", - "no-restricted-properties": [ - "error", - { - object: "arguments", - property: "callee", - message: "arguments.callee is deprecated", - }, - { - object: "global", - property: "isFinite", - message: useNumberIsFinite, - }, - { - object: "self", - property: "isFinite", - message: useNumberIsFinite, - }, - { - object: "window", - property: "isFinite", - message: useNumberIsFinite, - }, - { - object: "global", - property: "isNaN", - message: useNumberIsNan, - }, - { - object: "self", - property: "isNaN", - message: useNumberIsNan, - }, - { - object: "window", - property: "isNaN", - message: useNumberIsNan, - }, - { - property: "__defineGetter__", - message: useObjectDefineProperty, - }, - { - property: "__defineSetter__", - message: useObjectDefineProperty, - }, - ], - "object-shorthand": "error", - "no-delete-var": "error", - "no-label-var": "error", - "no-restricted-globals": [ - "error", - { - name: "event", - message: "Use local parameter instead.", - }, - ], - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-sequences": "error", - "no-shadow": [ - "warn", - { - builtinGlobals: false, - hoist: "never", - allow: ["resolve", "reject", "done", "cb"], - }, - ], - "no-shadow-restricted-names": "error", - "no-throw-literal": "error", - "no-unused-expressions": "error", - "no-unused-labels": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "warn", - "no-useless-escape": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "off", - "no-warning-comments": "off", - "no-with": "error", - "prefer-arrow-callback": "error", - "prefer-const": [ - "error", - { - destructuring: "all", - }, - ], - "prefer-destructuring": [ - "error", - { - VariableDeclarator: { - array: false, - object: true, - }, - AssignmentExpression: { - array: true, - object: true, - }, - }, - { - enforceForRenamedProperties: false, - }, - ], - "prefer-exponentiation-operator": "error", - "prefer-numeric-literals": "error", - "prefer-object-has-own": "error", - "prefer-promise-reject-errors": "error", - "prefer-regex-literals": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - "prefer-template": "error", - "radix": "error", - "require-await": "error", - "require-unicode-regexp": "error", - "require-yield": "error", - "strict": ["error", "never"], - "symbol-description": "error", - "yoda": ["error", "never"], -}; - -export const overrides: NonNullable = [ - { - files: typescriptDeclarationFiles, - rules: { - "init-declarations": "off", - }, - }, -]; diff --git a/src/common/files.ts b/src/common/files.ts deleted file mode 100644 index 5453a38b..00000000 --- a/src/common/files.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const typescriptExtensions = [".ts", ".tsx", ".mts", ".cts"]; -export const typescriptDeclarationExtensions = [".d.ts", ".d.mts", ".d.cts"]; -export const jsExtensions = [".js", ".mjs", ".cjs"]; -export const jsxExtensions = [".jsx", ".tsx"]; -export const commonJsExtensions = [".cjs", ".cts"]; - -export const typescriptSupportedExtensions = [ - ...new Set([ - ...typescriptExtensions, - ...typescriptDeclarationExtensions, - ...jsExtensions, - ...jsxExtensions, - ]), -]; - -export const typescriptFiles = [`**/*{${typescriptExtensions.join(",")}}`]; -export const typescriptDeclarationFiles = [ - `**/*{${typescriptDeclarationExtensions.join(",")}}`, -]; -export const jsxFiles = [`**/*{${jsxExtensions.join(",")}}`]; -export const commonJsFiles = [`**/*{${commonJsExtensions.join(",")}}`]; -export const jsFiles = [`**/*{${jsExtensions.join(",")}}`]; - -export const testFiles = ["{test,tests}/**/*", "**/*.{spec,test}.*"]; diff --git a/src/common/merge-configs.ts b/src/common/merge-configs.ts deleted file mode 100644 index 5f0dab07..00000000 --- a/src/common/merge-configs.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { - type DeepMergeMergeFunctionUtils, - deepmergeCustom, -} from "deepmerge-ts"; -import { type Linter } from "eslint"; - -type Meta = Readonly<{ - keyPath: PropertyKey[]; -}>; - -/** - * Merge multiple eslint configs into one. - */ -export const mergeConfigs = deepmergeCustom<{}, Meta>({ - metaDataUpdater: (previousMeta, metaMeta): Meta => { - if (previousMeta === undefined) { - if (metaMeta.key === undefined) { - return { keyPath: [] }; - } - return { keyPath: [metaMeta.key] }; - } - if (metaMeta.key === undefined) { - return previousMeta; - } - return { - ...metaMeta, - keyPath: [...previousMeta.keyPath, metaMeta.key], - }; - }, - mergeArrays(values, utils, meta): unknown { - if (isRuleSettings(meta)) { - return mergeRuleSettings(values, utils); - } - - return [...new Set(utils.defaultMergeFunctions.mergeArrays(values))]; - }, - mergeOthers(values, utils, meta): unknown { - if (isRuleSettings(meta)) { - return mergeRuleSettings(values, utils); - } - - return utils.actions.defaultMerge; - }, -}); - -/** - * Based on the meta data, should the current data be for rule settings. - */ -function isRuleSettings(meta: Meta | undefined) { - return ( - meta !== undefined && - ((meta.keyPath.length === 2 && meta.keyPath[0] === "rules") || - (meta.keyPath.length === 4 && - meta.keyPath[1] === "overrides" && - typeof meta.keyPath[2] === "number" && - meta.keyPath[3] === "rules")) - ); -} - -/** - * Merge eslint rule settings. - * - * @throws When invalid rule setting syntax are given. - */ -function mergeRuleSettings( - values: ReadonlyArray, - utils: DeepMergeMergeFunctionUtils, -): Linter.RuleEntry | (typeof utils.actions)[keyof typeof utils.actions] { - const settingsData = values.findLast( - (value): value is [unknown, ...unknown[]] => - Array.isArray(value) && value.length >= 2, - ); - if (settingsData === undefined) { - return utils.actions.defaultMerge; - } - const severityData = values.at(-1); - const severity: unknown = Array.isArray(severityData) - ? severityData[0] - : severityData; - - if (severity === "off" || severity === 0) { - return severity; - } - if ( - severity !== "error" && - severity !== 2 && - severity !== "warn" && - severity !== 1 - ) { - throw new Error(`Unknow rule severity: "${String(severity)}"`); - } - const settings = settingsData.slice(1); - return [severity, ...settings]; -} diff --git a/src/configs/comments.ts b/src/configs/comments.ts new file mode 100644 index 00000000..28d557c2 --- /dev/null +++ b/src/configs/comments.ts @@ -0,0 +1,26 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem } from "../types"; +import { loadPackages } from "../utils"; + +export async function comments(): Promise { + const [pluginComments] = (await loadPackages([ + "eslint-plugin-eslint-comments", + ])) as [ESLint.Plugin]; + + return [ + { + name: "rs:comments", + plugins: { + comments: pluginComments, + }, + rules: { + "comments/no-aggregating-enable": "error", + "comments/no-duplicate-disable": "error", + "comments/no-unlimited-disable": "error", + "comments/no-unused-enable": "error", + "comments/disable-enable-pair": ["error", { allowWholeFile: true }], + }, + }, + ]; +} diff --git a/src/configs/common-overrides.ts b/src/configs/common-overrides.ts deleted file mode 100644 index d781444d..00000000 --- a/src/configs/common-overrides.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { type Linter } from "eslint"; - -import { jsFiles, jsxFiles, testFiles } from "~/files"; - -export default { - overrides: [ - { - files: ["./*"], - extends: ["@rebeccastevens/eslint-config/script"], - rules: { - "functional/immutable-data": "off", - }, - }, - { - files: ["scripts/**/*"], - extends: ["@rebeccastevens/eslint-config/script"], - }, - { - files: testFiles, - extends: ["@rebeccastevens/eslint-config/test"], - }, - { - files: jsFiles, - extends: [ - "plugin:@typescript-eslint/disable-type-checked", - "plugin:functional/disable-type-checked", - ], - parserOptions: { - project: false, - }, - }, - { - files: jsxFiles, - parserOptions: { - ecmaVersion: "latest", - sourceType: "module", - ecmaFeatures: { - globalReturn: false, - impliedStrict: true, - jsx: true, - }, - }, - }, - ], -} as Linter.Config; diff --git a/src/configs/formatters.ts b/src/configs/formatters.ts new file mode 100644 index 00000000..30e23c84 --- /dev/null +++ b/src/configs/formatters.ts @@ -0,0 +1,626 @@ +import type { ESLint } from "eslint"; +import { isPackageExists } from "local-pkg"; +import type { Options as PrettierOptions } from "prettier"; + +import { + GLOB_CSS, + GLOB_DTS, + GLOB_GRAPHQL, + GLOB_JS, + GLOB_JSON, + GLOB_JSON5, + GLOB_JSONC, + GLOB_JSX, + GLOB_LESS, + GLOB_MARKDOWN, + GLOB_POSTCSS, + GLOB_SCSS, + GLOB_TS, + GLOB_TSX, + GLOB_YAML, +} from "../globs"; +import type { + FlatConfigItem, + OptionsFormatters, + StylisticConfig, +} from "../types"; +import { loadPackages, parserPlain } from "../utils"; + +export async function formatters( + opts: Readonly, + stylistic: Readonly, +): Promise { + const options = + opts === true + ? { + js: true, + ts: true, + dts: false, + json: true, + yaml: true, + css: true, + graphql: true, + html: true, + markdown: true, + slidev: isPackageExists("@slidev/cli"), + } + : opts; + + if ( + options.slidev !== false && + options.slidev !== undefined && + options.markdown !== true + ) { + throw new Error( + "`slidev` option only works when `markdown` is enabled with `prettier`", + ); + } + + const { indent, quotes, semi } = stylistic; + + const prettierOptions: PrettierOptions = Object.assign( + { + endOfLine: "lf", + semi: semi ?? true, + singleQuote: quotes === "single", + tabWidth: typeof indent === "number" ? indent : 2, + trailingComma: "all", + useTabs: indent === "tab", + } satisfies PrettierOptions, + + options.prettierOptions ?? {}, + ); + + const [pluginFormat, configPrettier] = (await loadPackages([ + "eslint-plugin-format", + "eslint-config-prettier", + "prettier", + "prettier-plugin-packagejson", + ])) as [ESLint.Plugin, ESLint.ConfigData, unknown, unknown]; + + const turnOffRulesForPrettier = { + ...Object.fromEntries( + Object.entries(configPrettier.rules ?? {}).filter( + ([, value]) => value === "off", + ), + ), + + "no-irregular-whitespace": "off", + // "style/lines-around-comment": "off", + "style/max-len": "off", + "style/no-confusing-arrow": "off", + "style/no-mixed-operators": "off", + "style/no-tabs": "off", + "style/quotes": "off", + // "style/js/lines-around-comment": "off", + // "style/js/max-len": "off", + "style/js/no-confusing-arrow": "off", + "style/js/no-mixed-operators": "off", + "style/js/no-tabs": "off", + "style/js/quotes": "off", + // "style/ts/lines-around-comment": "off", + "style/ts/quotes": "off", + + // From https://github.com/prettier/eslint-config-prettier/pull/272 + "style/array-bracket-newline": "off", + "style/array-bracket-spacing": "off", + "style/array-element-newline": "off", + "style/arrow-parens": "off", + "style/arrow-spacing": "off", + "style/block-spacing": "off", + "style/brace-style": "off", + "style/comma-dangle": "off", + "style/comma-spacing": "off", + "style/comma-style": "off", + "style/computed-property-spacing": "off", + "style/dot-location": "off", + "style/eol-last": "off", + "style/func-call-spacing": "off", + "style/function-call-argument-newline": "off", + "style/function-call-spacing": "off", + "style/function-paren-newline": "off", + "style/generator-star-spacing": "off", + "style/implicit-arrow-linebreak": "off", + "style/indent-binary-ops": "off", + "style/indent": "off", + "style/key-spacing": "off", + "style/keyword-spacing": "off", + "style/linebreak-style": "off", + "style/max-statements-per-line": "off", + "style/member-delimiter-style": "off", + "style/multiline-ternary": "off", + "style/new-parens": "off", + "style/newline-per-chained-call": "off", + "style/no-extra-parens": "off", + "style/no-extra-semi": "off", + "style/no-floating-decimal": "off", + "style/no-mixed-spaces-and-tabs": "off", + "style/no-multi-spaces": "off", + "style/no-multiple-empty-lines": "off", + "style/no-trailing-spaces": "off", + "style/no-whitespace-before-property": "off", + "style/nonblock-statement-body-position": "off", + "style/object-curly-newline": "off", + "style/object-curly-spacing": "off", + "style/object-property-newline": "off", + "style/one-var-declaration-per-line": "off", + "style/operator-linebreak": "off", + "style/padded-blocks": "off", + "style/quote-props": "off", + "style/rest-spread-spacing": "off", + "style/semi-spacing": "off", + "style/semi-style": "off", + "style/semi": "off", + "style/space-before-blocks": "off", + "style/space-before-function-paren": "off", + "style/space-in-parens": "off", + "style/space-infix-ops": "off", + "style/space-unary-ops": "off", + "style/switch-colon-spacing": "off", + "style/template-curly-spacing": "off", + "style/template-tag-spacing": "off", + "style/type-annotation-spacing": "off", + "style/type-generic-spacing": "off", + "style/type-named-tuple-spacing": "off", + "style/wrap-iife": "off", + "style/wrap-regex": "off", + "style/yield-star-spacing": "off", + + "style/js/array-bracket-newline": "off", + "style/js/array-bracket-spacing": "off", + "style/js/array-element-newline": "off", + "style/js/arrow-parens": "off", + "style/js/arrow-spacing": "off", + "style/js/block-spacing": "off", + "style/js/brace-style": "off", + "style/js/comma-dangle": "off", + "style/js/comma-spacing": "off", + "style/js/comma-style": "off", + "style/js/computed-property-spacing": "off", + "style/js/dot-location": "off", + "style/js/eol-last": "off", + "style/js/func-call-spacing": "off", + "style/js/function-call-argument-newline": "off", + "style/js/function-call-spacing": "off", + "style/js/function-paren-newline": "off", + "style/js/generator-star-spacing": "off", + "style/js/implicit-arrow-linebreak": "off", + "style/js/indent": "off", + "style/js/jsx-quotes": "off", + "style/js/key-spacing": "off", + "style/js/keyword-spacing": "off", + "style/js/linebreak-style": "off", + "style/js/max-statements-per-line": "off", + "style/js/multiline-ternary": "off", + "style/js/new-parens": "off", + "style/js/newline-per-chained-call": "off", + "style/js/no-extra-parens": "off", + "style/js/no-extra-semi": "off", + "style/js/no-floating-decimal": "off", + "style/js/no-mixed-spaces-and-tabs": "off", + "style/js/no-multi-spaces": "off", + "style/js/no-multiple-empty-lines": "off", + "style/js/no-trailing-spaces": "off", + "style/js/no-whitespace-before-property": "off", + "style/js/nonblock-statement-body-position": "off", + "style/js/object-curly-newline": "off", + "style/js/object-curly-spacing": "off", + "style/js/object-property-newline": "off", + "style/js/one-var-declaration-per-line": "off", + "style/js/operator-linebreak": "off", + "style/js/padded-blocks": "off", + "style/js/quote-props": "off", + "style/js/rest-spread-spacing": "off", + "style/js/semi-spacing": "off", + "style/js/semi-style": "off", + "style/js/semi": "off", + "style/js/space-before-blocks": "off", + "style/js/space-before-function-paren": "off", + "style/js/space-in-parens": "off", + "style/js/space-infix-ops": "off", + "style/js/space-unary-ops": "off", + "style/js/switch-colon-spacing": "off", + "style/js/template-curly-spacing": "off", + "style/js/template-tag-spacing": "off", + "style/js/wrap-iife": "off", + "style/js/wrap-regex": "off", + "style/js/yield-star-spacing": "off", + + "style/jsx-child-element-spacing": "off", + "style/jsx-closing-bracket-location": "off", + "style/jsx-closing-tag-location": "off", + "style/jsx-curly-newline": "off", + "style/jsx-curly-spacing": "off", + "style/jsx-equals-spacing": "off", + "style/jsx-first-prop-new-line": "off", + "style/jsx-indent-props": "off", + "style/jsx-indent": "off", + "style/jsx-max-props-per-line": "off", + "style/jsx-newline": "off", + "style/jsx-one-expression-per-line": "off", + "style/jsx-props-no-multi-spaces": "off", + "style/jsx-quotes": "off", + "style/jsx-tag-spacing": "off", + "style/jsx-wrap-multilines": "off", + "style/jsx/jsx-child-element-spacing": "off", + "style/jsx/jsx-closing-bracket-location": "off", + "style/jsx/jsx-closing-tag-location": "off", + "style/jsx/jsx-curly-newline": "off", + "style/jsx/jsx-curly-spacing": "off", + "style/jsx/jsx-equals-spacing": "off", + "style/jsx/jsx-first-prop-new-line": "off", + "style/jsx/jsx-indent-props": "off", + "style/jsx/jsx-indent": "off", + "style/jsx/jsx-max-props-per-line": "off", + + "style/ts/block-spacing": "off", + "style/ts/brace-style": "off", + "style/ts/comma-dangle": "off", + "style/ts/comma-spacing": "off", + "style/ts/func-call-spacing": "off", + "style/ts/function-call-spacing": "off", + "style/ts/indent": "off", + "style/ts/key-spacing": "off", + "style/ts/keyword-spacing": "off", + "style/ts/member-delimiter-style": "off", + "style/ts/no-extra-parens": "off", + "style/ts/no-extra-semi": "off", + "style/ts/object-curly-spacing": "off", + "style/ts/semi": "off", + "style/ts/space-before-blocks": "off", + "style/ts/space-before-function-paren": "off", + "style/ts/space-infix-ops": "off", + "style/ts/type-annotation-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/member-delimiter-style": "off", + "@typescript-eslint/no-extra-parens": "off", + "@typescript-eslint/no-extra-semi": "off", + "@typescript-eslint/object-curly-spacing": "off", + "@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", + + "unicorn/empty-brace-spaces": "off", + "unicorn/no-nested-ternary": "off", + "unicorn/number-literal-case": "off", + + "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/key-spacing": "off", + "vue/keyword-spacing": "off", + "vue/max-attributes-per-line": "off", + "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", + + "yaml/block-sequence-hyphen-indicator-newline": "off", + } satisfies FlatConfigItem["rules"]; + + const m_configs: FlatConfigItem[] = [ + { + name: "rs:formatters:setup", + plugins: { + format: pluginFormat, + }, + }, + ]; + + if (options.js !== undefined && options.js) { + m_configs.push({ + name: "rs:formatter:javascript", + files: [GLOB_JS, GLOB_JSX], + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "babel", + }, + ], + }, + }); + } + + if (options.ts !== undefined && options.ts) { + m_configs.push({ + name: "rs:formatter:typescript", + files: [GLOB_TS, GLOB_TSX], + ignores: options.dts === true ? [] : [GLOB_DTS], + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "typescript", + }, + ], + }, + }); + } + + if (options.yaml !== undefined && options.yaml) { + m_configs.push({ + name: "rs:formatter:yaml", + files: [GLOB_YAML], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "yaml", + }, + ], + }, + }); + } + + if (options.json !== undefined && options.json) { + m_configs.push( + { + name: "rs:formatter:json", + files: [GLOB_JSON], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "json", + }, + ], + }, + }, + { + name: "rs:formatter:jsonc", + files: [GLOB_JSONC], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "jsonc", + }, + ], + }, + }, + { + name: "rs:formatter:json5", + files: [GLOB_JSON5], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "json5", + }, + ], + }, + }, + { + name: "rs:formatter:json", + files: ["**/package.json"], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "json", + plugins: ["prettier-plugin-packagejson"], + }, + ], + }, + }, + ); + } + + if (options.css !== undefined && options.css) { + m_configs.push( + { + name: "rs:formatter:css", + files: [GLOB_CSS, GLOB_POSTCSS], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "css", + }, + ], + }, + }, + { + name: "rs:formatter:scss", + files: [GLOB_SCSS], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "scss", + }, + ], + }, + }, + { + name: "rs:formatter:less", + files: [GLOB_LESS], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "less", + }, + ], + }, + }, + ); + } + + if (options.html !== undefined && options.html) { + m_configs.push({ + name: "rs:formatter:html", + files: ["**/*.html"], + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "html", + }, + ], + }, + }); + } + + if (options.markdown !== undefined && options.markdown) { + const GLOB_SLIDEV = + options.slidev === undefined || options.slidev === false + ? [] + : options.slidev === true + ? ["**/slides.md"] + : (options.slidev.files ?? []); + + m_configs.push({ + name: "rs:formatter:markdown", + files: [GLOB_MARKDOWN], + ignores: GLOB_SLIDEV, + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + printWidth: 120, + ...prettierOptions, + embeddedLanguageFormatting: "off", + parser: "markdown", + }, + ], + }, + }); + + if (options.slidev !== undefined && options.slidev !== false) { + m_configs.push({ + name: "rs:formatter:slidev", + files: GLOB_SLIDEV, + languageOptions: { + parser: parserPlain, + }, + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + printWidth: 120, + ...prettierOptions, + embeddedLanguageFormatting: "off", + parser: "slidev", + plugins: ["prettier-plugin-slidev"], + }, + ], + }, + }); + } + } + + if (options.graphql !== undefined && options.graphql) { + m_configs.push({ + files: [GLOB_GRAPHQL], + languageOptions: { + parser: parserPlain, + }, + name: "rs:formatter:graphql", + rules: { + ...turnOffRulesForPrettier, + "format/prettier": [ + "error", + { + ...prettierOptions, + parser: "graphql", + }, + ], + }, + }); + } + + return m_configs; +} diff --git a/src/configs/functional.ts b/src/configs/functional.ts new file mode 100644 index 00000000..bf4230f8 --- /dev/null +++ b/src/configs/functional.ts @@ -0,0 +1,297 @@ +import type { + FlatConfigItem, + OptionsFunctional, + OptionsMode, + OptionsOverrides, + OptionsTypeScriptParserOptions, + RequiredOptionsStylistic, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function functional( + options: Readonly< + Required< + OptionsFunctional & + RequiredOptionsStylistic & + OptionsOverrides & + OptionsTypeScriptParserOptions & + OptionsMode + > + >, +): Promise { + const { + mode, + overrides, + stylistic, + filesTypeAware, + functionalEnforcement, + ignoreNamePattern, + // ignoreTypePattern, + } = options; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + const [pluginFunctional] = (await loadPackages([ + "eslint-plugin-functional", + ])) as [(typeof import("eslint-plugin-functional"))["default"]]; + + const strictRules = { + "functional/functional-parameters": "error", + "functional/no-throw-statements": "error", + "functional/no-try-statements": "error", + "functional/no-let": "error", + "functional/no-classes": "error", + "functional/no-this-expressions": "error", + "functional/no-loop-statements": "error", + "functional/immutable-data": "error", + "functional/prefer-immutable-types": "error", + "functional/type-declaration-immutability": "error", + "functional/no-mixed-types": "error", + "functional/no-conditional-statements": "error", + "functional/no-expression-statements": "error", + "functional/no-return-void": "error", + "functional/prefer-property-signatures": stylisticEnforcement, + "functional/prefer-tacit": stylisticEnforcement, + "functional/readonly-type": stylisticEnforcement, + } as const satisfies FlatConfigItem["rules"]; + + const recommendedRules = { + "functional/functional-parameters": [ + "error", + { + allowRestParameter: true, + enforceParameterCount: false, + }, + ], + "functional/no-let": [ + "error", + { + allowInForLoopInit: true, + ignoreIdentifierPattern: ignoreNamePattern, + }, + ], + "functional/no-loop-statements": "error", + "functional/no-throw-statements": [ + "error", + { + allowToRejectPromises: true, + }, + ], + + "functional/immutable-data": [ + "error", + { + ignoreAccessorPattern: ["**.mutable*.**", "**.m_*.**"], + ignoreClasses: "fieldsOnly", + ignoreImmediateMutation: true, + ignoreNonConstDeclarations: true, + }, + ], + "functional/no-conditional-statements": [ + "error", + { + allowReturningBranches: true, + }, + ], + "functional/no-expression-statements": [ + "error", + { + ignoreCodePattern: "^assert", + ignoreSelfReturning: true, + ignoreVoid: true, + }, + ], + "functional/no-return-void": "error", + "ts/prefer-readonly-parameter-types": "off", + "functional/prefer-immutable-types": [ + mode === "library" ? "warn" : "off", + { + enforcement: "None", + overrides: [ + { + specifiers: [ + { + from: "file", + }, + { + from: "lib", + }, + ], + options: { + ignoreInferredTypes: true, + ignoreNamePattern, + parameters: { enforcement: "ReadonlyShallow" }, + }, + }, + ], + suggestions: { + ReadonlyShallow: [ + [ + { + pattern: + "^([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\[\\])$", + replace: "readonly $1", + message: "Prepend with readonly.", + }, + { + pattern: "^(Array|Map|Set)<(.+)>$", + replace: "Readonly$1<$2>", + message: "Use Readonly$1 instead of $1.", + }, + ], + [ + { + pattern: "^(.+)$", + replace: "Readonly<$1>", + message: "Surround with Readonly.", + }, + ], + ], + ReadonlyDeep: [ + [ + { + pattern: "^(?:Readonly<(.+)>|(.+))$", + replace: "ReadonlyDeep<$1$2>", + message: "Surround with ReadonlyDeep.", + }, + ], + ], + Immutable: [ + [ + { + pattern: "^(?:Readonly(?:Deep)?<(.+)>|(.+))$", + replace: "Immutable<$1$2>", + message: "Surround with Immutable.", + }, + ], + ], + }, + }, + ], + "functional/type-declaration-immutability": [ + "error", + { + rules: [ + { + identifiers: "I?Immutable.+", + immutability: "Immutable", + comparator: "AtLeast", + }, + { + identifiers: "I?ReadonlyDeep.+", + immutability: "ReadonlyDeep", + comparator: "AtLeast", + }, + { + identifiers: "I?Readonly.+", + immutability: "ReadonlyShallow", + comparator: "AtLeast", + fixer: [ + { + pattern: + "^([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\[\\])$", + replace: "readonly $1", + }, + { + pattern: "^(Array|Map|Set)<(.+)>$", + replace: "Readonly$1<$2>", + }, + { + pattern: "^(.+)$", + replace: "Readonly<$1>", + }, + ], + }, + { + identifiers: "I?Mutable.+", + immutability: "Mutable", + comparator: "AtMost", + fixer: [ + { + pattern: "^Readonly(Array|Map|Set)<(.+)>$", + replace: "$1<$2>", + }, + { + pattern: "^Readonly<(.+)>$", + replace: "$1", + }, + ], + }, + ], + }, + ], + + "functional/prefer-property-signatures": stylisticEnforcement, + "functional/prefer-tacit": stylisticEnforcement, + "functional/readonly-type": stylisticEnforcement, + } as const satisfies FlatConfigItem["rules"]; + + const liteRules = { + ...recommendedRules, + "functional/no-conditional-statements": "off", + "functional/no-expression-statements": "off", + "functional/no-return-void": "off", + "functional/prefer-immutable-types": [ + mode === "library" ? "warn" : "off", + { + ...recommendedRules["functional/prefer-immutable-types"][1], + overrides: [ + { + ...recommendedRules["functional/prefer-immutable-types"][1] + .overrides[0], + specifiers: [ + { + from: "file", + }, + ], + }, + ], + }, + ], + } as const satisfies FlatConfigItem["rules"]; + + const noneLibraryRules = { + "functional/prefer-immutable-types": + liteRules["functional/prefer-immutable-types"], + "functional/type-declaration-immutability": [ + "warn", + liteRules["functional/type-declaration-immutability"][1], + ], + } as const satisfies FlatConfigItem["rules"]; + + return [ + { + name: "rs:functional", + plugins: { + functional: pluginFunctional, + }, + settings: { + immutability: { + overrides: [ + { type: "^Readonly<.+>$", to: "ReadonlyShallow" }, + { type: "^ReadonlyDeep<.+>$", to: "ReadonlyDeep" }, + { type: "^Immutable<.+>$", to: "Immutable" }, + ], + }, + }, + rules: { + ...pluginFunctional.configs.off.rules, + ...(functionalEnforcement === "none" + ? mode === "library" + ? noneLibraryRules + : {} + : functionalEnforcement === "lite" + ? liteRules + : functionalEnforcement === "strict" + ? strictRules + : recommendedRules), + ...overrides, + }, + }, + { + name: "rs:functional:disable-type-aware", + ignores: filesTypeAware, + rules: pluginFunctional.configs.disableTypeChecked.rules, + }, + ]; +} diff --git a/src/configs/ignores.ts b/src/configs/ignores.ts new file mode 100644 index 00000000..14dc80e9 --- /dev/null +++ b/src/configs/ignores.ts @@ -0,0 +1,54 @@ +import assert from "node:assert/strict"; +import fs from "node:fs/promises"; +import path from "node:path"; + +import { GLOB_EXCLUDE } from "../globs"; +import type { + FlatConfigItem, + OptionsIgnoreFiles, + OptionsIgnores, + OptionsProjectRoot, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function ignores( + options: Readonly< + { ignores: OptionsIgnores } & OptionsProjectRoot & OptionsIgnoreFiles + >, +): Promise { + const { ignoreFiles, ignores: ignoresOptions, projectRoot } = options; + + const includeIgnoreFile = + ignoreFiles.length === 0 + ? undefined + : await loadPackages(["@eslint/compat"]).then( + ([p]) => (p as typeof import("@eslint/compat")).includeIgnoreFile, + ); + + const [extend, files] = Array.isArray(ignoresOptions) + ? [true, ignoresOptions] + : [ignoresOptions.extend, ignoresOptions.files]; + + const ignoreConfig = { + ignores: extend ? [...GLOB_EXCLUDE, ...files] : [...files], + }; + + const ignoreFileConfigs = await Promise.all( + ignoreFiles.map((file) => { + assert(includeIgnoreFile !== undefined); + const filePath = path.resolve(projectRoot, file); + return fs + .access(filePath) + .then(() => includeIgnoreFile(filePath)) + .catch(() => { + console.warn(`Ignore file "${filePath}" not found.`); + return null; + }); + }), + ); + + return [ + ignoreConfig, + ...ignoreFileConfigs.filter((v: T | null): v is T => v !== null), + ]; +} diff --git a/src/configs/imports.ts b/src/configs/imports.ts new file mode 100644 index 00000000..d0b6a4b5 --- /dev/null +++ b/src/configs/imports.ts @@ -0,0 +1,190 @@ +import type { ESLint } from "eslint"; + +import { GLOB_DTS, GLOB_MJS, GLOB_MTS, GLOB_TS, GLOB_TSX } from "../globs"; +import type { + FlatConfigItem, + OptionsTypeScriptParserOptions, + RequiredOptionsStylistic, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function imports( + options: Readonly< + Required + >, +): Promise { + const { stylistic, parserOptions } = options; + + const [pluginImport] = (await loadPackages([ + "eslint-plugin-import-x", + "eslint-import-resolver-typescript", + ])) as [ESLint.Plugin, ESLint.Plugin]; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:imports", + plugins: { + import: pluginImport, + }, + settings: { + "import-x/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import-x/internal-regex": "^(?:#|(?:@|~)\\/).*", + "import-x/extensions": [".ts", ".tsx", ".js", ".jsx"], + "import-x/parsers": { + "@typescript-eslint/parser": [".ts", ".tsx", ".cts", ".mts"], + }, + "import-x/resolver": { + typescript: { + alwaysTryTypes: true, + projectService: parserOptions.projectService, + }, + node: { + extensions: [".ts", ".tsx", ".js", ".jsx"], + }, + }, + }, + rules: { + // "import/consistent-type-specifier-style": ["error", "prefer-inline"], -- using ts/consistent-type-imports instead + "import/default": "error", + // "import/dynamic-import-chunkname": "off", + "import/export": "error", + // "import/exports-last": "off", + // "import/extensions": "off", + "import/first": "error", + // "import/group-exports": "off", + // "import/max-dependencies": [ + // "off", + // { + // max: 10, + // }, + // ], + "import/named": "error", + "import/namespace": [ + "error", + { + allowComputed: true, + }, + ], + "import/no-absolute-path": "error", + "import/no-amd": "error", + // "import/no-anonymous-default-export": "off", + // "import/no-commonjs": "off", + // "import/no-cycle": "off", + // "import/no-default-export": "off", + // "import/no-deprecated": "warn", + "import/no-duplicates": ["error", { "prefer-inline": true }], + // "import/no-dynamic-require": "off", + "import/no-empty-named-blocks": "error", + "import/no-extraneous-dependencies": [ + "error", + { + bundledDependencies: true, + devDependencies: [ + "*.{js,cjs,mjs,ts,cts,mts,jsx,tsx}", + "**/scripts/**", + "**/spec/**", + "**/test/**", + "**/tests/**", + "**/__mocks__/**", + "**/__tests__/**", + "**/*{.,_}{test,spec}.{js,cjs,mjs,ts,cts,mts,jsx,tsx}", + "**/Gruntfile{,.{js,cjs,mjs,ts}}", + "**/gulpfile.{js,cjs,mjs,ts}", + "**/gulpfile.*.{js,cjs,mjs,ts}", + "**/jest.config.{js,cjs,mjs,ts}", + "**/jest.setup.{js,cjs,mjs,ts}", + "**/karma.conf.{js,cjs,mjs,ts}", + "**/postcss.config.{js,cjs,mjs,ts}", + "**/protractor.conf.{js,cjs,mjs,ts}", + "**/protractor.conf.*.{js,cjs,mjs,ts}", + "**/rollup.config.{js,cjs,mjs,ts}", + "**/rollup.config.*.{js,cjs,mjs,ts}", + "**/vite.config.{js,cjs,mjs,ts}", + "**/vitest.config.{js,cjs,mjs,ts}", + "**/vue.config.{js,cjs,mjs,ts}", + "**/webpack.config.{js,cjs,mjs,ts}", + "**/webpack.config.*.{js,cjs,mjs,ts}", + ], + optionalDependencies: true, + peerDependencies: true, + }, + ], + // "import/no-internal-modules": "off", + "import/no-mutable-exports": "error", + // "import/no-named-as-default": "off", + // "import/no-named-as-default-member": "off", + "import/no-named-default": "error", + // "import/no-named-export": "off", + // "import/no-namespace": "off", + // "import/no-nodejs-modules": "off", + // "import/no-relative-parent-imports": "off", + // "import/no-restricted-paths": "off", + "import/no-self-import": "error", + "import/no-unassigned-import": "error", + // "import/no-unused-modules": "off", + // "import/no-unresolved": "off", + "import/no-useless-path-segments": [ + "error", + { + commonjs: true, + noUselessIndex: true, + }, + ], + "import/no-webpack-loader-syntax": "error", + // "import/prefer-default-export": "off", + // "import/unambiguous": "off", + + "import/newline-after-import": [stylisticEnforcement, { count: 1 }], + "import/order": [ + stylisticEnforcement, + { + alphabetize: { + caseInsensitive: false, + order: "asc", + }, + groups: [ + "builtin", + "external", + "internal", + "parent", + "sibling", + "index", + ], + "newlines-between": "always", + }, + ], + }, + }, + { + files: [GLOB_MJS, GLOB_MTS], + rules: { + "import/no-commonjs": "error", + "import/no-dynamic-require": "error", + }, + }, + { + files: [GLOB_TS, GLOB_TSX, GLOB_DTS], + rules: { + "import/no-unresolved": "off", + "import/named": "off", + "import/default": "off", + "import/namespace": "off", + + "ts/no-import-type-side-effects": "error", + "ts/consistent-type-imports": [ + stylisticEnforcement, + { + prefer: "type-imports", + fixStyle: "inline-type-imports", + disallowTypeAnnotations: false, + }, + ], + }, + }, + ]; +} diff --git a/src/configs/in-editor.ts b/src/configs/in-editor.ts new file mode 100644 index 00000000..0f13b825 --- /dev/null +++ b/src/configs/in-editor.ts @@ -0,0 +1,46 @@ +import type { FlatConfigItem } from "../types"; + +export function inEditor(): FlatConfigItem[] { + return [ + { + name: "rs:in-editor", + rules: { + "no-console": "off", + "no-debugger": "off", + "prefer-const": "off", + + "sonar/no-all-duplicated-branches": "off", + "sonar/no-collapsible-if": "off", + "sonar/no-collection-size-mischeck": "off", + "sonar/no-duplicated-branches": "off", + "sonar/no-element-overwrite": "off", + "sonar/no-empty-collection": "off", + "sonar/no-extra-arguments": "off", + "sonar/no-gratuitous-expressions": "off", + "sonar/no-identical-conditions": "off", + "sonar/no-identical-expressions": "off", + "sonar/no-identical-functions": "off", + "sonar/no-ignored-return": "off", + "sonar/no-inverted-boolean-check": "off", + "sonar/no-nested-switch": "off", + "sonar/no-nested-template-literals": "off", + "sonar/no-one-iteration-loop": "off", + "sonar/no-redundant-boolean": "off", + "sonar/no-redundant-jump": "off", + "sonar/no-same-line-conditional": "off", + "sonar/no-unused-collection": "off", + "sonar/no-use-of-empty-return-value": "off", + "sonar/no-useless-catch": "off", + "sonar/non-existent-operator": "off", + "sonar/prefer-immediate-return": "off", + "sonar/prefer-object-literal": "off", + "sonar/prefer-single-boolean-return": "off", + "sonar/prefer-while": "off", + + "test/no-only-tests": "off", + + "unicorn/no-lonely-if": "off", + }, + }, + ]; +} diff --git a/src/configs/index.ts b/src/configs/index.ts new file mode 100644 index 00000000..560d824d --- /dev/null +++ b/src/configs/index.ts @@ -0,0 +1,24 @@ +export * from "./comments"; +export * from "./formatters"; +export * from "./functional"; +export * from "./ignores"; +export * from "./imports"; +export * from "./in-editor"; +export * from "./javascript"; +export * from "./jsdoc"; +export * from "./jsonc"; +export * from "./markdown"; +export * from "./node"; +export * from "./overrides"; +export * from "./sort"; +export * from "./stylistic"; +export * from "./test"; +export * from "./toml"; +export * from "./typescript"; +export * from "./unicorn"; +export * from "./unocss"; +export * from "./vue"; +export * from "./yaml"; +export * from "./promise"; +export * from "./regexp"; +export * from "./sonar"; diff --git a/src/configs/javascript.ts b/src/configs/javascript.ts new file mode 100644 index 00000000..e28c30f1 --- /dev/null +++ b/src/configs/javascript.ts @@ -0,0 +1,360 @@ +import globals from "globals"; + +import type { + FlatConfigItem, + OptionsFunctional, + OptionsOverrides, +} from "../types"; + +const useNumberIsFinite = "Please use Number.isFinite instead"; +const useNumberIsNan = "Please use Number.isNaN instead"; +const useObjectDefineProperty = "Please use Object.defineProperty instead."; + +export function javascript( + options: Readonly>, +): FlatConfigItem[] { + const { functionalEnforcement, overrides } = options; + + return [ + { + name: "rs:javascript", + languageOptions: { + ecmaVersion: "latest", + globals: { + ...globals.browser, + ...globals.es2021, + ...globals.node, + document: "readonly", + navigator: "readonly", + window: "readonly", + }, + parserOptions: { + ecmaFeatures: { jsx: true }, + ecmaVersion: "latest", + sourceType: "module", + }, + sourceType: "module", + }, + linterOptions: { + reportUnusedDisableDirectives: true, + }, + rules: { + "accessor-pairs": "error", + "array-callback-return": "error", + "arrow-body-style": ["error", "as-needed"], + "block-scoped-var": "error", + "class-methods-use-this": "error", + "consistent-return": ["error", { treatUndefinedAsUnspecified: false }], + "constructor-super": "error", + curly: ["error", "all"], + "default-case-last": "error", + "dot-notation": ["error", { allowKeywords: true }], + eqeqeq: ["error", "always", { null: "always" }], + "for-direction": "error", + "func-name-matching": "error", + "func-names": ["error", "as-needed"], + "func-style": ["error", "declaration", { allowArrowFunctions: true }], + "getter-return": "error", + "grouped-accessor-pairs": "error", + "guard-for-in": "error", + "logical-assignment-operators": "error", + "max-classes-per-file": ["error", 1], + "max-depth": ["error", 10], + "new-cap": [ + "error", + { + capIsNew: false, + newIsCap: true, + properties: true, + }, + ], + "no-alert": "error", + "no-array-constructor": "error", + "no-async-promise-executor": "error", + "no-await-in-loop": "error", + "no-caller": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": ["error", "always"], + "no-console": ["error", { allow: ["warn", "error"] }], + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-constant-condition": "error", + "no-constructor-return": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-else-return": ["error", { allowElseIf: false }], + "no-empty-pattern": "error", + "no-empty": ["error", { allowEmptyCatch: true }], + "no-eq-null": "error", + "no-eval": "error", + "no-ex-assign": "error", + "no-extend-native": "error", + "no-extra-bind": "error", + "no-extra-boolean-cast": "error", + "no-extra-label": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-implicit-coercion": "error", + "no-implicit-globals": "error", + "no-implied-eval": "error", + "no-import-assign": "error", + "no-inner-declarations": ["error", "functions"], + "no-invalid-this": "error", + "no-irregular-whitespace": "error", + "no-iterator": "error", + "no-label-var": "error", + "no-labels": ["error", { allowLoop: true, allowSwitch: true }], + "no-lone-blocks": "error", + "no-lonely-if": "error", + "no-loop-func": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-multi-assign": "error", + "no-multi-str": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-symbol": "error", + "no-new-wrappers": "error", + "no-new": "error", + "no-obj-calls": "error", + "no-octal-escape": "error", + "no-octal": "error", + "no-promise-executor-return": "error", + "no-proto": "error", + "no-prototype-builtins": "error", + "no-redeclare": ["error", { builtinGlobals: false }], + "no-regex-spaces": "error", + "no-restricted-globals": [ + "error", + { name: "event", message: "Use local parameter instead." }, + { name: "global", message: "Use `globalThis` instead." }, + { name: "self", message: "Use `globalThis` instead." }, + { name: "window", message: "Use `globalThis` instead." }, + ], + "no-restricted-properties": [ + "error", + { + property: "__proto__", + message: + "Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.", + }, + { + property: "__lookupGetter__", + message: "Use `Object.getOwnPropertyDescriptor` instead.", + }, + { + property: "__lookupSetter__", + message: "Use `Object.getOwnPropertyDescriptor` instead.", + }, + { + object: "arguments", + property: "callee", + message: "arguments.callee is deprecated", + }, + { + object: "global", + property: "isFinite", + message: useNumberIsFinite, + }, + { + object: "self", + property: "isFinite", + message: useNumberIsFinite, + }, + { + object: "window", + property: "isFinite", + message: useNumberIsFinite, + }, + { + object: "global", + property: "isNaN", + message: useNumberIsNan, + }, + { + object: "self", + property: "isNaN", + message: useNumberIsNan, + }, + { + object: "window", + property: "isNaN", + message: useNumberIsNan, + }, + { property: "__defineGetter__", message: useObjectDefineProperty }, + { property: "__defineSetter__", message: useObjectDefineProperty }, + ], + "no-restricted-syntax": [ + "error", + { + selector: "ForInStatement", + message: + "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.", + }, + { + selector: "WithStatement", + message: + "`with` is disallowed in strict mode because it makes code impossible to predict and optimize.", + }, + { + selector: + ':not(ArrowFunctionExpression) > UnaryExpression[operator="void"] > :not(CallExpression)', + message: 'Don\'t use "void".', + }, + ], + "no-return-assign": "error", + "no-return-await": "error", + "no-script-url": "error", + "no-self-assign": ["error", { props: true }], + "no-self-compare": "error", + "no-shadow-restricted-names": "error", + "no-shadow": [ + "warn", + { + allow: ["resolve", "reject", "done", "cb"], + builtinGlobals: false, + hoist: "never", + }, + ], + "no-sparse-arrays": "error", + "no-template-curly-in-string": "error", + "no-this-before-super": "error", + "no-throw-literal": "error", + "no-undef-init": "error", + "no-undef": "error", + "no-unexpected-multiline": "error", + "no-unmodified-loop-condition": "error", + "no-unneeded-ternary": ["error", { defaultAssignment: false }], + "no-unreachable-loop": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unused-expressions": [ + "error", + { + allowShortCircuit: true, + allowTaggedTemplates: true, + allowTernary: true, + }, + ], + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": [ + "error", + { + args: "none", + caughtErrors: "none", + ignoreRestSiblings: true, + vars: "all", + }, + ], + "no-use-before-define": [ + "error", + { + classes: true, + functions: false, + variables: true, + }, + ], + "no-useless-call": "error", + "no-useless-catch": "error", + "no-useless-computed-key": "error", + "no-useless-concat": "error", + "no-useless-constructor": "error", + "no-useless-escape": "error", + "no-useless-rename": "error", + "no-useless-return": "error", + "no-var": "error", + "no-with": "error", + "object-shorthand": [ + "error", + "always", + { avoidQuotes: true, ignoreConstructors: false }, + ], + "one-var": [ + "error", + { + var: "never", + let: "never", + const: "never", + }, + ], + "operator-assignment": ["error", "always"], + "prefer-arrow-callback": [ + "error", + { allowNamedFunctions: false, allowUnboundThis: true }, + ], + "prefer-const": [ + "error", + { destructuring: "all", ignoreReadBeforeAssign: true }, + ], + "prefer-destructuring": [ + "error", + { + VariableDeclarator: { array: false, object: true }, + AssignmentExpression: { array: true, object: true }, + }, + { enforceForRenamedProperties: false }, + ], + "prefer-exponentiation-operator": "error", + "prefer-numeric-literals": "error", + "prefer-object-has-own": "error", + "prefer-object-spread": "error", + "prefer-promise-reject-errors": "error", + "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }], + "prefer-rest-params": "error", + "prefer-spread": "error", + "prefer-template": "error", + radix: "error", + "require-atomic-updates": "error", + "require-await": "error", + "require-unicode-regexp": "error", + "require-yield": "error", + "sort-imports": [ + "error", + { + allowSeparatedGroups: false, + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ["none", "all", "multiple", "single"], + }, + ], + strict: ["error", "never"], + "symbol-description": "error", + "unicode-bom": ["error", "never"], + "use-isnan": [ + "error", + { enforceForIndexOf: true, enforceForSwitchCase: true }, + ], + "valid-typeof": ["error", { requireStringLiterals: true }], + "vars-on-top": "error", + yoda: ["error", "never"], + + ...(functionalEnforcement === "none" + ? {} + : { + "no-param-reassign": [ + "error", + functionalEnforcement === "lite" + ? { props: false } + : { + props: true, + ignorePropertyModificationsForRegex: ["^[mM]_"], + }, + ], + }), + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/jsdoc.ts b/src/configs/jsdoc.ts new file mode 100644 index 00000000..40a22cac --- /dev/null +++ b/src/configs/jsdoc.ts @@ -0,0 +1,95 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem, RequiredOptionsStylistic } from "../types"; +import { loadPackages } from "../utils"; + +export async function jsdoc( + options: Readonly>, +): Promise { + const { stylistic } = options; + + const [pluginJSDoc] = (await loadPackages(["eslint-plugin-jsdoc"])) as [ + typeof import("eslint-plugin-jsdoc"), + ]; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:jsdoc", + plugins: { + jsdoc: pluginJSDoc as ESLint.Plugin, + }, + rules: { + // waiting on https://github.com/eslint/eslint/issues/14745 + // "jsdoc/check-examples": "error", + "jsdoc/check-indentation": "error", + "jsdoc/check-line-alignment": "error", + "jsdoc/check-param-names": "error", + "jsdoc/check-property-names": "error", + "jsdoc/check-types": "error", + "jsdoc/check-values": "error", + "jsdoc/no-bad-blocks": [ + "error", + { + ignore: [ + "ts-check", + "ts-expect-error", + "ts-ignore", + "ts-nocheck", + "vue-ignore", + ], + }, + ], + "jsdoc/no-defaults": "warn", + "jsdoc/require-asterisk-prefix": "error", + "jsdoc/require-description": "warn", + // Rule is too strict. + // "jsdoc/require-description-complete-sentence": "off", + "jsdoc/require-hyphen-before-param-description": "error", + "jsdoc/require-jsdoc": [ + "warn", + { + contexts: [ + ":matches(:matches(ExportDefaultDeclaration, ExportNamedDeclaration) > TSDeclareFunction, ExportDefaultDeclaration > FunctionDeclaration,:matches(ExportNamedDeclaration > FunctionDeclaration):not(ExportNamedDeclaration:has(TSDeclareFunction) + ExportNamedDeclaration > FunctionDeclaration))", + ":matches(ExportDefaultDeclaration, ExportNamedDeclaration) > TSTypeAliasDeclaration", + ":matches(ExportDefaultDeclaration, ExportNamedDeclaration) > TSInterfaceDeclaration", + ":matches(ExportDefaultDeclaration, ExportNamedDeclaration) > TSEnumDeclaration", + ], + enableFixer: false, + require: { + FunctionDeclaration: false, + }, + }, + ], + "jsdoc/require-param-name": "error", + // "jsdoc/require-param": "off", + "jsdoc/require-property-name": "error", + // "jsdoc/require-property": "off", + "jsdoc/require-returns-check": "error", + // "jsdoc/require-returns": "off", + "jsdoc/require-throws": "warn", + "jsdoc/require-yields-check": "error", + "jsdoc/tag-lines": [ + "warn", + "never", + { + applyToEndTag: false, + startLines: 1, + tags: { example: { lines: "always" } }, + }, + ], + + "jsdoc/check-access": "warn", + "jsdoc/empty-tags": "warn", + "jsdoc/implements-on-classes": "warn", + "jsdoc/no-multi-asterisks": "warn", + "jsdoc/require-property-description": "warn", + "jsdoc/require-returns-description": "warn", + + "jsdoc/check-alignment": stylisticEnforcement, + "jsdoc/multiline-blocks": stylisticEnforcement, + }, + }, + ]; +} diff --git a/src/configs/jsonc.ts b/src/configs/jsonc.ts new file mode 100644 index 00000000..feae602c --- /dev/null +++ b/src/configs/jsonc.ts @@ -0,0 +1,92 @@ +import type { ESLint } from "eslint"; + +import type { + FlatConfigItem, + OptionsFiles, + OptionsOverrides, + RequiredOptionsStylistic, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function jsonc( + options: Readonly< + Required + >, +): Promise { + const { files, overrides, stylistic } = options; + + const { indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic; + + const [pluginJsonc, parserJsonc] = (await loadPackages([ + "eslint-plugin-jsonc", + "jsonc-eslint-parser", + ])) as [ESLint.Plugin, typeof import("jsonc-eslint-parser")]; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:jsonc:setup", + plugins: { + jsonc: pluginJsonc, + }, + }, + { + name: "rs:jsonc:rules", + files, + languageOptions: { + parser: parserJsonc, + }, + rules: { + "jsonc/no-bigint-literals": "error", + "jsonc/no-binary-expression": "error", + "jsonc/no-binary-numeric-literals": "error", + "jsonc/no-dupe-keys": "error", + "jsonc/no-escape-sequence-in-identifier": "error", + "jsonc/no-floating-decimal": "error", + "jsonc/no-hexadecimal-numeric-literals": "error", + "jsonc/no-infinity": "error", + "jsonc/no-multi-str": "error", + "jsonc/no-nan": "error", + "jsonc/no-number-props": "error", + "jsonc/no-numeric-separators": "error", + "jsonc/no-octal": "error", + "jsonc/no-octal-escape": "error", + "jsonc/no-octal-numeric-literals": "error", + "jsonc/no-parenthesized": "error", + "jsonc/no-plus-sign": "error", + "jsonc/no-regexp-literals": "error", + "jsonc/no-sparse-arrays": "error", + "jsonc/no-template-literals": "error", + "jsonc/no-undefined-value": "error", + "jsonc/no-unicode-codepoint-escapes": "error", + "jsonc/no-useless-escape": "error", + "jsonc/space-unary-ops": "error", + "jsonc/valid-json-number": "error", + "jsonc/vue-custom-block/no-parsing-error": "error", + + "jsonc/array-bracket-spacing": [stylisticEnforcement, "never"], + "jsonc/comma-dangle": [stylisticEnforcement, "never"], + "jsonc/comma-style": [stylisticEnforcement, "last"], + "jsonc/indent": [stylisticEnforcement, indent], + "jsonc/key-spacing": [ + stylisticEnforcement, + { afterColon: true, beforeColon: false }, + ], + "jsonc/object-curly-newline": [ + stylisticEnforcement, + { consistent: true, multiline: true }, + ], + "jsonc/object-curly-spacing": [stylisticEnforcement, "always"], + "jsonc/object-property-newline": [ + stylisticEnforcement, + { allowMultiplePropertiesPerLine: true }, + ], + "jsonc/quote-props": stylisticEnforcement, + "jsonc/quotes": stylisticEnforcement, + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/markdown.ts b/src/configs/markdown.ts new file mode 100644 index 00000000..83f4bc40 --- /dev/null +++ b/src/configs/markdown.ts @@ -0,0 +1,157 @@ +import type { ESLint, Linter } from "eslint"; +import { mergeProcessors, processorPassThrough } from "eslint-merge-processors"; + +import { + GLOB_MARKDOWN, + GLOB_MARKDOWN_CODE, + GLOB_MARKDOWN_IN_MARKDOWN, +} from "../globs"; +import type { + FlatConfigItem, + OptionsComponentExts, + OptionsFiles, + OptionsOverrides, + OptionsTypeRequiredRules, +} from "../types"; +import { interopDefault, loadPackages, parserPlain } from "../utils"; + +export async function markdown( + options: Readonly< + Required< + OptionsFiles & + OptionsComponentExts & + OptionsTypeRequiredRules & + OptionsOverrides + > + >, +): Promise { + const { componentExts, files, overrides, enableTypeRequiredRules } = options; + + const [pluginMarkdown] = (await loadPackages(["eslint-plugin-markdown"])) as [ + ESLint.Plugin, + ]; + + const [pluginTs, pluginFunctional] = await Promise.all([ + interopDefault(import("@typescript-eslint/eslint-plugin")).catch( + () => undefined, + ), + interopDefault(import("eslint-plugin-functional")).catch(() => undefined), + ]); + + return [ + { + name: "rs:markdown:setup", + plugins: { + pluginMarkdown, + }, + }, + { + name: "rs:markdown:processor", + files, + ignores: [GLOB_MARKDOWN_IN_MARKDOWN], + // `eslint-plugin-markdown` only creates virtual files for code blocks, + // but not the markdown file itself. We use `eslint-merge-processors` to + // add a pass-through processor for the markdown file itself. + processor: mergeProcessors([ + // eslint-disable-next-line ts/no-explicit-any, ts/no-unsafe-member-access + (pluginMarkdown as any).processors.markdown as Linter.Processor, + processorPassThrough, + ]), + }, + { + name: "rs:markdown:parser", + files, + languageOptions: { + parser: parserPlain, + }, + }, + { + name: "rs:markdown:code", + files: [ + GLOB_MARKDOWN_CODE, + ...componentExts.map((ext) => `${GLOB_MARKDOWN}/*.${ext}`), + ], + languageOptions: { + parserOptions: { + ...(enableTypeRequiredRules + ? undefined + : { project: false, projectService: false, program: null }), + ecmaFeatures: { + impliedStrict: true, + }, + }, + }, + rules: { + ...(enableTypeRequiredRules + ? undefined + : { + ...pluginTs?.configs["disable-type-checked"]?.rules, + ...pluginFunctional?.configs.off.rules, + }), + + "dot-notation": "off", + "init-declarations": "off", + "no-alert": "off", + "no-console": "off", + "no-empty-function": "off", + "no-empty": "off", + "no-irregular-whitespace": "off", + "no-invalid-this": "off", + "no-labels": "off", + "no-lone-blocks": "off", + "no-restricted-syntax": "off", + "no-throw-literal": "off", + "no-undef": "off", + "no-unused-expressions": "off", + "no-unused-labels": "off", + "no-unused-vars": "off", + "no-useless-return": "off", + "prefer-const": "off", + "unicode-bom": "off", + + "import/extensions": "off", + "import/newline-after-import": "off", + "import/no-extraneous-dependencies": "off", + "import/no-unresolved": "off", + "import/order": "off", + + "jsdoc/require-jsdoc": "off", + + "node/handle-callback-err": "off", + "node/prefer-global/process": "off", + + "prettier/prettier": "off", + + "sonar/no-extra-arguments": "off", + "sonar/no-unused-collection": "off", + + "style/comma-dangle": "off", + "style/eol-last": "off", + + "ts/consistent-generic-constructors": "off", + "ts/consistent-indexed-object-style": "off", + "ts/consistent-type-definitions": "off", + "ts/consistent-type-imports": "off", + "ts/explicit-member-accessibility": "off", + "ts/naming-convention": "off", + "ts/no-empty-function": "off", + "ts/no-explicit-any": "off", + "ts/no-namespace": "off", + "ts/no-redeclare": "off", + "ts/no-require-imports": "off", + "ts/no-unused-expressions": "off", + "ts/no-unused-vars": "off", + "ts/no-use-before-define": "off", + "ts/no-var-requires": "off", + "ts/prefer-for-of": "off", + "ts/prefer-function-type": "off", + + "unicorn/prefer-optional-catch-binding": "off", + "unicorn/prefer-top-level-await": "off", + "unicorn/switch-case-braces": "off", + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/modern.ts b/src/configs/modern.ts deleted file mode 100644 index ede0d325..00000000 --- a/src/configs/modern.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { type Linter } from "eslint"; - -import { - rules as builtinRules, - overrides as builtinOverrides, -} from "~/builtin"; -import { mergeConfigs } from "~/merge-configs"; -import { settings as eslintComments } from "~/plugins/eslint-comments"; -import { settings as functional } from "~/plugins/functional"; -import { settings as importPlugin } from "~/plugins/import"; -import { settings as jsdoc } from "~/plugins/jsdoc"; -import { settings as markdown } from "~/plugins/markdown"; -import { settings as node } from "~/plugins/node"; -import { settings as optimizeRegex } from "~/plugins/optimize-regex"; -import { settings as promise } from "~/plugins/promise"; -import { settings as sonarjs } from "~/plugins/sonarjs"; -import { settings as unicorn } from "~/plugins/unicorn"; - -const baseConfig: Linter.Config = { - parser: "babel-eslint", - - parserOptions: { - ecmaVersion: "latest", - ecmaFeatures: { - globalReturn: false, - impliedStrict: true, - }, - sourceType: "module", - }, - - extends: ["eslint:recommended"], - - rules: builtinRules, - - overrides: builtinOverrides, - - ignorePatterns: ["/dist"], - - reportUnusedDisableDirectives: true, -}; - -export default mergeConfigs( - baseConfig, - eslintComments, - functional, - importPlugin, - jsdoc, - markdown, - node, - optimizeRegex, - promise, - sonarjs, - unicorn, -); diff --git a/src/configs/node.ts b/src/configs/node.ts new file mode 100644 index 00000000..0ce3b9f4 --- /dev/null +++ b/src/configs/node.ts @@ -0,0 +1,90 @@ +import type { ESLint } from "eslint"; + +import { GLOB_DTS, GLOB_MJS, GLOB_TS, GLOB_TSX } from "../globs"; +import type { FlatConfigItem } from "../types"; +import { loadPackages } from "../utils"; + +export async function node(): Promise { + const [pluginNode] = (await loadPackages(["eslint-plugin-n"])) as [ + ESLint.Plugin, + ]; + + return [ + { + name: "rs:node", + plugins: { + node: pluginNode, + }, + rules: { + "node/callback-return": "error", + "node/exports-style": ["error", "module.exports"], + "node/global-require": "off", + "node/handle-callback-err": ["error", "^(err|error)$"], + "node/no-callback-literal": "error", + "node/no-missing-import": "off", + "node/no-mixed-requires": [ + "error", + { + allowCall: true, + grouping: true, + }, + ], + "node/no-new-require": "error", + "node/no-path-concat": "error", + "node/no-process-exit": "error", + "node/no-restricted-import": [ + "error", + [ + { + name: "assert", + message: "Please use assert/strict instead.", + }, + { + name: "node:assert", + message: "Please use node:assert/strict instead.", + }, + ], + ], + "node/no-restricted-require": [ + "error", + [ + { + name: "assert", + message: "Please use assert/strict instead.", + }, + { + name: "node:assert", + message: "Please use node:assert/strict instead.", + }, + ], + ], + "node/no-sync": "error", + "node/no-unpublished-import": "warn", + "node/prefer-global/buffer": ["error", "never"], + "node/prefer-global/console": ["error", "always"], + "node/prefer-global/process": ["error", "always"], + "node/prefer-global/text-decoder": ["error", "never"], + "node/prefer-global/text-encoder": ["error", "never"], + "node/prefer-global/url": ["error", "never"], + "node/prefer-global/url-search-params": ["error", "never"], + "node/prefer-promises/dns": "error", + "node/prefer-promises/fs": "error", + }, + }, + { + files: [GLOB_TS, GLOB_TSX, GLOB_DTS, GLOB_MJS], + rules: { + "node/no-unsupported-features/es-syntax": "off", + }, + }, + { + files: [GLOB_TS, GLOB_TSX, GLOB_DTS], + rules: { + "node/no-extraneous-import": "off", + "node/no-missing-import": "off", + "node/no-restricted-import": "off", + "node/no-restricted-require": "off", + }, + }, + ]; +} diff --git a/src/configs/overrides.ts b/src/configs/overrides.ts new file mode 100644 index 00000000..9eda5f6d --- /dev/null +++ b/src/configs/overrides.ts @@ -0,0 +1,83 @@ +import { GLOB_DTS, GLOB_SRC, GLOB_SRC_EXT, GLOB_TYPINGS } from "../globs"; +import type { FlatConfigItem } from "../types"; +import { interopDefault } from "../utils"; + +export async function overrides(): Promise { + const [pluginFunctional] = await Promise.all([ + interopDefault(import("eslint-plugin-functional")).catch(() => undefined), + ]); + + return [ + { + files: [GLOB_DTS], + name: "rs:typescript:dts-overrides", + rules: { + "eslint-comments/no-unlimited-disable": "off", + "import/no-duplicates": "off", + "no-restricted-syntax": "off", + }, + }, + { + name: "rs:overrides-typings", + files: [GLOB_TYPINGS], + rules: { + ...pluginFunctional?.configs.off.rules, + + "import/no-unassigned-import": "off", + + "jsdoc/check-examples": "off", + "jsdoc/check-indentation": "off", + "jsdoc/check-line-alignment": "off", + "jsdoc/check-param-names": "off", + "jsdoc/check-property-names": "off", + "jsdoc/check-types": "off", + "jsdoc/check-values": "off", + "jsdoc/no-bad-blocks": "off", + "jsdoc/no-defaults": "off", + "jsdoc/require-asterisk-prefix": "off", + "jsdoc/require-description": "off", + "jsdoc/require-description-complete-sentence": "off", + "jsdoc/require-hyphen-before-param-description": "off", + "jsdoc/require-jsdoc": "off", + "jsdoc/require-param-name": "off", + "jsdoc/require-param": "off", + "jsdoc/require-property-name": "off", + "jsdoc/require-property": "off", + "jsdoc/require-returns-check": "off", + "jsdoc/require-returns": "off", + "jsdoc/require-throws": "off", + "jsdoc/require-yields-check": "off", + "jsdoc/tag-lines": "off", + "jsdoc/check-access": "off", + "jsdoc/empty-tags": "off", + "jsdoc/implements-on-classes": "off", + "jsdoc/no-multi-asterisks": "off", + "jsdoc/require-property-description": "off", + "jsdoc/require-returns-description": "off", + "jsdoc/check-alignment": "off", + "jsdoc/multiline-blocks": "off", + + "ts/consistent-type-definitions": "off", + "ts/no-empty-object-type": "off", + "ts/no-explicit-any": "off", + "ts/no-unused-vars": "off", + }, + }, + { + name: "rs:overrides-scripts", + files: [`scripts/${GLOB_SRC}`, `cli.${GLOB_SRC_EXT}`], + rules: { + "no-console": "off", + + "functional/no-conditional-statements": "off", + "functional/no-expression-statements": "off", + "functional/no-loop-statements": "off", + "functional/no-return-void": "off", + "functional/no-throw-statements": "off", + + "node/no-sync": "off", + "node/no-unpublished-import": "off", + }, + }, + ]; +} diff --git a/src/configs/promise.ts b/src/configs/promise.ts new file mode 100644 index 00000000..db34d1bd --- /dev/null +++ b/src/configs/promise.ts @@ -0,0 +1,30 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem } from "../types"; +import { loadPackages } from "../utils"; + +export async function promise(): Promise { + const [pluginPromise] = (await loadPackages(["eslint-plugin-promise"])) as [ + ESLint.Plugin, + ]; + + return [ + { + name: "rs:node", + plugins: { + promise: pluginPromise, + }, + rules: { + "promise/avoid-new": "warn", + "promise/no-callback-in-promise": "error", + "promise/no-nesting": "error", + "promise/no-new-statics": "error", + "promise/no-promise-in-callback": "error", + "promise/no-return-in-finally": "error", + "promise/no-return-wrap": "error", + "promise/param-names": "error", + "promise/valid-params": "error", + }, + }, + ]; +} diff --git a/src/configs/regexp.ts b/src/configs/regexp.ts new file mode 100644 index 00000000..da3d5a33 --- /dev/null +++ b/src/configs/regexp.ts @@ -0,0 +1,93 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem } from "../types"; +import { loadPackages } from "../utils"; + +export async function regexp(): Promise { + const [pluginRegexp, pluginOptimizeRegex] = (await loadPackages([ + "eslint-plugin-regexp", + "eslint-plugin-optimize-regex", + ])) as [ESLint.Plugin, ESLint.Plugin]; + + return [ + { + name: "rs:node", + plugins: { + regexp: { + ...pluginRegexp, + rules: { + ...pluginRegexp.rules, + ...pluginOptimizeRegex.rules, + }, + }, + }, + rules: { + "no-empty-character-class": "off", + "no-invalid-regexp": "off", + "no-useless-backreference": "off", + + "regexp/confusing-quantifier": "error", + "regexp/control-character-escape": "error", + "regexp/match-any": "error", + "regexp/negation": "error", + "regexp/no-contradiction-with-assertion": "error", + "regexp/no-dupe-characters-character-class": "error", + "regexp/no-dupe-disjunctions": "error", + "regexp/no-empty-alternative": "error", + "regexp/no-empty-capturing-group": "error", + "regexp/no-empty-character-class": "error", + "regexp/no-empty-group": "error", + "regexp/no-empty-lookarounds-assertion": "error", + "regexp/no-empty-string-literal": "error", + "regexp/no-escape-backspace": "error", + "regexp/no-extra-lookaround-assertions": "error", + "regexp/no-invalid-regexp": "error", + "regexp/no-invisible-character": "error", + "regexp/no-lazy-ends": "error", + "regexp/no-legacy-features": "error", + "regexp/no-misleading-capturing-group": "error", + "regexp/no-misleading-unicode-character": "error", + "regexp/no-missing-g-flag": "error", + "regexp/no-non-standard-flag": "error", + "regexp/no-obscure-range": "error", + "regexp/no-optional-assertion": "error", + "regexp/no-potentially-useless-backreference": "error", + "regexp/no-super-linear-backtracking": "error", + "regexp/no-trivially-nested-assertion": "error", + "regexp/no-trivially-nested-quantifier": "error", + "regexp/no-unused-capturing-group": "warn", + "regexp/no-useless-assertions": "error", + "regexp/no-useless-backreference": "error", + "regexp/no-useless-character-class": "error", + "regexp/no-useless-dollar-replacements": "error", + "regexp/no-useless-escape": "error", + "regexp/no-useless-flag": "error", + "regexp/no-useless-lazy": "error", + "regexp/no-useless-non-capturing-group": "error", + "regexp/no-useless-quantifier": "error", + "regexp/no-useless-range": "error", + "regexp/no-useless-set-operand": "error", + "regexp/no-useless-string-literal": "error", + "regexp/no-useless-two-nums-quantifier": "error", + "regexp/no-zero-quantifier": "error", + "regexp/optimal-lookaround-quantifier": "error", + "regexp/optimal-quantifier-concatenation": "error", + "regexp/optimize-regex": "error", + "regexp/prefer-character-class": "error", + "regexp/prefer-d": "error", + "regexp/prefer-plus-quantifier": "error", + "regexp/prefer-predefined-assertion": "error", + "regexp/prefer-question-quantifier": "error", + "regexp/prefer-range": "error", + "regexp/prefer-set-operation": "error", + "regexp/prefer-star-quantifier": "error", + "regexp/prefer-unicode-codepoint-escapes": "error", + "regexp/prefer-w": "error", + "regexp/simplify-set-operations": "error", + "regexp/sort-flags": "error", + "regexp/strict": "error", + "regexp/use-ignore-case": "error", + }, + }, + ]; +} diff --git a/src/configs/script.ts b/src/configs/script.ts deleted file mode 100644 index f7269870..00000000 --- a/src/configs/script.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { type Linter } from "eslint"; - -const baseConfig: Linter.Config = { - rules: { - "functional/functional-parameters": [ - "error", - { - enforceParameterCount: false, - }, - ], - "functional/no-conditional-statements": "off", - "functional/no-expression-statements": "off", - "functional/no-loop-statements": "off", - "functional/no-return-void": "off", - "functional/no-throw-statements": "off", - "n/no-process-exit": "off", - "n/no-sync": "off", - "n/no-unpublished-import": "off", - }, -}; - -export default baseConfig; diff --git a/src/configs/sonar.ts b/src/configs/sonar.ts new file mode 100644 index 00000000..95012558 --- /dev/null +++ b/src/configs/sonar.ts @@ -0,0 +1,59 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem, OptionsFunctional } from "../types"; +import { loadPackages } from "../utils"; + +export async function sonar( + options: Readonly>, +): Promise { + const { functionalEnforcement = "none" } = options; + + const [pluginSonar] = (await loadPackages(["eslint-plugin-sonarjs"])) as [ + ESLint.Plugin, + ]; + + return [ + { + name: "rs:node", + plugins: { + sonar: pluginSonar, + }, + rules: { + "sonar/no-all-duplicated-branches": "error", + "sonar/no-collapsible-if": "error", + "sonar/no-collection-size-mischeck": "error", + "sonar/no-duplicated-branches": "error", + "sonar/no-element-overwrite": "error", + "sonar/no-empty-collection": "error", + "sonar/no-extra-arguments": "error", + "sonar/no-gratuitous-expressions": "error", + "sonar/no-identical-conditions": "error", + "sonar/no-identical-expressions": "error", + "sonar/no-identical-functions": "error", + "sonar/no-ignored-return": "error", + "sonar/no-inverted-boolean-check": "error", + "sonar/no-nested-switch": "error", + "sonar/no-nested-template-literals": "error", + "sonar/no-one-iteration-loop": "error", + "sonar/no-redundant-boolean": "error", + "sonar/no-redundant-jump": "error", + "sonar/no-same-line-conditional": "error", + "sonar/no-unused-collection": "error", + "sonar/no-use-of-empty-return-value": "error", + "sonar/no-useless-catch": "error", + "sonar/non-existent-operator": "error", + "sonar/prefer-immediate-return": "error", + "sonar/prefer-object-literal": "error", + "sonar/prefer-single-boolean-return": "error", + "sonar/prefer-while": "error", + + ...(functionalEnforcement === "recommended" || + functionalEnforcement === "strict" + ? { + "sonar/elseif-without-else": "error", + } + : {}), + }, + }, + ]; +} diff --git a/src/configs/sort.ts b/src/configs/sort.ts new file mode 100644 index 00000000..4bd391ef --- /dev/null +++ b/src/configs/sort.ts @@ -0,0 +1,139 @@ +import type { FlatConfigItem } from "../types"; + +/** + * Sort tsconfig.json + * + * Requires `jsonc` config + */ +export function sortTsconfig(): FlatConfigItem[] { + return [ + { + files: ["**/tsconfig.json", "**/tsconfig.*.json"], + name: "", + rules: { + "jsonc/sort-keys": [ + "error", + { + order: [ + "extends", + "compilerOptions", + "references", + "files", + "include", + "exclude", + ], + pathPattern: "^$", + }, + { + order: [ + /* Projects */ + "incremental", + "composite", + "tsBuildInfoFile", + "disableSourceOfProjectReferenceRedirect", + "disableSolutionSearching", + "disableReferencedProjectLoad", + + /* Language and Environment */ + "target", + "jsx", + "jsxFactory", + "jsxFragmentFactory", + "jsxImportSource", + "lib", + "moduleDetection", + "noLib", + "reactNamespace", + "useDefineForClassFields", + "emitDecoratorMetadata", + "experimentalDecorators", + + /* Modules */ + "baseUrl", + "rootDir", + "rootDirs", + "customConditions", + "module", + "moduleResolution", + "moduleSuffixes", + "noResolve", + "paths", + "resolveJsonModule", + "resolvePackageJsonExports", + "resolvePackageJsonImports", + "typeRoots", + "types", + "allowArbitraryExtensions", + "allowImportingTsExtensions", + "allowUmdGlobalAccess", + + /* JavaScript Support */ + "allowJs", + "checkJs", + "maxNodeModuleJsDepth", + + /* Type Checking */ + "strict", + "strictBindCallApply", + "strictFunctionTypes", + "strictNullChecks", + "strictPropertyInitialization", + "allowUnreachableCode", + "allowUnusedLabels", + "alwaysStrict", + "exactOptionalPropertyTypes", + "noFallthroughCasesInSwitch", + "noImplicitAny", + "noImplicitOverride", + "noImplicitReturns", + "noImplicitThis", + "noPropertyAccessFromIndexSignature", + "noUncheckedIndexedAccess", + "noUnusedLocals", + "noUnusedParameters", + "useUnknownInCatchVariables", + + /* Emit */ + "declaration", + "declarationDir", + "declarationMap", + "downlevelIteration", + "emitBOM", + "emitDeclarationOnly", + "importHelpers", + "importsNotUsedAsValues", + "inlineSourceMap", + "inlineSources", + "mapRoot", + "newLine", + "noEmit", + "noEmitHelpers", + "noEmitOnError", + "outDir", + "outFile", + "preserveConstEnums", + "preserveValueImports", + "removeComments", + "sourceMap", + "sourceRoot", + "stripInternal", + + /* Interop Constraints */ + "allowSyntheticDefaultImports", + "esModuleInterop", + "forceConsistentCasingInFileNames", + "isolatedModules", + "preserveSymlinks", + "verbatimModuleSyntax", + + /* Completeness */ + "skipDefaultLibCheck", + "skipLibCheck", + ], + pathPattern: "^compilerOptions$", + }, + ], + }, + }, + ]; +} diff --git a/src/configs/stylistic.ts b/src/configs/stylistic.ts new file mode 100644 index 00000000..f6070d71 --- /dev/null +++ b/src/configs/stylistic.ts @@ -0,0 +1,293 @@ +import type { StylisticCustomizeOptions } from "@stylistic/eslint-plugin"; +import type { ESLint } from "eslint"; + +import type { + FlatConfigItem, + OptionsHasTypeScript, + OptionsOverrides, + StylisticConfig, +} from "../types"; +import { loadPackages } from "../utils"; + +export const StylisticConfigDefaults: Required = { + indent: 2, + jsx: true, + quotes: "double", + semi: true, +}; + +export async function stylistic( + options: Readonly< + Required< + { stylistic: Required } & OptionsOverrides & + OptionsHasTypeScript + > + >, +): Promise { + const { + stylistic: { indent, jsx, quotes, semi }, + overrides, + typescript, + } = options; + + const [pluginStylistic] = (await loadPackages([ + "@stylistic/eslint-plugin", + ])) as [typeof import("@stylistic/eslint-plugin")]; + + const config = pluginStylistic.configs.customize({ + flat: true, + indent, + jsx, + pluginName: "style", + quotes, + semi, + } as StylisticCustomizeOptions); + + return [ + { + name: "rs:stylistic", + plugins: { + style: pluginStylistic as ESLint.Plugin, + }, + rules: { + ...config.rules, + + "style/array-bracket-spacing": ["error", "never"], + "style/arrow-parens": ["error", "always"], + "style/arrow-spacing": ["error", { before: true, after: true }], + "style/block-spacing": ["error", "always"], + "style/brace-style": "error", + "style/comma-dangle": [ + "error", + { + arrays: "only-multiline", + exports: "only-multiline", + functions: "ignore", + imports: "only-multiline", + objects: "only-multiline", + + ...(typescript + ? { + enums: "only-multiline", + generics: "only-multiline", + tuples: "only-multiline", + } + : {}), + }, + ], + "style/comma-spacing": ["error", { before: false, after: true }], + "style/comma-style": ["error", "last"], + "style/computed-property-spacing": "error", + "style/dot-location": ["error", "property"], + "style/eol-last": "error", + "style/func-call-spacing": ["error", "never"], + "style/generator-star-spacing": ["error", "after"], + "style/indent": typescript + ? "off" + : [ + "error", + indent, + { + SwitchCase: 1, + VariableDeclarator: 1, + outerIIFEBody: 1, + MemberExpression: 1, + FunctionDeclaration: { parameters: 1, body: 1 }, + FunctionExpression: { parameters: 1, body: 1 }, + CallExpression: { arguments: 1 }, + ArrayExpression: 1, + ObjectExpression: 1, + ImportDeclaration: 1, + flatTernaryExpressions: false, + ignoreComments: false, + }, + ], + "style/indent-binary-ops": "error", + "style/key-spacing": [ + "error", + { beforeColon: false, afterColon: true }, + ], + "style/keyword-spacing": ["error", { before: true, after: true }], + "style/linebreak-style": ["error", "unix"], + "style/lines-around-comment": [ + "warn", + { + beforeBlockComment: true, + beforeLineComment: false, + afterBlockComment: false, + afterLineComment: false, + afterHashbangComment: true, + allowBlockStart: true, + allowBlockEnd: true, + allowObjectStart: true, + allowObjectEnd: true, + allowArrayStart: true, + allowArrayEnd: true, + allowClassStart: true, + allowClassEnd: true, + + ...(typescript + ? { + allowEnumEnd: true, + allowEnumStart: true, + allowInterfaceEnd: true, + allowInterfaceStart: true, + allowModuleEnd: true, + allowModuleStart: true, + allowTypeEnd: true, + allowTypeStart: true, + } + : {}), + }, + ], + "style/lines-between-class-members": [ + "error", + "always", + { + exceptAfterSingleLine: true, + ...(typescript + ? { + exceptAfterOverload: true, + } + : {}), + }, + ], + "style/max-statements-per-line": ["error", { max: 1 }], + "style/multiline-ternary": ["error", "always-multiline"], + "style/new-parens": "error", + "style/newline-per-chained-call": [ + "error", + { ignoreChainWithDepth: 2 }, + ], + "style/no-extra-parens": [ + "error", + "all", + { nestedBinaryExpressions: false }, + ], + "style/no-extra-semi": "error", + "style/no-floating-decimal": "error", + "style/no-mixed-operators": [ + "error", + { + groups: [ + ["+", "-", "*", "/", "%", "**"], + ["&", "|", "^", "~", "<<", ">>", ">>>"], + ["==", "!=", "===", "!==", ">", ">=", "<", "<="], + ["&&", "||"], + ["in", "instanceof"], + ], + allowSamePrecedence: true, + }, + ], + "style/no-mixed-spaces-and-tabs": "error", + "style/no-multi-spaces": ["error", { ignoreEOLComments: true }], + "style/no-multiple-empty-lines": ["error", { max: 1, maxEOF: 1 }], + "style/no-tabs": "error", + "style/no-trailing-spaces": "error", + "style/no-whitespace-before-property": "error", + "style/nonblock-statement-body-position": [ + "error", + "beside", + { overrides: {} }, + ], + "style/object-curly-newline": [ + "error", + { + ObjectExpression: { + minProperties: 3, + multiline: true, + consistent: true, + }, + ObjectPattern: { + minProperties: 3, + multiline: true, + consistent: true, + }, + }, + ], + "style/object-curly-spacing": ["error", "always"], + "style/object-property-newline": [ + "error", + { allowAllPropertiesOnSameLine: true }, + ], + "style/one-var-declaration-per-line": ["error", "always"], + "style/operator-linebreak": [ + "error", + "after", + { + overrides: { + "=": "none", + "==": "none", + "===": "none", + "?": "before", + ":": "before", + }, + }, + ], + "style/padded-blocks": [ + "error", + { + blocks: "never", + switches: "never", + classes: "never", + }, + ], + "style/quote-props": ["error", "consistent-as-needed"], + "style/quotes": [ + "error", + quotes, + { avoidEscape: true, allowTemplateLiterals: true }, + ], + "style/rest-spread-spacing": ["error", "never"], + "style/semi-spacing": ["error", { before: false, after: true }], + "style/semi-style": ["error", "last"], + "style/semi": ["error", semi ? "always" : "never"], + "style/space-before-blocks": ["error", "always"], + "style/space-before-function-paren": [ + "error", + { + asyncArrow: "always", + anonymous: "never", + named: "never", + }, + ], + "style/space-in-parens": ["error", "never"], + "style/space-infix-ops": "error", + "style/space-unary-ops": ["error", { words: true, nonwords: false }], + "style/spaced-comment": [ + "error", + "always", + { + line: { + exceptions: ["-", "+", "*"], + markers: ["*package", "!", "/", ",", "="], + }, + block: { + balanced: true, + exceptions: ["-", "+", "*"], + markers: ["*package", "!", "*", ",", ":", "::", "flow-include"], + }, + }, + ], + "style/switch-colon-spacing": ["error", { after: true, before: false }], + "style/template-curly-spacing": ["error", "never"], + "style/template-tag-spacing": ["error", "never"], + "style/wrap-iife": [ + "error", + "inside", + { functionPrototypeMethods: true }, + ], + "style/yield-star-spacing": ["error", "after"], + + ...(typescript + ? { + "style/member-delimiter-style": "error", + "style/type-annotation-spacing": "error", + } + : {}), + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/test.ts b/src/configs/test.ts index f653b1c7..183dd7b7 100644 --- a/src/configs/test.ts +++ b/src/configs/test.ts @@ -1,32 +1,83 @@ -import { type Linter } from "eslint"; - -const baseConfig: Linter.Config = { - extends: ["@rebeccastevens/eslint-config/script"], - - rules: { - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/restrict-template-expressions": "off", - "eslint-comments/disable-enable-pair": "off", - "functional/functional-parameters": "off", - "functional/immutable-data": "warn", - "functional/no-classes": "off", - "functional/no-conditional-statements": "warn", - "functional/no-expression-statements": "off", - "functional/no-loop-statements": "warn", - "functional/no-throw-statements": "off", - "jsdoc/require-jsdoc": "off", - "lines-between-class-members": "off", - "max-classes-per-file": "off", - "n/no-sync": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-identical-functions": "off", - "unicorn/consistent-function-scoping": "off", - }, -}; - -export default baseConfig; +import type { ESLint } from "eslint"; + +import type { FlatConfigItem, OptionsFiles, OptionsOverrides } from "../types"; +import { interopDefault, loadPackages } from "../utils"; + +export async function test( + options: Readonly>, +): Promise { + const { files, overrides } = options; + + const [pluginVitest, pluginNoOnlyTests] = (await loadPackages([ + "eslint-plugin-vitest", + "eslint-plugin-no-only-tests", + ])) as [typeof import("eslint-plugin-vitest"), ESLint.Plugin]; + + const [pluginFunctional] = await Promise.all([ + interopDefault(import("eslint-plugin-functional")).catch(() => undefined), + ]); + + return [ + { + name: "rs:test:setup", + plugins: { + test: { + ...pluginVitest, + rules: { + ...(pluginVitest as ESLint.Plugin).rules, + ...pluginNoOnlyTests.rules, + }, + }, + }, + settings: { + vitest: { + typecheck: true, + }, + }, + }, + { + files, + name: "rs:test:rules", + rules: { + ...pluginFunctional?.configs.off.rules, + + "node/prefer-global/process": "off", + "node/no-sync": "off", + + "import/no-named-as-default-member": "off", + + "jsdoc/require-jsdoc": "off", + + "regexp/no-super-linear-backtracking": "off", + + "sonar/no-duplicate-string": "off", + "sonar/no-identical-functions": "off", + + "test/consistent-test-it": [ + "error", + { fn: "it", withinDescribe: "it" }, + ], + "test/no-identical-title": "error", + "test/no-import-node-test": "error", + "test/no-only-tests": "error", + "test/prefer-hooks-in-order": "error", + "test/prefer-lowercase-title": "error", + "test/valid-expect": "off", // Too many false positives. + + "ts/consistent-type-definitions": "off", + "ts/no-unsafe-argument": "off", + "ts/no-unsafe-assignment": "off", + "ts/no-unsafe-call": "off", + "ts/no-unsafe-member-access": "off", + "ts/no-unsafe-return": "off", + "ts/no-unused-vars": "off", + "ts/strict-boolean-expressions": "off", + + "unicorn/consistent-function-scoping": "off", + "unicorn/prefer-module": "off", + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/toml.ts b/src/configs/toml.ts new file mode 100644 index 00000000..8924d731 --- /dev/null +++ b/src/configs/toml.ts @@ -0,0 +1,69 @@ +import type { ESLint, Linter } from "eslint"; + +import type { + FlatConfigItem, + OptionsFiles, + OptionsOverrides, + RequiredOptionsStylistic, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function toml( + options: Readonly< + Required + >, +): Promise { + const { files, overrides, stylistic } = options; + + const { indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic; + + const [pluginToml, parserToml] = (await loadPackages([ + "eslint-plugin-toml", + "toml-eslint-parser", + ])) as [ESLint.Plugin, Linter.Parser]; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:toml:setup", + plugins: { + toml: pluginToml, + }, + }, + { + files, + languageOptions: { + parser: parserToml, + }, + name: "rs:toml:rules", + rules: { + "style/spaced-comment": "off", + + "toml/comma-style": "error", + "toml/keys-order": "error", + "toml/no-space-dots": "error", + "toml/no-unreadable-number-separator": "error", + "toml/precision-of-fractional-seconds": "error", + "toml/precision-of-integer": "error", + "toml/tables-order": "error", + + "toml/vue-custom-block/no-parsing-error": "error", + + "toml/array-bracket-newline": stylisticEnforcement, + "toml/array-bracket-spacing": stylisticEnforcement, + "toml/array-element-newline": stylisticEnforcement, + "toml/indent": [stylisticEnforcement, indent === "tab" ? 2 : indent], + "toml/inline-table-curly-spacing": stylisticEnforcement, + "toml/key-spacing": stylisticEnforcement, + "toml/padding-line-between-pairs": stylisticEnforcement, + "toml/padding-line-between-tables": stylisticEnforcement, + "toml/quoted-keys": stylisticEnforcement, + "toml/spaced-comment": stylisticEnforcement, + "toml/table-bracket-spacing": stylisticEnforcement, + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/typescript.ts b/src/configs/typescript.ts index 05d4d5bf..af2116d2 100644 --- a/src/configs/typescript.ts +++ b/src/configs/typescript.ts @@ -1,44 +1,479 @@ -import { type Linter } from "eslint"; - -import { typescriptExtensions, typescriptSupportedExtensions } from "~/files"; -import { mergeConfigs } from "~/merge-configs"; -import { settings as typescript } from "~/plugins/typescript"; - -const baseConfig: Linter.Config = { - parser: "@typescript-eslint/parser", - - rules: { - "camelcase": "off", - "comma-dangle": "off", - "consistent-return": "off", - "dot-notation": "off", - "indent": "off", - "no-constant-condition": "off", - "no-extra-parens": "off", - "no-loop-func": "off", - "no-loss-of-precision": "off", - "no-redeclare": "off", - "no-shadow": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-use-before-define": "off", - "object-curly-spacing": "off", - "prefer-destructuring": "off", - "space-infix-ops": "off", - }, - - settings: { - "import/extensions": typescriptSupportedExtensions, - "import/external-module-folders": ["node_modules", "node_modules/@types"], - "import/parsers": { - "@typescript-eslint/parser": typescriptExtensions, - }, - "import/resolver": { - typescript: { - extensions: typescriptSupportedExtensions, +import assert from "node:assert/strict"; + +import type { ESLint, Linter } from "eslint"; + +import { + GLOB_DTS, + GLOB_JS, + GLOB_JSX, + GLOB_TESTS, + GLOB_TS, + GLOB_TSX, +} from "../globs"; +import type { + FlatConfigItem, + OptionsComponentExts, + OptionsFiles, + OptionsFunctional, + OptionsMode, + OptionsOverrides, + OptionsProjectRoot, + OptionsTypeScriptParserOptions, + OptionsTypeScriptUnsafeSeverity, +} from "../types"; +import { loadPackages } from "../utils"; + +export const defaultFilesTypesAware = [GLOB_TS, GLOB_TSX, GLOB_DTS]; + +export async function typescript( + options: Readonly< + Required< + OptionsComponentExts & + OptionsFiles & + OptionsFunctional & + OptionsMode & + OptionsOverrides & + OptionsProjectRoot & + OptionsTypeScriptParserOptions & + OptionsTypeScriptUnsafeSeverity + > + >, +): Promise { + const { + mode, + functionalEnforcement, + componentExts, + overrides, + parserOptions, + unsafe, + files, + filesTypeAware, + projectRoot, + } = options; + + const [pluginTs, parserTs] = (await loadPackages([ + "@typescript-eslint/eslint-plugin", + "@typescript-eslint/parser", + ])) as [ESLint.Plugin, Linter.Parser]; + + function makeParser( + typeAware: boolean, + files: string[], + ignores: string[] = [], + ): FlatConfigItem { + return { + name: `rs:typescript:${typeAware ? "type-aware-parser" : "parser"}`, + files, + ignores, + languageOptions: { + parser: parserTs, + parserOptions: { + extraFileExtensions: componentExts.map((ext) => `.${ext}`), + sourceType: "module", + ...(typeAware + ? { + projectService: true, + tsconfigRootDir: projectRoot, + } + : {}), + ...(parserOptions as Linter.ParserOptions), + }, }, + }; + } + + return [ + { + name: "rs:typescript:setup", + plugins: { ts: pluginTs }, }, - }, -}; + makeParser(true, filesTypeAware), + makeParser(false, files, filesTypeAware), + { + name: "rs:typescript:rules", + files, + rules: { + ...(assert(!Array.isArray(pluginTs.configs?.["eslint-recommended"])), + pluginTs.configs?.["eslint-recommended"]?.rules), + + "no-extra-boolean-cast": "off", + "consistent-return": "off", // Don't turn on ts version + "import/named": "off", + "no-undef": "off", + + "ts/array-type": [ + "error", + { default: "array-simple", readonly: "generic" }, + ], + "ts/await-thenable": "error", + "ts/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }], + "ts/explicit-function-return-type": [ + "off", + { + allowConciseArrowFunctionExpressionsStartingWithVoid: true, + allowExpressions: true, + allowHigherOrderFunctions: true, + allowTypedFunctionExpressions: true, + }, + ], + "ts/explicit-member-accessibility": [ + "error", + { accessibility: "explicit" }, + ], + "ts/no-array-delete": "error", + "ts/no-base-to-string": "error", + "ts/no-confusing-void-expression": [ + "error", + { ignoreArrowShorthand: false, ignoreVoidOperator: true }, + ], + "ts/no-duplicate-enum-values": "error", + "ts/no-duplicate-type-constituents": "error", + "ts/no-dynamic-delete": "error", + "ts/no-empty-interface": ["error", { allowSingleExtends: true }], + "ts/no-explicit-any": unsafe, + "ts/no-extra-non-null-assertion": "error", + "ts/no-extraneous-class": "error", + "ts/no-floating-promises": "error", + "ts/no-for-in-array": "error", + "ts/no-invalid-void-type": "error", + "ts/no-loop-func": "error", + // "ts/no-meaningless-void-operator": "error", + "ts/no-misused-new": "error", + "ts/no-misused-promises": "error", + "ts/no-mixed-enums": "error", + "ts/no-namespace": "error", + "ts/no-non-null-asserted-nullish-coalescing": "error", + "ts/no-non-null-asserted-optional-chain": "error", + // "ts/no-non-null-assertion": "error", + "ts/no-redundant-type-constituents": "error", + "ts/no-this-alias": "error", + "ts/no-unnecessary-boolean-literal-compare": "error", + "ts/no-unnecessary-condition": [ + "error", + { allowConstantLoopConditions: true }, + ], + "ts/no-unnecessary-type-arguments": "error", + "ts/no-unnecessary-type-assertion": "error", + "ts/no-unnecessary-type-constraint": "error", + "ts/no-unsafe-argument": unsafe, + "ts/no-unsafe-assignment": unsafe, + "ts/no-unsafe-call": unsafe, + "ts/no-unsafe-declaration-merging": unsafe, + "ts/no-unsafe-enum-comparison": unsafe, + "ts/no-unsafe-function-type": unsafe, + "ts/no-unsafe-member-access": unsafe, + "ts/no-unsafe-return": unsafe, + "ts/no-unused-expressions": [ + "error", + { + allowShortCircuit: true, + allowTaggedTemplates: true, + allowTernary: true, + }, + ], + "ts/no-unnecessary-template-expression": "error", + "ts/no-wrapper-object-types": "error", + "ts/non-nullable-type-assertion-style": "error", + "ts/prefer-as-const": "error", + "ts/prefer-for-of": "error", + "ts/prefer-includes": "error", + "ts/prefer-literal-enum-member": "error", + "ts/prefer-nullish-coalescing": "error", + "ts/prefer-optional-chain": "error", + // "ts/prefer-readonly-parameter-types": "error", + "ts/prefer-reduce-type-parameter": "error", + "ts/prefer-regexp-exec": "error", + "ts/prefer-return-this-type": "error", + "ts/prefer-string-starts-ends-with": "error", + "ts/restrict-plus-operands": [ + "error", + { + allowAny: true, + allowBoolean: false, + allowNullish: false, + allowNumberAndString: false, + allowRegExp: false, + skipCompoundAssignments: true, + }, + ], + "ts/restrict-template-expressions": [ + "error", + { + allowAny: true, + allowBoolean: true, + allowNullish: true, + allowNumber: true, + allowRegExp: false, + allowNever: false, + }, + ], + "ts/strict-boolean-expressions": [ + "error", + { + allowAny: false, + allowNullableBoolean: false, + allowNullableNumber: false, + allowNullableObject: false, + allowNullableString: false, + allowNumber: false, + allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false, + allowString: false, + }, + ], + "ts/switch-exhaustiveness-check": "error", + "ts/unbound-method": ["error", { ignoreStatic: true }], + "ts/unified-signatures": [ + "error", + { ignoreDifferentlyNamedParameters: true }, + ], + "ts/use-unknown-in-catch-callback-variable": "error", + + "no-use-before-define": "off", + "ts/no-use-before-define": [ + "error", + { + classes: true, + functions: false, + typedefs: true, + variables: true, + }, + ], + + "no-shadow": "off", + "ts/no-shadow": [ + "warn", + { + allow: ["resolve", "reject", "done", "cb"], + builtinGlobals: false, + hoist: "never", + }, + ], + + "no-dupe-class-members": "off", + "ts/no-dupe-class-members": "off", + + "no-invalid-this": "off", + "ts/no-invalid-this": "off", + + "no-redeclare": "off", + "ts/no-redeclare": "off", + + "no-unused-vars": "off", + "ts/no-unused-vars": [ + "error", + { + args: "none", + caughtErrors: "none", + ignoreRestSiblings: true, + vars: "all", + }, + ], + + "no-loss-of-precision": "off", + "ts/no-loss-of-precision": "error", + + "no-throw-literal": "off", + "ts/only-throw-error": "error", + + "dot-notation": "off", + "ts/dot-notation": [ + "error", + { allowIndexSignaturePropertyAccess: true }, + ], -export default mergeConfigs(baseConfig, typescript); + "ts/consistent-indexed-object-style": "error", + "ts/consistent-type-definitions": ["error", "type"], + + "class-methods-use-this": "off", + "ts/class-methods-use-this": "error", + + "no-array-constructor": "off", + "ts/no-array-constructor": "error", + + "no-implied-eval": "off", + "ts/no-implied-eval": "error", + + "no-return-await": "off", + "ts/return-await": ["error", "never"], + + "no-useless-constructor": "off", + "ts/no-useless-constructor": "error", + + "prefer-destructuring": "off", + "ts/prefer-destructuring": [ + "error", + { + VariableDeclarator: { array: false, object: true }, + AssignmentExpression: { array: true, object: true }, + }, + { enforceForRenamedProperties: false }, + ], + + "prefer-promise-reject-errors": "off", + "ts/prefer-promise-reject-errors": "error", + + "require-await": "off", + "ts/require-await": "error", + + ...(mode === "application" + ? { + "ts/no-empty-object-type": [ + "error", + { + allowInterfaces: "with-single-extends", + }, + ], + } + : {}), + + ...(functionalEnforcement === "none" + ? {} + : { + "ts/naming-convention": [ + "error", + { + selector: "default", + format: ["camelCase", "PascalCase"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: "variableLike", + filter: { regex: "_[^_]+", match: true }, + format: ["camelCase", "PascalCase"], + prefix: ["m_", "M_"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "variableLike", + format: ["camelCase", "PascalCase"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: "variable", + format: ["camelCase", "PascalCase", "UPPER_CASE"], + prefix: ["m_", "M_"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "variable", + filter: { regex: "^[A-Z0-9_]+$", match: true }, + format: ["UPPER_CASE"], + modifiers: ["const"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "variable", + filter: { regex: "_[^_]+", match: true }, + format: ["camelCase", "PascalCase"], + modifiers: ["const"], + prefix: ["m_", "M_"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "variable", + format: ["camelCase", "PascalCase", "UPPER_CASE"], + modifiers: ["const"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: "variable", + format: null, + modifiers: ["destructured"], + }, + { + selector: "memberLike", + filter: { regex: "^[A-Z0-9_]+$", match: true }, + format: ["UPPER_CASE"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "memberLike", + format: ["camelCase", "PascalCase"], + prefix: ["m_", "M_"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "memberLike", + filter: { regex: "_[^_]+", match: true }, + format: ["camelCase", "PascalCase"], + modifiers: ["readonly"], + prefix: ["m_", "M_"], + leadingUnderscore: "forbid", + trailingUnderscore: "forbid", + }, + { + selector: "memberLike", + format: ["camelCase", "PascalCase", "UPPER_CASE"], + modifiers: ["readonly"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: [ + "accessor", + "classMethod", + "typeMethod", + "typeProperty", + ], + format: ["camelCase", "PascalCase", "UPPER_CASE"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: "enumMember", + format: ["PascalCase", "UPPER_CASE"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: "typeLike", + format: ["PascalCase"], + leadingUnderscore: "allow", + trailingUnderscore: "forbid", + }, + { + selector: ["objectLiteralProperty", "objectLiteralMethod"], + format: null, + }, + ], + }), + + ...overrides, + }, + }, + { + name: "rs:typescript:rules-non-type-aware", + files, + ignores: filesTypeAware, + rules: ((pluginTs.configs?.["disable-type-checked"] as Linter.FlatConfig) + .rules ?? {}) as NonNullable, + }, + { + name: "rs:typescript:tests-overrides", + files: GLOB_TESTS, + rules: { + "ts/no-unused-expressions": "off", + "ts/consistent-type-definitions": "off", + "ts/triple-slash-reference": "off", + }, + }, + { + name: "rs:typescript:javascript-overrides", + files: [GLOB_JS, GLOB_JSX], + rules: { + "ts/ban-ts-comment": "off", + "ts/no-require-imports": "off", + "ts/no-var-requires": "off", + }, + }, + ]; +} diff --git a/src/configs/unicorn.ts b/src/configs/unicorn.ts new file mode 100644 index 00000000..ee0f598b --- /dev/null +++ b/src/configs/unicorn.ts @@ -0,0 +1,131 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem } from "../types"; +import { loadPackages } from "../utils"; + +export async function unicorn(): Promise { + const [pluginUnicorn] = (await loadPackages(["eslint-plugin-unicorn"])) as [ + ESLint.Plugin, + ]; + + return [ + { + name: "rs:unicorn", + plugins: { + unicorn: pluginUnicorn, + }, + rules: { + "unicorn/better-regex": "error", + "unicorn/catch-error-name": "error", + "unicorn/consistent-function-scoping": "error", + "unicorn/custom-error-definition": "error", + "unicorn/empty-brace-spaces": "error", + "unicorn/error-message": "error", + "unicorn/escape-case": "error", + "unicorn/expiring-todo-comments": "error", + "unicorn/explicit-length-check": "error", + "unicorn/filename-case": [ + "error", + { + cases: { kebabCase: true, pascalCase: true }, + ignore: ["^.*\\.md$", "FUNDING.yml"], + }, + ], + "unicorn/import-style": [ + "error", + { + extendDefaultStyles: false, + styles: { typescript: { default: true, named: true } }, + }, + ], + "unicorn/new-for-builtins": "error", + // "unicorn/no-anonymous-default-export": "error", // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2302 + "unicorn/no-array-for-each": "error", + "unicorn/no-array-method-this-argument": "error", + "unicorn/no-array-push-push": "error", + "unicorn/no-await-expression-member": "error", + // "unicorn/no-await-in-promise-methods": "error", // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2302 + "unicorn/no-console-spaces": "error", + "unicorn/no-document-cookie": "error", + "unicorn/no-for-loop": "error", + "unicorn/no-hex-escape": "error", + "unicorn/no-instanceof-array": "error", + "unicorn/no-invalid-remove-event-listener": "error", + "unicorn/no-lonely-if": "error", + "unicorn/no-negated-condition": "error", + "unicorn/no-new-array": "error", + "unicorn/no-new-buffer": "error", + "unicorn/no-object-as-default-parameter": "error", + // "unicorn/no-single-promise-in-promise-methods": "error", // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2302 + "unicorn/no-static-only-class": "error", + "unicorn/no-thenable": "error", + "unicorn/no-this-assignment": "error", + "unicorn/no-typeof-undefined": "error", + "unicorn/no-unnecessary-await": "error", + "unicorn/no-unnecessary-polyfills": "error", + "unicorn/no-unreadable-array-destructuring": "error", + "unicorn/no-unreadable-iife": "error", + "unicorn/no-useless-fallback-in-spread": "error", + "unicorn/no-useless-length-check": "error", + "unicorn/no-useless-promise-resolve-reject": "error", + // "unicorn/no-useless-spread": "error", // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2018 + "unicorn/no-useless-switch-case": "error", + "unicorn/no-zero-fractions": "error", + "unicorn/number-literal-case": "error", + "unicorn/numeric-separators-style": "error", + "unicorn/prefer-add-event-listener": "error", + "unicorn/prefer-array-find": "error", + "unicorn/prefer-array-flat-map": "error", + "unicorn/prefer-array-flat": "error", + "unicorn/prefer-array-index-of": "error", + "unicorn/prefer-array-some": "error", + "unicorn/prefer-at": ["error", { checkAllIndexAccess: false }], + "unicorn/prefer-blob-reading-methods": "error", + "unicorn/prefer-code-point": "error", + "unicorn/prefer-date-now": "error", + "unicorn/prefer-default-parameters": "error", + "unicorn/prefer-dom-node-append": "error", + "unicorn/prefer-dom-node-dataset": "error", + "unicorn/prefer-dom-node-remove": "error", + "unicorn/prefer-dom-node-text-content": "error", + "unicorn/prefer-event-target": "error", + "unicorn/prefer-export-from": "error", + "unicorn/prefer-includes": "error", + "unicorn/prefer-keyboard-event-key": "error", + "unicorn/prefer-logical-operator-over-ternary": "error", + "unicorn/prefer-math-trunc": "error", + "unicorn/prefer-modern-dom-apis": "error", + "unicorn/prefer-modern-math-apis": "error", + // "unicorn/prefer-module": "error", + "unicorn/prefer-native-coercion-functions": "error", + "unicorn/prefer-negative-index": "error", + "unicorn/prefer-node-protocol": "error", + "unicorn/prefer-number-properties": "error", + "unicorn/prefer-object-from-entries": "error", + "unicorn/prefer-optional-catch-binding": "error", + "unicorn/prefer-prototype-methods": "error", + "unicorn/prefer-query-selector": "error", + "unicorn/prefer-reflect-apply": "error", + "unicorn/prefer-regexp-test": "error", + "unicorn/prefer-set-has": "error", + "unicorn/prefer-set-size": "error", + "unicorn/prefer-spread": "error", + "unicorn/prefer-string-replace-all": "error", + "unicorn/prefer-string-slice": "error", + "unicorn/prefer-string-starts-ends-with": "error", + "unicorn/prefer-string-trim-start-end": "error", + "unicorn/prefer-switch": "error", + "unicorn/prefer-ternary": "error", + "unicorn/prefer-top-level-await": "error", + "unicorn/prefer-type-error": "error", + "unicorn/relative-url-style": "error", + "unicorn/require-array-join-separator": "error", + "unicorn/require-number-to-fixed-digits-argument": "error", + "unicorn/switch-case-braces": "error", + "unicorn/template-indent": "error", + "unicorn/text-encoding-identifier-case": "error", + "unicorn/throw-new-error": "error", + }, + }, + ]; +} diff --git a/src/configs/unocss.ts b/src/configs/unocss.ts new file mode 100644 index 00000000..da78eeaa --- /dev/null +++ b/src/configs/unocss.ts @@ -0,0 +1,36 @@ +import type { ESLint } from "eslint"; + +import type { FlatConfigItem, OptionsUnoCSS } from "../types"; +import { loadPackages } from "../utils"; + +export async function unocss( + options: Readonly>, +): Promise { + const { attributify, strict } = options; + + const [pluginUnoCSS] = (await loadPackages(["@unocss/eslint-plugin"])) as [ + ESLint.Plugin, + ]; + + return [ + { + name: "js:unocss", + plugins: { + unocss: pluginUnoCSS, + }, + rules: { + "unocss/order": "error", + ...(attributify + ? { + "unocss/order-attributify": "error", + } + : {}), + ...(strict + ? { + "unocss/blocklist": "error", + } + : {}), + }, + }, + ]; +} diff --git a/src/configs/vue.ts b/src/configs/vue.ts new file mode 100644 index 00000000..1ebc727b --- /dev/null +++ b/src/configs/vue.ts @@ -0,0 +1,280 @@ +import type { ESLint, Linter } from "eslint"; +import { mergeProcessors } from "eslint-merge-processors"; + +import type { + FlatConfigItem, + OptionsFiles, + OptionsHasTypeScript, + OptionsOverrides, + OptionsTypeScriptParserOptions, + OptionsVue, + RequiredOptionsStylistic, +} from "../types"; +import { interopDefault, loadPackages } from "../utils"; + +/* eslint-disable ts/naming-convention */ +type PluginVue = ESLint.Plugin & { + configs: { + base: Linter.FlatConfig; + essential: Linter.FlatConfig; + "strongly-recommended": Linter.FlatConfig; + recommended: Linter.FlatConfig; + "vue3-essential": Linter.FlatConfig; + "vue3-strongly-recommended": Linter.FlatConfig; + "vue3-recommended": Linter.FlatConfig; + }; +}; +/* eslint-enable ts/naming-convention */ + +export async function vue( + options: Readonly< + Required< + OptionsVue & + OptionsFiles & + OptionsHasTypeScript & + OptionsOverrides & + OptionsTypeScriptParserOptions & + RequiredOptionsStylistic + > + >, +): Promise { + const { + files, + i18n, + overrides, + parserOptions, + stylistic, + typescript, + vueVersion, + } = options; + + const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks; + + const { indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic; + + const [pluginVue, pluginVueI18n, parserVue, processorVueBlocks] = + (await loadPackages([ + "eslint-plugin-vue", + "@intlify/eslint-plugin-vue-i18n", + "vue-eslint-parser", + "eslint-processor-vue-blocks", + ])) as [ + PluginVue, + ESLint.Plugin, + typeof import("vue-eslint-parser"), + (typeof import("eslint-processor-vue-blocks"))["default"], + ]; + + const parserTs = await interopDefault( + import("@typescript-eslint/parser"), + ).catch(() => undefined); + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:vue:setup", + languageOptions: { + globals: { + computed: "readonly", + defineEmits: "readonly", + defineExpose: "readonly", + defineProps: "readonly", + onMounted: "readonly", + onUnmounted: "readonly", + reactive: "readonly", + ref: "readonly", + shallowReactive: "readonly", + shallowRef: "readonly", + toRef: "readonly", + toRefs: "readonly", + watch: "readonly", + watchEffect: "readonly", + }, + }, + plugins: + i18n === false + ? { + vue: pluginVue, + } + : { + vue: pluginVue, + "vue-i18n": pluginVueI18n, + }, + }, + + { + name: "rs:vue:rules", + files, + languageOptions: { + parser: parserVue, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + extraFileExtensions: [".vue"], + parser: typescript ? parserTs : null, + ...(typescript ? parserOptions : {}), + sourceType: "module", + }, + }, + processor: + sfcBlocks === false + ? pluginVue.processors![".vue"]! + : mergeProcessors([ + pluginVue.processors![".vue"]!, + processorVueBlocks({ + ...sfcBlocks, + blocks: { + styles: true, + ...sfcBlocks.blocks, + }, + }), + ]), + + settings: + i18n === false + ? {} + : { + "vue-i18n": i18n, + }, + rules: { + ...pluginVue.configs.base.rules, + + ...(vueVersion === 2 + ? { + ...pluginVue.configs.essential.rules, + ...pluginVue.configs["strongly-recommended"].rules, + ...pluginVue.configs.recommended.rules, + } + : { + ...pluginVue.configs["vue3-essential"].rules, + ...pluginVue.configs["vue3-strongly-recommended"].rules, + ...pluginVue.configs["vue3-recommended"].rules, + }), + + "node/prefer-global/process": "off", + "vue/block-order": [ + "error", + { + order: ["script", "template", "style"], + }, + ], + + "vue/component-name-in-template-casing": ["error", "PascalCase"], + "vue/component-options-name-casing": ["error", "PascalCase"], + // this is deprecated + // "vue/component-tags-order": "off", + "vue/custom-event-name-casing": ["error", "camelCase"], + "vue/define-macros-order": [ + "error", + { + order: [ + "defineOptions", + "defineProps", + "defineEmits", + "defineSlots", + ], + }, + ], + "vue/dot-location": ["error", "property"], + "vue/dot-notation": ["error", { allowKeywords: true }], + "vue/eqeqeq": ["error", "smart"], + "vue/html-indent": ["error", indent], + "vue/html-quotes": ["error", "double"], + // "vue/max-attributes-per-line": "off", + "vue/multi-word-component-names": "error", + // "vue/no-dupe-keys": "off", + "vue/no-empty-pattern": "error", + "vue/no-irregular-whitespace": "error", + "vue/no-loss-of-precision": "error", + "vue/no-restricted-syntax": [ + "error", + "DebuggerStatement", + "LabeledStatement", + "WithStatement", + ], + "vue/no-restricted-v-bind": ["error", "/^v-/"], + // "vue/no-setup-props-reactivity-loss": "off", + "vue/no-sparse-arrays": "error", + "vue/no-unused-refs": "error", + "vue/no-useless-v-bind": "error", + // "vue/no-v-html": "off", + "vue/object-shorthand": [ + "error", + "always", + { + avoidQuotes: true, + ignoreConstructors: false, + }, + ], + "vue/prefer-separate-static-class": "error", + "vue/prefer-template": "error", + "vue/prop-name-casing": ["error", "camelCase"], + // "vue/require-default-prop": "off", + // "vue/require-prop-types": "off", + "vue/space-infix-ops": "error", + "vue/space-unary-ops": ["error", { nonwords: false, words: true }], + + "vue-i18n/no-html-messages": i18n === false ? "off" : "error", + "vue-i18n/no-missing-keys": i18n === false ? "off" : "error", + "vue-i18n/no-raw-text": i18n === false ? "off" : "warn", + "vue-i18n/no-v-html": i18n === false ? "off" : "error", + + "vue/array-bracket-spacing": [stylisticEnforcement, "never"], + "vue/arrow-spacing": [ + stylisticEnforcement, + { after: true, before: true }, + ], + "vue/block-spacing": [stylisticEnforcement, "always"], + "vue/block-tag-newline": [ + stylisticEnforcement, + { + multiline: "always", + singleline: "always", + }, + ], + "vue/brace-style": [ + stylisticEnforcement, + // cspell:disable-next-line + "stroustrup", + { allowSingleLine: true }, + ], + "vue/comma-dangle": [stylisticEnforcement, "always-multiline"], + "vue/comma-spacing": [ + stylisticEnforcement, + { after: true, before: false }, + ], + "vue/comma-style": [stylisticEnforcement, "last"], + "vue/html-comment-content-spacing": [ + stylisticEnforcement, + "always", + { + exceptions: ["-"], + }, + ], + "vue/key-spacing": [ + stylisticEnforcement, + { afterColon: true, beforeColon: false }, + ], + "vue/keyword-spacing": [ + stylisticEnforcement, + { after: true, before: true }, + ], + // "vue/object-curly-newline": "off", + "vue/object-curly-spacing": [stylisticEnforcement, "always"], + "vue/object-property-newline": [ + stylisticEnforcement, + { allowMultiplePropertiesPerLine: true }, + ], + "vue/operator-linebreak": [stylisticEnforcement, "before"], + "vue/padding-line-between-blocks": [stylisticEnforcement, "always"], + "vue/quote-props": [stylisticEnforcement, "consistent-as-needed"], + "vue/space-in-parens": [stylisticEnforcement, "never"], + "vue/template-curly-spacing": stylisticEnforcement, + + ...overrides, + }, + }, + ]; +} diff --git a/src/configs/yaml.ts b/src/configs/yaml.ts new file mode 100644 index 00000000..21eff61d --- /dev/null +++ b/src/configs/yaml.ts @@ -0,0 +1,75 @@ +import type { ESLint } from "eslint"; + +import type { + FlatConfigItem, + OptionsFiles, + OptionsOverrides, + RequiredOptionsStylistic, +} from "../types"; +import { loadPackages } from "../utils"; + +export async function yaml( + options: Readonly< + Required + >, +): Promise { + const { files, overrides, stylistic } = options; + + const { indent = 2, quotes = "single" } = + typeof stylistic === "boolean" ? {} : stylistic; + + const [pluginYaml, parserYaml] = (await loadPackages([ + "eslint-plugin-yml", + "yaml-eslint-parser", + ])) as [ + typeof import("eslint-plugin-yml"), + typeof import("yaml-eslint-parser"), + ]; + + const stylisticEnforcement = stylistic === false ? "off" : "error"; + + return [ + { + name: "rs:yaml:setup", + plugins: { + yaml: pluginYaml as unknown as ESLint.Plugin, + }, + }, + { + files, + languageOptions: { + parser: parserYaml, + }, + name: "rs:yaml:rules", + rules: { + "style/spaced-comment": "off", + + "yaml/block-mapping": "error", + "yaml/block-sequence": "error", + "yaml/no-empty-key": "error", + "yaml/no-empty-sequence-entry": "error", + "yaml/no-irregular-whitespace": "error", + "yaml/plain-scalar": "error", + + "yaml/vue-custom-block/no-parsing-error": "error", + + "yaml/block-mapping-question-indicator-newline": stylisticEnforcement, + "yaml/block-sequence-hyphen-indicator-newline": stylisticEnforcement, + "yaml/flow-mapping-curly-newline": stylisticEnforcement, + "yaml/flow-mapping-curly-spacing": stylisticEnforcement, + "yaml/flow-sequence-bracket-newline": stylisticEnforcement, + "yaml/flow-sequence-bracket-spacing": stylisticEnforcement, + "yaml/indent": [stylisticEnforcement, indent === "tab" ? 2 : indent], + "yaml/key-spacing": stylisticEnforcement, + "yaml/no-tab-indent": stylisticEnforcement, + "yaml/quotes": [ + stylisticEnforcement, + { avoidEscape: true, prefer: quotes }, + ], + "yaml/spaced-comment": stylisticEnforcement, + + ...overrides, + }, + }, + ]; +} diff --git a/src/factory.ts b/src/factory.ts new file mode 100644 index 00000000..2c9ecc7f --- /dev/null +++ b/src/factory.ts @@ -0,0 +1,378 @@ +import * as path from "node:path"; + +import { FlatConfigComposer } from "eslint-flat-config-utils"; +import { isPackageExists } from "local-pkg"; + +import { + StylisticConfigDefaults, + comments, + defaultFilesTypesAware, + formatters, + functional, + ignores, + imports, + inEditor, + javascript, + jsdoc, + jsonc, + markdown, + node, + overrides, + promise, + regexp, + sonar, + sortTsconfig, + stylistic, + test, + toml, + typescript, + unicorn, + unocss, + vue, + yaml, +} from "./configs"; +import { + GLOB_JSON, + GLOB_JSON5, + GLOB_JSONC, + GLOB_MARKDOWN, + GLOB_ROOT_DTS, + GLOB_ROOT_JS, + GLOB_ROOT_JSX, + GLOB_ROOT_TS, + GLOB_ROOT_TSX, + GLOB_SRC, + GLOB_TESTS, + GLOB_TOML, + GLOB_VUE, + GLOB_YAML, +} from "./globs"; +import type { + Awaitable, + FlatConfigItem, + OptionsConfig, + OptionsTypeScriptParserOptions, + OptionsTypeScriptShorthands, + OptionsTypescript, +} from "./types"; + +const VuePackages = ["vue", "nuxt", "vitepress", "@slidev/cli"]; + +export const defaultPluginRenaming = { + "@intlify/vue-i18n": "vue-i18n", + "@stylistic": "style", + "@typescript-eslint": "ts", + "import-x": "import", + n: "node", + "optimize-regex": "regexp", + sonarjs: "sonar", + vitest: "test", + yml: "yaml", +}; + +/** + * Construct an array of ESLint flat config items. + * + * @param {OptionsConfig & FlatConfigItem} options - The options for generating the ESLint configurations. + * @param {Awaitable[]} userConfigs - The user configurations to be merged with the generated configurations. + * @returns {Promise} The merged ESLint configurations. + */ +export function rsEslint( + options: OptionsConfig, + ...userConfigs: ReadonlyArray> +): FlatConfigComposer { + const { + autoRenamePlugins = true, + componentExts = [], + isInEditor = !Boolean(process.env["CI"]) && + (Boolean(process.env["VSCODE_PID"]) || + Boolean(process.env["VSCODE_CWD"]) || + Boolean(process.env["JETBRAINS_IDE"]) || + Boolean(process.env["VIM"]) || + Boolean(process.env["NVIM"])), + ignores: ignoresOptions, + ignoresFiles: ignoresFilesOptions = [".gitignore"], + typescript: typeScriptOptions = isPackageExists("typescript"), + unocss: unoCSSOptions = isPackageExists("unocss"), + vue: vueOptions = VuePackages.some((i) => isPackageExists(i)), + test: testOptions = true, + jsx: jsxOptions = true, + functional: functionalOptions = true, + jsonc: jsoncOptions = false, + yaml: yamlOptions = false, + toml: tomlOptions = false, + markdown: markdownOptions = false, + formatters: formattersOptions = true, + mode, + projectRoot, + } = options; + + const stylisticOptions = + options.stylistic === false + ? false + : typeof options.stylistic === "object" + ? { + ...StylisticConfigDefaults, + jsx: jsxOptions, + ...options.stylistic, + } + : StylisticConfigDefaults; + + const functionalEnforcement = + typeof functionalOptions === "string" + ? functionalOptions + : typeof functionalOptions === "object" + ? (functionalOptions.functionalEnforcement ?? "recommended") + : functionalOptions + ? "recommended" + : "none"; + + const hasTypeScript = Boolean(typeScriptOptions); + + const { + filesTypeAware, + parserOptions, + useDefaultDefaultProject, + ...typeScriptSubOptions + } = resolveSubOptions(options, "typescript") as OptionsTypescript & + OptionsTypeScriptParserOptions & + OptionsTypeScriptShorthands; + + const projectServiceUserConfig = { + defaultProject: "./tsconfig.json", + ...(typeof parserOptions?.projectService === "object" + ? parserOptions.projectService + : undefined), + }; + + const typescriptConfigOptions: Required = { + ...typeScriptSubOptions, + filesTypeAware: filesTypeAware ?? defaultFilesTypesAware, + parserOptions: { + tsconfigRootDir: projectRoot, + ...parserOptions, + projectService: + parserOptions?.projectService === false + ? false + : useDefaultDefaultProject === false + ? projectServiceUserConfig + : { + allowDefaultProject: [ + path.join(projectRoot, GLOB_ROOT_JS), + path.join(projectRoot, GLOB_ROOT_JSX), + path.join(projectRoot, GLOB_ROOT_TS), + path.join(projectRoot, GLOB_ROOT_TSX), + path.join(projectRoot, GLOB_ROOT_DTS), + ], + ...projectServiceUserConfig, + }, + }, + }; + + const functionalConfigOptions = { + functionalEnforcement, + ignoreNamePattern: ["^mutable", "^[mM]_"], + ...resolveSubOptions(options, "functional"), + }; + + const m_configs: Array> = []; + + // Base configs + m_configs.push( + ignores({ + projectRoot, + ignores: ignoresOptions ?? [], + ignoreFiles: ignoresFilesOptions, + }), + javascript({ + ...functionalConfigOptions, + overrides: getOverrides(options, "javascript"), + }), + imports({ + ...typescriptConfigOptions, + stylistic: stylisticOptions, + }), + jsdoc({ + stylistic: stylisticOptions, + }), + promise(), + regexp(), + sonar(functionalConfigOptions), + comments(), + unicorn(), + node(), + ); + + if (vueOptions !== false) { + componentExts.push("vue"); + } + + if (typeScriptOptions !== false) { + m_configs.push( + typescript({ + projectRoot, + mode, + files: [GLOB_SRC, ...componentExts.map((ext) => `**/*.${ext}`)], + unsafe: "warn", + ...typescriptConfigOptions, + ...functionalConfigOptions, + componentExts, + overrides: getOverrides(options, "typescript"), + }), + ); + } + + if (stylisticOptions !== false) { + m_configs.push( + stylistic({ + stylistic: stylisticOptions, + typescript: hasTypeScript, + overrides: getOverrides(options, "stylistic"), + }), + ); + } + + if (functionalEnforcement !== "none" || mode === "library") { + m_configs.push( + functional({ + ...typescriptConfigOptions, + ...functionalConfigOptions, + overrides: getOverrides(options, "functional"), + stylistic: stylisticOptions, + mode, + }), + ); + } + + if (testOptions !== false) { + m_configs.push( + test({ + files: GLOB_TESTS, + overrides: getOverrides(options, "test"), + }), + ); + } + + if (vueOptions !== false) { + m_configs.push( + vue({ + ...typescriptConfigOptions, + typescript: hasTypeScript, + files: [GLOB_VUE], + i18n: false, + vueVersion: 3, + sfcBlocks: true, + ...resolveSubOptions(options, "vue"), + overrides: getOverrides(options, "vue"), + stylistic: stylisticOptions, + }), + ); + } + + if (unoCSSOptions !== false) { + m_configs.push( + unocss({ + attributify: true, + strict: true, + ...resolveSubOptions(options, "unocss"), + overrides: getOverrides(options, "unocss"), + }), + ); + } + + if (jsoncOptions !== false) { + m_configs.push( + jsonc({ + files: [GLOB_JSON, GLOB_JSON5, GLOB_JSONC], + overrides: getOverrides(options, "jsonc"), + stylistic: stylisticOptions, + }), + sortTsconfig(), + ); + } + + if (yamlOptions !== false) { + m_configs.push( + yaml({ + files: [GLOB_YAML], + overrides: getOverrides(options, "yaml"), + stylistic: stylisticOptions, + }), + ); + } + + if (tomlOptions !== false) { + m_configs.push( + toml({ + files: [GLOB_TOML], + overrides: getOverrides(options, "toml"), + stylistic: stylisticOptions, + }), + ); + } + + if (markdownOptions !== false) { + m_configs.push( + markdown({ + enableTypeRequiredRules: !( + markdownOptions === true || + markdownOptions.enableTypeRequiredRules === false + ), + files: [GLOB_MARKDOWN], + componentExts, + overrides: getOverrides(options, "markdown"), + }), + ); + } + + if (formattersOptions !== false) { + m_configs.push( + formatters( + formattersOptions, + stylisticOptions === false ? {} : stylisticOptions, + ), + ); + } + + if (isInEditor) { + m_configs.push(inEditor()); + } + + m_configs.push(overrides()); + + let m_composer = new FlatConfigComposer().append( + ...m_configs, + ...userConfigs, + ); + + if (autoRenamePlugins) { + m_composer = m_composer.renamePlugins(defaultPluginRenaming); + } + + return m_composer; +} + +export type ResolvedOptions = T extends boolean + ? never + : T extends string + ? never + : NonNullable; + +export function resolveSubOptions( + options: Readonly, + key: K, +): ResolvedOptions { + return ( + typeof options[key] === "boolean" || typeof options[key] === "string" + ? {} + : (options[key] ?? {}) + ) as ResolvedOptions; +} + +export function getOverrides( + options: Readonly, + key: K, +) { + const sub = resolveSubOptions(options, key); + return "overrides" in sub ? sub.overrides : {}; +} diff --git a/src/globs.ts b/src/globs.ts new file mode 100644 index 00000000..b53311d8 --- /dev/null +++ b/src/globs.ts @@ -0,0 +1,104 @@ +export const GLOB_SRC_EXT = "?([cm])[jt]s?(x)"; +export const GLOB_SRC = "**/?(.)*.?([cm])[jt]s?(x)"; + +export const GLOB_JS = "**/?(.)*.?([cm])js"; +export const GLOB_JSX = "**/?(.)*.?([cm])jsx"; + +export const GLOB_TS = "**/?(.)*.?([cm])ts"; +export const GLOB_TSX = "**/?(.)*.?([cm])tsx"; +export const GLOB_DTS = "**/?(.)*.d.?([cm])ts"; + +export const GLOB_ROOT_JS = "./?(.)*.?([cm])js"; +export const GLOB_ROOT_JSX = "./?(.)*.?([cm])jsx"; + +export const GLOB_ROOT_TS = "./?(.)*.?([cm])ts"; +export const GLOB_ROOT_TSX = "./?(.)*.?([cm])tsx"; +export const GLOB_ROOT_DTS = "./?(.)*.d.?([cm])ts"; + +export const GLOB_TYPINGS = "typings/**/?(.)*.?([cm])ts"; + +export const GLOB_MJS = "**/?(.)*.mjs"; +export const GLOB_MTS = "**/?(.)*.mts"; + +export const GLOB_CJS = "**/?(.)*.cjs"; +export const GLOB_CTS = "**/?(.)*.cts"; + +export const GLOB_STYLE = "**/?(.)*.{c,le,sc}ss"; +export const GLOB_CSS = "**/?(.)*.css"; +export const GLOB_POSTCSS = "**/?(.)*.{p,post}css"; +export const GLOB_LESS = "**/?(.)*.less"; +export const GLOB_SCSS = "**/?(.)*.scss"; + +export const GLOB_JSON = "**/?(.)*.json"; +export const GLOB_JSON5 = "**/?(.)*.json5"; +export const GLOB_JSONC = "**/?(.)*.jsonc"; + +export const GLOB_MARKDOWN = "**/?(.)*.md"; +export const GLOB_MARKDOWN_IN_MARKDOWN = "**/?(.)*.md/?(.)*.md"; +export const GLOB_VUE = "**/?(.)*.vue"; +export const GLOB_YAML = "**/?(.)*.y?(a)ml"; +export const GLOB_TOML = "**/?(.)*.toml"; +export const GLOB_HTML = "**/?(.)*.htm?(l)"; +export const GLOB_GRAPHQL = "**/?(.)*.{g,graph}ql"; + +export const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`; + +export const GLOB_TESTS = [ + `**/__tests__/**/?(.)*.${GLOB_SRC_EXT}`, + `**/?(.)*.spec.${GLOB_SRC_EXT}`, + `**/?(.)*.test.${GLOB_SRC_EXT}`, + `**/?(.)*.bench.${GLOB_SRC_EXT}`, + `**/?(.)*.benchmark.${GLOB_SRC_EXT}`, +]; + +export const GLOB_ALL_SRC = [ + GLOB_SRC, + GLOB_STYLE, + GLOB_JSON, + GLOB_JSON5, + GLOB_MARKDOWN, + GLOB_VUE, + GLOB_YAML, + GLOB_HTML, +]; + +export const GLOB_EXCLUDE = [ + "**/node_modules", + "**/dist", + "**/lib", + "**/package-lock.json", + "**/yarn.lock", + "**/pnpm-lock.yaml", + "**/bun.lockb", + + "**/output", + "**/coverage", + "**/temp", + "**/.temp", + "**/tmp", + "**/.tmp", + "**/.history", + "**/.vitepress/cache", + "**/.nuxt", + "**/.next", + "**/.vercel", + "**/.changeset", + "**/.idea", + "**/.cache", + "**/.output", + "**/.vite-inspect", + "**/.yarn", + + "**/CHANGELOG*.md", + "**/?(.)*.min.*", + "**/LICENSE*", + "**/__snapshots__", + "**/auto-import.ts", + "**/auto-import.d.ts", + "**/auto-imports.ts", + "**/auto-imports.d.ts", + "**/components.ts", + "**/components.d.ts", + "**/typegen.ts", + "**/typegen.d.ts", +]; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..b3fb368e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,7 @@ +export * from "./configs"; +export * from "./factory"; +export * from "./globs"; +export * from "./types"; +// export * from "./utils"; + +export { rsEslint as default } from "./factory"; diff --git a/src/plugins/eslint-comments.ts b/src/plugins/eslint-comments.ts deleted file mode 100644 index 7c137433..00000000 --- a/src/plugins/eslint-comments.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["eslint-comments"], - - extends: ["plugin:eslint-comments/recommended"], - - rules: { - "eslint-comments/disable-enable-pair": ["error", { allowWholeFile: true }], - }, -}; diff --git a/src/plugins/functional.ts b/src/plugins/functional.ts deleted file mode 100644 index 7b8727be..00000000 --- a/src/plugins/functional.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["functional"], - - extends: ["plugin:functional/recommended"], - - settings: { - immutability: { - overrides: [ - { type: "^ReadonlyDeep<.+>$", to: "ReadonlyDeep" }, - { type: "^Immutable<.+>$", to: "Immutable" }, - ], - }, - }, - - rules: { - "functional/no-expression-statements": [ - "error", - { - ignoreCodePattern: "^assert", - }, - ], - "functional/immutable-data": [ - "error", - { - ignoreAccessorPattern: ["**.mutable*.**", "**.m_*.**"], - ignoreClasses: "fieldsOnly", - ignoreImmediateMutation: true, - }, - ], - "functional/no-classes": "off", - "functional/no-let": [ - "error", - { - allowInForLoopInit: true, - ignoreIdentifierPattern: ["^mutable", "^m_"], - }, - ], - "functional/no-mixed-types": "off", - "functional/functional-parameters": "off", - "functional/prefer-immutable-types": [ - "warn", - { - enforcement: "None", - ignoreInferredTypes: true, - ignoreNamePattern: ["^m_"], - parameters: { - enforcement: "ReadonlyShallow", - }, - fixer: { - ReadonlyShallow: [ - { - pattern: "^(Array|Map|Set)<(.+)>$", - replace: "Readonly$1<$2>", - }, - { - pattern: "^(.+)$", - replace: "Readonly<$1>", - }, - ], - ReadonlyDeep: [ - { - pattern: "^(?:Readonly<(.+)>|(.+))$", - replace: "ReadonlyDeep<$1$2>", - }, - ], - Immutable: [ - { - pattern: "^(?:Readonly(?:Deep)?<(.+)>|(.+))$", - replace: "Immutable<$1$2>", - }, - ], - }, - }, - ], - }, -}; diff --git a/src/plugins/import.ts b/src/plugins/import.ts deleted file mode 100644 index f0d74a23..00000000 --- a/src/plugins/import.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { type Linter } from "eslint"; - -import { commonJsFiles, jsExtensions, typescriptFiles } from "~/files"; - -export const settings: Linter.Config = { - plugins: ["import"], - - extends: ["plugin:import/recommended"], - - rules: { - "import/consistent-type-specifier-style": ["error", "prefer-inline"], - "import/default": "error", - "import/dynamic-import-chunkname": "off", - "import/export": "error", - "import/exports-last": "off", - "import/extensions": "off", - "import/first": "error", - "import/group-exports": "off", - "import/max-dependencies": [ - "off", - { - max: 10, - }, - ], - "import/named": "error", - "import/namespace": [ - "error", - { - allowComputed: true, - }, - ], - "import/newline-after-import": "error", - "import/no-absolute-path": "error", - "import/no-amd": "error", - "import/no-anonymous-default-export": "off", - "import/no-commonjs": "off", - // Should be safe when bundling. - "import/no-cycle": "off", - "import/no-default-export": "off", - "import/no-deprecated": "warn", - "import/no-duplicates": ["error", { "prefer-inline": true }], - "import/no-dynamic-require": "error", - "import/no-empty-named-blocks": "error", - "import/no-extraneous-dependencies": [ - "error", - { - bundledDependencies: true, - devDependencies: [ - "*.{js,cjs,mjs,ts,cts,mts,jsx,tsx}", - "**/scripts/**", - "**/spec/**", - "**/test/**", - "**/tests/**", - "**/__mocks__/**", - "**/__tests__/**", - "**/*{.,_}{test,spec}.{js,cjs,mjs,ts,cts,mts,jsx,tsx}", - "**/Gruntfile{,.{js,cjs,mjs,ts}}", - "**/gulpfile.{js,cjs,mjs,ts}", - "**/gulpfile.*.{js,cjs,mjs,ts}", - "**/jest.config.{js,cjs,mjs,ts}", - "**/jest.setup.{js,cjs,mjs,ts}", - "**/karma.conf.{js,cjs,mjs,ts}", - "**/postcss.config.{js,cjs,mjs,ts}", - "**/protractor.conf.{js,cjs,mjs,ts}", - "**/protractor.conf.*.{js,cjs,mjs,ts}", - "**/rollup.config.{js,cjs,mjs,ts}", - "**/rollup.config.*.{js,cjs,mjs,ts}", - "**/vite.config.{js,cjs,mjs,ts}", - "**/vitest.config.{js,cjs,mjs,ts}", - "**/vue.config.{js,cjs,mjs,ts}", - "**/webpack.config.{js,cjs,mjs,ts}", - "**/webpack.config.*.{js,cjs,mjs,ts}", - ], - optionalDependencies: true, - peerDependencies: true, - }, - ], - "import/no-internal-modules": "off", - "import/no-mutable-exports": "error", - "import/no-named-as-default": "off", - // using unicorn/import-style for per package control - "import/no-named-as-default-member": "off", - "import/no-named-default": "error", - "import/no-named-export": "off", - "import/no-namespace": "off", - "import/no-nodejs-modules": "off", - "import/no-relative-parent-imports": "off", - "import/no-restricted-paths": "off", - "import/no-self-import": "error", - "import/no-unassigned-import": "error", - "import/no-unused-modules": "off", - "import/no-useless-path-segments": [ - "error", - { - commonjs: true, - noUselessIndex: true, - }, - ], - "import/no-webpack-loader-syntax": "error", - "import/order": [ - "error", - { - "alphabetize": { - caseInsensitive: false, - order: "asc", - }, - "groups": [ - "builtin", - "external", - "internal", - "parent", - "sibling", - "index", - ], - "newlines-between": "always", - }, - ], - "import/prefer-default-export": "off", - "import/unambiguous": "off", - }, - - settings: { - "import/external-module-folders": ["node_modules"], - "import/internal-regex": "^(?:#|(?:@|~)\\/).*", - "import/resolver": { - node: { - extensions: jsExtensions, - }, - }, - }, - - overrides: [ - { - files: commonJsFiles, - rules: { - "import/no-commonjs": "off", - "import/no-dynamic-require": "off", - }, - }, - { - files: typescriptFiles, - rules: { - "import/no-unresolved": "off", - "import/named": "off", - "import/default": "off", - "import/namespace": "off", - }, - }, - ], -}; diff --git a/src/plugins/jsdoc.ts b/src/plugins/jsdoc.ts deleted file mode 100644 index 289abbc1..00000000 --- a/src/plugins/jsdoc.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { type Linter } from "eslint"; - -import { typescriptFiles } from "~/files"; - -export const settings: Linter.Config = { - plugins: ["jsdoc"], - - extends: ["plugin:jsdoc/recommended"], - - rules: { - "jsdoc/check-alignment": "error", - // waiting on https://github.com/eslint/eslint/issues/14745 - // "jsdoc/check-examples": "error", - "jsdoc/check-indentation": "error", - "jsdoc/check-line-alignment": "error", - "jsdoc/check-param-names": "error", - "jsdoc/check-property-names": "error", - "jsdoc/check-types": "error", - "jsdoc/check-values": "error", - "jsdoc/no-bad-blocks": [ - "error", - { - ignore: [ - "ts-check", - "ts-expect-error", - "ts-ignore", - "ts-nocheck", - "vue-ignore", - ], - }, - ], - "jsdoc/no-defaults": "warn", - "jsdoc/require-asterisk-prefix": "error", - "jsdoc/require-description": "warn", - // Rule is too strict. - // "jsdoc/require-description-complete-sentence": "off", - "jsdoc/require-hyphen-before-param-description": "error", - "jsdoc/require-jsdoc": [ - "warn", - { - contexts: [ - ":not(ExportNamedDeclaration) > FunctionDeclaration:not(TSDeclareFunction + FunctionDeclaration)", - "ExportNamedDeclaration > FunctionDeclaration:not(ExportNamedDeclaration:has(TSDeclareFunction) + ExportNamedDeclaration > FunctionDeclaration)", - "TSDeclareFunction", - "ExportNamedDeclaration > TSTypeAliasDeclaration", - "ExportNamedDeclaration > TSInterfaceDeclaration", - "TSEnumDeclaration", - ], - enableFixer: false, - require: { - FunctionDeclaration: false, - }, - }, - ], - "jsdoc/require-param-name": "error", - "jsdoc/require-param": "off", - "jsdoc/require-property-name": "error", - "jsdoc/require-property": "off", - "jsdoc/require-returns-check": "error", - "jsdoc/require-returns": "off", - "jsdoc/require-throws": "warn", - "jsdoc/require-yields-check": "error", - "jsdoc/tag-lines": [ - "warn", - "never", - { - applyToEndTag: false, - startLines: 1, - tags: { example: { lines: "always" } }, - }, - ], - }, - - overrides: [ - { - files: typescriptFiles, - rules: { - "jsdoc/no-types": "warn", - "jsdoc/require-param-type": "off", - "jsdoc/require-property-type": "off", - "jsdoc/require-returns-type": "off", - }, - }, - ], -}; diff --git a/src/plugins/markdown.ts b/src/plugins/markdown.ts deleted file mode 100644 index 5de3cdf9..00000000 --- a/src/plugins/markdown.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["markdown"], - - extends: ["plugin:markdown/recommended"], - - overrides: [ - { - files: ["./**/*.md"], - processor: "markdown/markdown", - }, - { - files: ["./**/*.md/**"], - parserOptions: { - project: null, - }, - extends: [ - "plugin:markdown/recommended", - "plugin:@typescript-eslint/disable-type-checked", - "plugin:functional/off", - ], - rules: { - "@typescript-eslint/consistent-generic-constructors": "off", - "@typescript-eslint/consistent-type-definitions": "off", - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-expressions": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/prefer-function-type": "off", - "dot-notation": "off", - "import/extensions": "off", - "import/newline-after-import": "off", - "import/no-unresolved": "off", - "init-declarations": "off", - "jsdoc/require-jsdoc": "off", - "n/handle-callback-err": "off", - "no-alert": "off", - "no-console": "off", - "no-empty-function": "off", - "no-empty": "off", - "no-invalid-this": "off", - "no-labels": "off", - "no-lone-blocks": "off", - "no-restricted-syntax": "off", - "no-throw-literal": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-labels": "off", - "no-unused-vars": "off", - "no-useless-return": "off", - "node/prefer-global/process": "off", - "prefer-const": "off", - "prettier/prettier": "off", - "sonarjs/no-extra-arguments": "off", - "sonarjs/no-unused-collection": "off", - "style/comma-dangle": "off", - "style/eol-last": "off", - "ts/consistent-type-imports": "off", - "ts/no-namespace": "off", - "ts/no-redeclare": "off", - "ts/no-require-imports": "off", - "ts/no-unused-vars": "off", - "ts/no-use-before-define": "off", - "ts/no-var-requires": "off", - "unicode-bom": "off", - "unicorn/prefer-optional-catch-binding": "off", - "unicorn/prefer-top-level-await": "off", - "unicorn/switch-case-braces": "off", - "unused-imports/no-unused-imports": "off", - "unused-imports/no-unused-vars": "off", - }, - }, - ], -}; diff --git a/src/plugins/node.ts b/src/plugins/node.ts deleted file mode 100644 index db83cb69..00000000 --- a/src/plugins/node.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { type Linter } from "eslint"; - -import { commonJsFiles, typescriptFiles } from "~/files"; - -// eslint eslint-plugin-n (instead of eslint-plugin-node) - -export const settings: Linter.Config = { - plugins: ["n"], - - extends: ["plugin:n/recommended"], - - rules: { - "n/callback-return": "error", - "n/exports-style": ["error", "module.exports"], - // Allow dynamic imports. - "n/global-require": "off", - "n/handle-callback-err": ["error", "^(err|error)$"], - "n/no-callback-literal": "error", - "n/no-missing-import": "off", - "n/no-mixed-requires": [ - "error", - { - allowCall: true, - grouping: true, - }, - ], - "n/no-new-require": "error", - "n/no-path-concat": "error", - "n/no-process-exit": "error", - "n/no-restricted-import": [ - "error", - [ - { - name: "assert", - message: "Please use assert/strict instead.", - }, - { - name: "node:assert", - message: "Please use node:assert/strict instead.", - }, - ], - ], - "n/no-restricted-require": [ - "error", - [ - { - name: "assert", - message: "Please use assert/strict instead.", - }, - { - name: "node:assert", - message: "Please use node:assert/strict instead.", - }, - ], - ], - "n/no-sync": "error", - "n/no-unpublished-import": "warn", - "n/no-unsupported-features/es-syntax": "off", - "n/prefer-global/buffer": ["error", "always"], - "n/prefer-global/console": ["error", "always"], - "n/prefer-global/process": ["error", "always"], - "n/prefer-global/text-decoder": ["error", "always"], - "n/prefer-global/text-encoder": ["error", "always"], - "n/prefer-global/url": ["error", "always"], - "n/prefer-global/url-search-params": ["error", "always"], - "n/prefer-promises/dns": "error", - "n/prefer-promises/fs": "error", - }, - - overrides: [ - { - files: commonJsFiles, - rules: { - "n/no-missing-require": "off", - }, - }, - { - files: typescriptFiles, - rules: { - "n/no-unsupported-features/es-syntax": "off", - }, - }, - ], -}; diff --git a/src/plugins/optimize-regex.ts b/src/plugins/optimize-regex.ts deleted file mode 100644 index 9000c5af..00000000 --- a/src/plugins/optimize-regex.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["optimize-regex"], - - rules: { - "optimize-regex/optimize-regex": "warn", - }, -}; diff --git a/src/plugins/promise.ts b/src/plugins/promise.ts deleted file mode 100644 index d634893f..00000000 --- a/src/plugins/promise.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["promise"], - - extends: ["plugin:promise/recommended"], - - rules: { - "promise/always-return": "off", - "promise/avoid-new": "warn", - "promise/catch-or-return": "off", - "promise/no-nesting": "error", - "promise/no-promise-in-callback": "error", - "promise/no-return-in-finally": "error", - "promise/prefer-await-to-callbacks": "off", - "promise/prefer-await-to-then": "off", - "promise/valid-params": "error", - }, -}; diff --git a/src/plugins/sonarjs.ts b/src/plugins/sonarjs.ts deleted file mode 100644 index a1b27bfb..00000000 --- a/src/plugins/sonarjs.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { type Linter } from "eslint"; - -export const settings: Linter.Config = { - plugins: ["sonarjs"], - - extends: ["plugin:sonarjs/recommended"], - - rules: { - "sonarjs/cognitive-complexity": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-small-switch": "off", - "sonarjs/no-useless-cast": "off", - "sonarjs/max-switch-cases": "off", - }, -}; diff --git a/src/plugins/typescript.ts b/src/plugins/typescript.ts deleted file mode 100644 index 7aa552ae..00000000 --- a/src/plugins/typescript.ts +++ /dev/null @@ -1,326 +0,0 @@ -import { type Linter } from "eslint"; - -import { typescriptDeclarationFiles } from "~/files"; - -export const settings: Linter.Config = { - plugins: ["@typescript-eslint"], - - extends: [ - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:@typescript-eslint/strict", - "plugin:@typescript-eslint/strict-type-checked", - "plugin:@typescript-eslint/stylistic", - "plugin:@typescript-eslint/stylistic-type-checked", - ], - - rules: { - "@typescript-eslint/array-type": [ - "error", - { - default: "array-simple", - readonly: "generic", - }, - ], - "@typescript-eslint/ban-types": [ - "error", - { - extendDefaults: true, - types: { - "{}": false, - "object": false, - "Object": { - fixWith: "object", - message: "Use object instead", - }, - }, - }, - ], - "@typescript-eslint/comma-dangle": [ - "error", - { - arrays: "only-multiline", - exports: "only-multiline", - functions: "ignore", - imports: "only-multiline", - objects: "only-multiline", - }, - ], - "@typescript-eslint/consistent-indexed-object-style": "error", - "@typescript-eslint/consistent-type-definitions": ["error", "type"], - "@typescript-eslint/consistent-type-imports": "error", - "@typescript-eslint/dot-notation": [ - "error", - { - allowIndexSignaturePropertyAccess: true, - }, - ], - "@typescript-eslint/explicit-function-return-type": [ - "off", - { - allowConciseArrowFunctionExpressionsStartingWithVoid: true, - allowExpressions: true, - allowHigherOrderFunctions: true, - allowTypedFunctionExpressions: true, - }, - ], - "@typescript-eslint/explicit-member-accessibility": [ - "error", - { - accessibility: "explicit", - }, - ], - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/indent": ["error", 2], - "@typescript-eslint/naming-convention": [ - "error", - { - selector: "default", - format: ["camelCase", "PascalCase"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: "variableLike", - filter: { - regex: "_[^_]+", - match: true, - }, - format: ["camelCase", "PascalCase"], - prefix: ["m_", "M_"], - leadingUnderscore: "forbid", - trailingUnderscore: "forbid", - }, - { - selector: "variableLike", - format: ["camelCase", "PascalCase"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: "variable", - format: ["camelCase", "PascalCase", "UPPER_CASE"], - prefix: ["m_", "M_"], - leadingUnderscore: "forbid", - trailingUnderscore: "forbid", - }, - { - selector: "variable", - filter: { - regex: "_[^_]+", - match: true, - }, - format: ["camelCase", "PascalCase", "UPPER_CASE"], - modifiers: ["const"], - prefix: ["m_", "M_"], - leadingUnderscore: "forbid", - trailingUnderscore: "forbid", - }, - { - selector: "variable", - format: ["camelCase", "PascalCase", "UPPER_CASE"], - modifiers: ["const"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: "variable", - format: null, - modifiers: ["destructured"], - }, - { - selector: "memberLike", - format: ["camelCase", "PascalCase", "UPPER_CASE"], - prefix: ["m_", "M_"], - leadingUnderscore: "forbid", - trailingUnderscore: "forbid", - }, - { - selector: "memberLike", - filter: { - regex: "_[^_]+", - match: true, - }, - format: ["camelCase", "PascalCase", "UPPER_CASE"], - modifiers: ["readonly"], - prefix: ["m_", "M_"], - leadingUnderscore: "forbid", - trailingUnderscore: "forbid", - }, - { - selector: "memberLike", - format: ["camelCase", "PascalCase", "UPPER_CASE"], - modifiers: ["readonly"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: ["accessor", "classMethod", "typeMethod", "typeProperty"], - format: ["camelCase", "PascalCase", "UPPER_CASE"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: "enumMember", - format: ["PascalCase", "UPPER_CASE"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: "typeLike", - format: ["PascalCase"], - leadingUnderscore: "allow", - trailingUnderscore: "forbid", - }, - { - selector: ["objectLiteralProperty", "objectLiteralMethod"], - format: null, - }, - ], - "@typescript-eslint/no-meaningless-void-operator": "off", - "@typescript-eslint/no-confusing-void-expression": [ - "error", - { - ignoreArrowShorthand: false, - ignoreVoidOperator: true, - }, - ], - "@typescript-eslint/no-empty-interface": [ - "error", - { - allowSingleExtends: true, - }, - ], - "@typescript-eslint/no-extra-parens": [ - "error", - "all", - { - nestedBinaryExpressions: false, - }, - ], - "@typescript-eslint/no-invalid-void-type": "error", - "@typescript-eslint/no-loop-func": "error", - "@typescript-eslint/no-loss-of-precision": "error", - "@typescript-eslint/no-non-null-assertion": "off", - // "node" plugin will handle this. - "@typescript-eslint/no-require-imports": "off", - "@typescript-eslint/no-shadow": [ - "warn", - { - allow: ["resolve", "reject", "done", "cb"], - builtinGlobals: false, - hoist: "never", - }, - ], - "@typescript-eslint/no-throw-literal": "error", - "@typescript-eslint/no-unnecessary-condition": [ - "error", - { - allowConstantLoopConditions: true, - }, - ], - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-unnecessary-type-constraint": "error", - "@typescript-eslint/no-unsafe-argument": "warn", - "@typescript-eslint/no-unsafe-assignment": "warn", - "@typescript-eslint/no-unsafe-call": "warn", - "@typescript-eslint/no-unsafe-member-access": "warn", - "@typescript-eslint/no-unsafe-return": "warn", - "@typescript-eslint/no-unused-expressions": [ - "error", - { - allowShortCircuit: true, - allowTaggedTemplates: true, - allowTernary: true, - }, - ], - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - args: "none", - caughtErrors: "none", - ignoreRestSiblings: true, - vars: "all", - }, - ], - "@typescript-eslint/no-use-before-define": [ - "error", - { - classes: true, - functions: false, - typedefs: true, - variables: true, - }, - ], - "@typescript-eslint/no-var-requires": "error", - "@typescript-eslint/non-nullable-type-assertion-style": "error", - "@typescript-eslint/object-curly-spacing": ["error", "always"], - "@typescript-eslint/prefer-for-of": "warn", - "@typescript-eslint/prefer-includes": "warn", - "@typescript-eslint/prefer-interface": "off", - "@typescript-eslint/prefer-nullish-coalescing": "warn", - "@typescript-eslint/prefer-optional-chain": "warn", - "@typescript-eslint/prefer-readonly-parameter-types": "off", - "@typescript-eslint/prefer-regexp-exec": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "warn", - "@typescript-eslint/prefer-ts-expect-error": "warn", - "@typescript-eslint/promise-function-async": "off", - "@typescript-eslint/restrict-plus-operands": [ - "error", - { - skipCompoundAssignments: true, - }, - ], - "@typescript-eslint/restrict-template-expressions": [ - "error", - { - allowAny: true, - allowBoolean: true, - allowNullish: true, - allowNumber: true, - }, - ], - "@typescript-eslint/space-infix-ops": "error", - "@typescript-eslint/sort-type-union-intersection-members": "off", - "@typescript-eslint/strict-boolean-expressions": [ - "error", - { - allowAny: false, - allowNullableBoolean: false, - allowNullableNumber: false, - allowNullableObject: false, - allowNullableString: false, - allowNumber: false, - allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false, - allowString: false, - }, - ], - "@typescript-eslint/switch-exhaustiveness-check": "warn", - "@typescript-eslint/type-annotation-spacing": "error", - "@typescript-eslint/unbound-method": [ - "error", - { - ignoreStatic: true, - }, - ], - "@typescript-eslint/unified-signatures": [ - "error", - { - ignoreDifferentlyNamedParameters: true, - }, - ], - "@typescript-eslint/no-redeclare": "error", - }, - - overrides: [ - { - files: typescriptDeclarationFiles, - rules: { - "@typescript-eslint/consistent-type-definitions": "off", - "@typescript-eslint/triple-slash-reference": "off", - }, - }, - ], -}; diff --git a/src/plugins/unicorn.ts b/src/plugins/unicorn.ts deleted file mode 100644 index 1e2e99bc..00000000 --- a/src/plugins/unicorn.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { type Linter } from "eslint"; - -import { commonJsFiles } from "~/files"; - -export const settings: Linter.Config = { - plugins: ["unicorn"], - - extends: ["plugin:unicorn/recommended"], - - rules: { - "unicorn/import-style": [ - "error", - { - extendDefaultStyles: false, - styles: { - typescript: { - default: true, - named: true, - }, - }, - }, - ], - "unicorn/filename-case": [ - "error", - { - cases: { - kebabCase: true, - pascalCase: true, - }, - ignore: ["^.*\\.md$"], - }, - ], - // "eslint-comments/no-unlimited-disable" covers this. - "unicorn/no-abusive-eslint-disable": "off", - "unicorn/no-array-callback-reference": "off", - "unicorn/no-array-reduce": "off", - "unicorn/no-empty-file": "off", - "unicorn/no-nested-ternary": "off", - "unicorn/no-null": "off", - // "n/no-process-exit" covers this. - "unicorn/no-process-exit": "off", - "unicorn/no-useless-undefined": "off", - "unicorn/prefer-at": [ - "error", - { - checkAllIndexAccess: false, - }, - ], - "unicorn/prefer-json-parse-buffer": "off", - "unicorn/prefer-string-replace-all": "error", - "unicorn/prefer-top-level-await": "error", - "unicorn/prevent-abbreviations": "off", - }, - - overrides: [ - { - files: commonJsFiles, - rules: { - "unicorn/prefer-module": "off", - "unicorn/prefer-top-level-await": "off", - }, - }, - ], -}; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 00000000..a8668965 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,311 @@ +import type { StylisticCustomizeOptions } from "@stylistic/eslint-plugin"; +import type { ParserOptions } from "@typescript-eslint/parser"; +import type { TSESLint } from "@typescript-eslint/utils"; +import type { ESLint, Linter } from "eslint"; +import type { Options as VueBlocksOptions } from "eslint-processor-vue-blocks"; +import type { Options as PrettierOptions } from "prettier"; + +import type { SettingsVueI18nLocaleDir } from "../typings/eslint-plugin-vue-i18n"; + +import type { RuleOptions as Rules } from "./typegen"; + +declare module "eslint" { + // eslint-disable-next-line ts/no-namespace + namespace Linter { + // eslint-disable-next-line ts/consistent-type-definitions + interface RulesRecord extends Rules {} + } +} + +export type Awaitable = T | Promise; + +export type FlatConfigItem = Omit & { + /** + * Custom name of each config item + */ + name?: string | undefined; + + plugins?: + | Record> + | undefined; + + /** + * An object containing a name-value mapping of rules to use. + */ + rules?: (TSESLint.FlatConfig.Config["rules"] & Rules) | undefined; +}; + +export type OptionsFiles = { + /** + * Override the `files` option to provide custom globs. + */ + files?: string[]; +}; + +export type OptionsVue = { + /** + * Create virtual files for Vue SFC blocks to enable linting. + * + * @see https://github.com/antfu/eslint-processor-vue-blocks + * @default true + */ + sfcBlocks?: boolean | VueBlocksOptions; + + /** + * Vue version. Apply different rules set from `eslint-plugin-vue`. + * + * @default 3 + */ + vueVersion?: 2 | 3; + + i18n?: + | { + localeDir?: SettingsVueI18nLocaleDir; + messageSyntaxVersion?: string; + } + | false; +} & OptionsOverrides; + +export type OptionsTypescript = OptionsTypeScriptParserOptions & + OptionsOverrides & + OptionsTypeScriptUnsafeSeverity & + OptionsTypeScriptShorthands; + +export type OptionsFormatters = { + js?: boolean; + ts?: boolean; + json?: boolean; + yaml?: boolean; + dts?: boolean; + css?: boolean; + html?: boolean; + markdown?: boolean; + graphql?: boolean; + prettierOptions?: PrettierOptions; + slidev?: + | boolean + | { + files?: string[]; + }; +}; + +export type OptionsComponentExts = { + /** + * Additional extensions for components. + * + * @example ['vue'] + * + * @default [] + */ + componentExts?: string[]; +}; + +export type OptionsTypeScriptParserOptions = { + /** + * Additional parser options for TypeScript. + */ + parserOptions?: Partial; + + /** + * Glob patterns for files that should be type aware. + * + * @default ['**\/*.{ts,tsx}'] + */ + filesTypeAware?: string[]; +}; + +export type OptionsTypeScriptShorthands = { + /** + * Any easy way to disable the default project. + * Has no effect if `parserOptions.projectService` is set. + * + * @default true + */ + useDefaultDefaultProject?: boolean; +}; + +export type OptionsTypeScriptUnsafeSeverity = { + unsafe?: "off" | "warn" | "error"; +}; + +export type OptionsHasTypeScript = { + typescript?: boolean; +}; + +export type OptionsTypeRequiredRules = { + enableTypeRequiredRules?: boolean; +}; + +export type OptionsStylistic = { + stylistic?: StylisticConfig | false; +}; + +export type RequiredOptionsStylistic = { + stylistic: Required | false; +}; + +export type StylisticConfig = {} & Pick< + StylisticCustomizeOptions, + "indent" | "quotes" | "jsx" | "semi" +>; + +export type OptionsOverrides = { + overrides?: FlatConfigItem["rules"]; +}; + +export type OptionsIsInEditor = { + isInEditor?: boolean; +}; + +export type OptionsUnoCSS = { + /** + * Enable attributify support. + */ + attributify?: boolean; + + /** + * Enable strict mode by throwing errors about blocklisted classes. + */ + strict?: boolean; +} & OptionsOverrides; + +export type OptionsFunctional = { + functionalEnforcement?: "none" | "lite" | "recommended" | "strict"; + ignoreNamePattern?: string[]; + // ignoreTypePattern?: string[]; +}; + +export type OptionsMode = { + mode: "library" | "application" | "none"; +}; + +export type OptionsProjectRoot = { + projectRoot: string; +}; + +export type OptionsIgnoreFiles = { + /** + * Files that contain ignore patterns. + * + * @default [".gitignore"] + */ + ignoreFiles: string[]; +}; + +export type OptionsIgnores = + | NonNullable + | { + extend: boolean; + files: NonNullable; + }; + +export type OptionsConfig = { + /** + * The root directory of the project. + */ + projectRoot: OptionsProjectRoot["projectRoot"]; + + /** + * What are we linting? + */ + mode: OptionsMode["mode"]; + + /** + * Core rules. Can't be disabled. + */ + javascript?: OptionsOverrides; + + /** + * Enable TypeScript support. + * + * Passing an object to enable TypeScript Language Server support. + * + * @default auto-detect based on the dependencies + */ + typescript?: boolean | OptionsTypescript; + + /** + * Enable JSX related rules. + */ + jsx?: boolean; + + /** + * Enable test support. + */ + test?: boolean | OptionsOverrides; + + /** + * Enforce functional programming. + */ + functional?: + | boolean + | OptionsFunctional["functionalEnforcement"] + | (OptionsOverrides & OptionsFunctional); + + /** + * Enable Vue support. + * + * @default auto-detect based on the dependencies + */ + vue?: boolean | OptionsVue; + + /** + * Enable JSONC support. + */ + jsonc?: boolean | OptionsOverrides; + + /** + * Enable YAML support. + */ + yaml?: boolean | OptionsOverrides; + + /** + * Enable TOML support. + */ + toml?: boolean | OptionsOverrides; + + /** + * Enable linting for **code snippets** in Markdown. + * + * For formatting Markdown content, enable also `formatters.markdown`. + */ + markdown?: boolean | (OptionsOverrides & OptionsTypeRequiredRules); + + /** + * Enable stylistic rules. + */ + stylistic?: boolean | (StylisticConfig & OptionsOverrides); + + /** + * Enable unocss rules. + */ + unocss?: boolean | OptionsUnoCSS; + + /** + * Use external formatters to format files. + * + * When set to `true`, it will enable all formatters. + */ + formatters?: boolean | OptionsFormatters; + + /** + * Control to disable some rules in editors. + */ + isInEditor?: boolean; + + /** + * Automatically rename plugins in the config. + */ + autoRenamePlugins?: boolean; + + ignores?: OptionsIgnores; + + /** + * Files that contain ignore patterns. + * + * @default [".gitignore"] + */ + ignoresFiles?: OptionsIgnoreFiles["ignoreFiles"]; +} & OptionsComponentExts; + +export { type RuleOptions as Rules } from "./typegen"; diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 00000000..51ff4917 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,117 @@ +import assert from "node:assert/strict"; + +import type { Awaitable } from "eslint-flat-config-utils"; +import { isPackageExists } from "local-pkg"; + +import type { FlatConfigItem } from "./types"; + +/** + * Combine array and non-array configs into a single array. + */ +export async function combine( + ...configs: ReadonlyArray> +): Promise { + const resolved = await Promise.all(configs); + return resolved.flat(); +} + +export async function interopDefault( + value: Awaitable, +): Promise { + const resolved = await value; + // eslint-disable-next-line ts/no-unsafe-return, ts/no-explicit-any, ts/no-unsafe-member-access + return (resolved as any).default ?? resolved; +} + +export const parserPlain = { + meta: { + name: "parser-plain", + }, + parseForESLint: (code: string) => ({ + ast: { + body: [], + comments: [], + loc: { end: code.length, start: 0 }, + range: [0, code.length], + tokens: [], + type: "Program", + }, + scopeManager: null, + services: { isPlain: true }, + visitorKeys: { + Program: [], + }, + }), +}; + +export async function loadPackages( + packageIds: T, +): Promise<{ + [K in keyof T]: unknown; +}> { + const missing = packageIds.filter((id) => !isPackageExists(id)); + + if (missing.length > 0) { + await installPackages(missing); + } + + // eslint-disable-next-line ts/no-explicit-any, ts/no-unsafe-return + return Promise.all(packageIds.map((id) => interopDefault(import(id)))) as any; +} + +const installPackagesToLoad = new Set(); +let m_installPackagesAction: Promise | null = null; +let m_installPackagesActionResolver: + | ((value: string[] | PromiseLike) => void) + | null = null; +let m_installPackagesTimeout: NodeJS.Timeout | null = null; + +/* eslint-disable functional/no-loop-statements */ +async function installPackages(packages: ReadonlyArray) { + for (const p of packages) { + installPackagesToLoad.add(p); + } + + if (m_installPackagesTimeout !== null) { + clearTimeout(m_installPackagesTimeout); + } + + m_installPackagesTimeout = setTimeout(() => { + const allPackages = [...installPackagesToLoad.values()]; + m_installPackagesTimeout = null; + installPackagesToLoad.clear(); + m_installPackagesAction = null; + assert(m_installPackagesActionResolver !== null); + m_installPackagesActionResolver(allPackages); + m_installPackagesActionResolver = null; + }, 10); + + if (m_installPackagesAction === null) { + m_installPackagesAction = new Promise((resolve) => { + m_installPackagesActionResolver = resolve; + }).then(async (allPackages: string[]) => { + const allPackagesString = allPackages.join(", "); + + if (Boolean(process.env["CI"]) || !process.stdout.isTTY) { + throw new Error(`Missing packages: ${allPackagesString}`); + } + + const prompt = await import("@clack/prompts"); + const result = await prompt.confirm({ + message: + allPackages.length === 1 + ? `${allPackages[0]} is required for this config. Do you want to install it?` + : `Packages are required for this config: ${allPackagesString}.\nDo you want to install them?`, + }); + + if (result !== false) { + await import("@antfu/install-pkg").then(({ installPackage }) => + installPackage(allPackages, { dev: true }), + ); + } + }); + } + + return m_installPackagesAction; +} +/* eslint-enable functional/no-loop-statements */ diff --git a/tsconfig.base.json b/tsconfig.base.json index 61982d0c..16dcb72c 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,35 +1,34 @@ { "compilerOptions": { - "allowSyntheticDefaultImports": true, + "target": "ESNext", + "lib": ["ESNext"], + "baseUrl": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "paths": {}, + "resolveJsonModule": true, + "strict": true, "allowUnreachableCode": false, "allowUnusedLabels": false, "alwaysStrict": true, - "esModuleInterop": true, "exactOptionalPropertyTypes": true, - "forceConsistentCasingInFileNames": true, - "importHelpers": false, - "lib": ["ESNext"], - "module": "ESNext", - "moduleResolution": "node", - "newLine": "LF", - "noEmitOnError": true, "noImplicitReturns": true, "noPropertyAccessFromIndexSignature": true, "noUncheckedIndexedAccess": true, "noUnusedLocals": false, "noUnusedParameters": false, - "pretty": true, - "resolveJsonModule": true, + "useUnknownInCatchVariables": true, + "importHelpers": false, + "newLine": "LF", + "noEmitOnError": true, + "preserveConstEnums": true, "sourceMap": false, - "strict": true, - "target": "ES2020", - "baseUrl": "./src", - "paths": { - "~": ["."], - "~/*": ["./common/*"], - "~/builtin": ["./builtin"], - "~/configs/*": ["./configs/*"], - "~/plugins/*": ["./plugins/*"] - } - } + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "noErrorTruncation": true, + "pretty": true, + "skipLibCheck": true + }, + "exclude": ["dist/"] } diff --git a/tsconfig.build.json b/tsconfig.build.json index f0e7ceb2..87c00d23 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,7 +1,8 @@ { "extends": "./tsconfig.base.json", "compilerOptions": { - "rootDir": "./src" + "rootDir": "src", + "declaration": true }, - "include": ["src"] + "include": ["src", "typings"] } diff --git a/tsconfig.json b/tsconfig.json index 0034c917..3f278c90 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,10 @@ { "extends": "./tsconfig.build.json", "compilerOptions": { + "allowJs": true, + "noEmit": true, "rootDir": "." + // "isolatedDeclarations": false }, - "include": [".", "src"] + "include": [".", ".*", "**/*", "**/.*"] } diff --git a/typings/es.d.ts b/typings/es.d.ts new file mode 100644 index 00000000..4ad747be --- /dev/null +++ b/typings/es.d.ts @@ -0,0 +1,7 @@ +declare global { + interface ArrayConstructor { + isArray(arg: unknown): arg is T[] | ReadonlyArray; + } +} + +export {}; diff --git a/typings/eslint-plugin-vue-i18n.d.ts b/typings/eslint-plugin-vue-i18n.d.ts new file mode 100644 index 00000000..387beffa --- /dev/null +++ b/typings/eslint-plugin-vue-i18n.d.ts @@ -0,0 +1,49 @@ +// From https://github.com/intlify/eslint-plugin-vue-i18n/blob/v3.0.0/lib/types/settings.ts + +/** + * How to determine the locale for localization messages. + * - `'file'` ... Determine the locale name from the filename. The resource file should only contain messages for that locale. + * Use this option if you use `vue-cli-plugin-i18n`. This method is also used when String option is specified. + * - `'path'` ... Determine the locale name from the path of resource. In this case, the locale must be had structured with your rule on the path. + * It can be captured with the regular expression named capture. The resource file should only contain messages for that locale. + * - `'key'` ... Determine the locale name from the root key name of the file contents. The value of that key should only contain messages for that locale. + * Used when the resource file is in the format given to the `messages` option of the `VueI18n` constructor option. + */ +export type LocaleKeyType = "file" | "path" | "key"; + +/** + * Type of `settings['vue-i18n'].localeDir` + */ +export type SettingsVueI18nLocaleDir = + | SettingsVueI18nLocaleDirGlob + | SettingsVueI18nLocaleDirObject + | Array; + +/** + * A glob for specifying files that store localization messages of project. + */ +export type SettingsVueI18nLocaleDirGlob = string; + +/** + * Specifies a glob and messages format type. + */ +export interface SettingsVueI18nLocaleDirObject { + /** + * A glob for specifying files that store localization messages of project. + */ + pattern: string; + + /** + * Specifies how to determine the locale for localization messages. + */ + localeKey: LocaleKeyType; + + /** + * Specifies how to determine pattern the locale for localization messages. + * + * This option means, when `localeKey` is `'path'`, you will need to capture the locale using a regular expression. + * You need to use the locale capture as a named capture `?`, so it’s be able to capture from the path of the locale resources. + * If you omit it, it will be captured from the resource path with the same regular expression pattern as `vue-cli-plugin-i18n`. + */ + localePattern?: string | RegExp; +}