diff --git a/.github/workflows/accessibility-alt-text-bot.yml b/.github/workflows/accessibility-alt-text-bot.yml index 7db3761d1..a0f974091 100644 --- a/.github/workflows/accessibility-alt-text-bot.yml +++ b/.github/workflows/accessibility-alt-text-bot.yml @@ -23,4 +23,4 @@ jobs: if: ${{ !endsWith(github.actor, '[bot]') }} runs-on: ubuntu-latest steps: - - uses: github/accessibility-alt-text-bot@v1.4.0 + - uses: github/accessibility-alt-text-bot@v1.5.0 diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml index d1d4cd50e..a5f987495 100644 --- a/.github/workflows/test-js.yml +++ b/.github/workflows/test-js.yml @@ -53,7 +53,7 @@ jobs: run: pnpm test-compiled - name: Report coverage - uses: codecov/codecov-action@v4.1.0 + uses: codecov/codecov-action@v4.1.1 if: env.REPORT_COVERAGE == 'true' with: file: coverage/lcov.info diff --git a/.nvmrc b/.nvmrc index 2dbbe00e6..2b9cabc07 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.11.1 +20.12.0 diff --git a/.prettierrc.yml b/.prettierrc.yml index ca544b678..0f2671aaa 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -2,6 +2,7 @@ plugins: - prettier-plugin-packagejson + - prettier-plugin-multiline-arrays trailingComma: "all" diff --git a/CHANGELOG.md b/CHANGELOG.md index fc993c129..9d63c5c50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Changelog All notable changes to this project will be documented in this file. Dates are displayed in UTC. +## [6.4.1](https://github.com/eslint-functional/eslint-plugin-functional/compare/v6.4.0...v6.4.1) (2024-04-14) + + +### Bug Fixes + +* **prefer-tacit:** handling functions that don't map to directly to an eslint node ([#802](https://github.com/eslint-functional/eslint-plugin-functional/issues/802)) ([423e249](https://github.com/eslint-functional/eslint-plugin-functional/commit/423e249d9f419be3110105a242627cbd28db184a)) + # [6.4.0](https://github.com/eslint-functional/eslint-plugin-functional/compare/v6.3.2...v6.4.0) (2024-04-01) diff --git a/docs/rules/functional-parameters.md b/docs/rules/functional-parameters.md index cc6f795ea..544b61f48 100644 --- a/docs/rules/functional-parameters.md +++ b/docs/rules/functional-parameters.md @@ -183,7 +183,7 @@ With the following config: { "enforceParameterCount": "exactlyOne", "ignorePrefixSelector": "CallExpression[callee.property.name='reduce']" -}, +} ``` The following inline callback won't be flagged: diff --git a/eslint-doc-generator.config.ts b/eslint-doc-generator.config.ts index 9a2487e52..655eab6b5 100644 --- a/eslint-doc-generator.config.ts +++ b/eslint-doc-generator.config.ts @@ -1,5 +1,5 @@ import { type GenerateOptions } from "eslint-doc-generator"; -import { format } from "prettier"; +import { format, resolveConfig } from "prettier"; export default { configEmoji: [["lite", "☑️"]], @@ -24,5 +24,8 @@ export default { ], ruleDocSectionInclude: ["Rule Details"], ruleListSplit: "meta.docs.category", - postprocess: (doc) => format(doc, { parser: "markdown" }), + postprocess: (doc) => + resolveConfig(import.meta.url).then((options) => + format(doc, { ...options, parser: "markdown" }), + ), } satisfies GenerateOptions; diff --git a/package.json b/package.json index 0c4694531..15ce6268a 100644 --- a/package.json +++ b/package.json @@ -111,12 +111,12 @@ "@semantic-release/release-notes-generator": "13.0.0", "@types/dedent": "0.7.2", "@types/eslint": "8.56.6", - "@types/node": "16.18.89", + "@types/node": "16.18.93", "@types/rollup-plugin-auto-external": "2.0.5", "@types/semver": "7.5.8", - "@typescript-eslint/eslint-plugin": "7.3.1", - "@typescript-eslint/parser": "7.3.1", - "@typescript-eslint/rule-tester": "7.3.1", + "@typescript-eslint/eslint-plugin": "7.4.0", + "@typescript-eslint/parser": "7.4.0", + "@typescript-eslint/rule-tester": "7.4.0", "@vitest/coverage-istanbul": "1.4.0", "@vitest/coverage-v8": "1.4.0", "chalk": "4.1.2", @@ -132,25 +132,26 @@ "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-eslint-plugin": "5.4.1", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsdoc": "48.2.1", + "eslint-plugin-jsdoc": "48.2.2", "eslint-plugin-markdown": "3.0.1", "eslint-plugin-n": "16.6.2", "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-sonarjs": "0.25.0", "eslint-plugin-unicorn": "51.0.1", - "eslint-plugin-vitest": "0.3.26", + "eslint-plugin-vitest": "0.4.1", "espree": "10.0.1", "husky": "9.0.11", - "knip": "5.5.0", + "knip": "5.7.0", "lint-staged": "15.2.2", "markdownlint": "0.34.0", "markdownlint-cli": "0.39.0", "prettier": "3.2.5", - "prettier-plugin-packagejson": "2.4.12", + "prettier-plugin-multiline-arrays": "3.0.4", + "prettier-plugin-packagejson": "2.4.14", "rimraf": "5.0.5", - "rollup": "4.13.0", + "rollup": "4.13.2", "rollup-plugin-auto-external": "2.0.0", "rollup-plugin-ts": "3.4.5", "semantic-release": "23.0.6", @@ -173,7 +174,7 @@ "optional": true } }, - "packageManager": "pnpm@8.15.4", + "packageManager": "pnpm@8.15.5", "engines": { "node": ">=16.10.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 998c0100c..a0ede5861 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: '@typescript-eslint/utils': specifier: ^7.3.1 - version: 7.3.1(eslint@8.57.0)(typescript@5.4.3) + version: 7.4.0(eslint@8.57.0)(typescript@5.4.3) deepmerge-ts: specifier: ^5.1.0 version: 5.1.0 @@ -30,7 +30,7 @@ devDependencies: version: 7.24.1(@babel/core@7.24.1)(eslint@8.57.0) '@commitlint/cli': specifier: 19.2.1 - version: 19.2.1(@types/node@16.18.89)(typescript@5.4.3) + version: 19.2.1(@types/node@16.18.93)(typescript@5.4.3) '@commitlint/config-conventional': specifier: 19.1.0 version: 19.1.0 @@ -39,7 +39,7 @@ devDependencies: version: 5.0.0 '@rebeccastevens/eslint-config': specifier: 2.0.11 - version: 2.0.11(@typescript-eslint/eslint-plugin@7.3.1)(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint-plugin-eslint-comments@3.2.0)(eslint-plugin-functional@6.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-jsdoc@48.2.1)(eslint-plugin-markdown@3.0.1)(eslint-plugin-n@16.6.2)(eslint-plugin-optimize-regex@1.2.1)(eslint-plugin-promise@6.1.1)(eslint-plugin-sonarjs@0.24.0)(eslint-plugin-unicorn@51.0.1)(eslint@8.57.0) + version: 2.0.11(@typescript-eslint/eslint-plugin@7.4.0)(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint-plugin-eslint-comments@3.2.0)(eslint-plugin-functional@6.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-jsdoc@48.2.2)(eslint-plugin-markdown@3.0.1)(eslint-plugin-n@16.6.2)(eslint-plugin-optimize-regex@1.2.1)(eslint-plugin-promise@6.1.1)(eslint-plugin-sonarjs@0.25.0)(eslint-plugin-unicorn@51.0.1)(eslint@8.57.0) '@semantic-release/changelog': specifier: 6.0.3 version: 6.0.3(semantic-release@23.0.6) @@ -65,8 +65,8 @@ devDependencies: specifier: 8.56.6 version: 8.56.6 '@types/node': - specifier: 16.18.89 - version: 16.18.89 + specifier: 16.18.93 + version: 16.18.93 '@types/rollup-plugin-auto-external': specifier: 2.0.5 version: 2.0.5 @@ -74,14 +74,14 @@ devDependencies: specifier: 7.5.8 version: 7.5.8 '@typescript-eslint/eslint-plugin': - specifier: 7.3.1 - version: 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) + specifier: 7.4.0 + version: 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/parser': - specifier: 7.3.1 - version: 7.3.1(eslint@8.57.0)(typescript@5.4.3) + specifier: 7.4.0 + version: 7.4.0(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/rule-tester': - specifier: 7.3.1 - version: 7.3.1(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.3) + specifier: 7.4.0 + version: 7.4.0(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.3) '@vitest/coverage-istanbul': specifier: 1.4.0 version: 1.4.0(vitest@1.4.0) @@ -93,7 +93,7 @@ devDependencies: version: 4.1.2 commitizen: specifier: 4.3.0 - version: 4.3.0(@types/node@16.18.89)(typescript@5.4.3) + version: 4.3.0(@types/node@16.18.93)(typescript@5.4.3) conventional-commit-types: specifier: 3.0.0 version: 3.0.0 @@ -102,7 +102,7 @@ devDependencies: version: 8.6.1 deassert: specifier: 1.0.2 - version: 1.0.2(rollup@4.13.0) + version: 1.0.2(rollup@4.13.2) dedent: specifier: 1.5.1 version: 1.5.1 @@ -117,7 +117,7 @@ devDependencies: version: 1.7.0(eslint@8.57.0)(typescript@5.4.3) 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@8.57.0) + version: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-eslint-comments: specifier: 3.2.0 version: 3.2.0(eslint@8.57.0) @@ -126,10 +126,10 @@ devDependencies: version: 5.4.1(eslint@8.57.0) 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@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsdoc: - specifier: 48.2.1 - version: 48.2.1(eslint@8.57.0) + specifier: 48.2.2 + version: 48.2.2(eslint@8.57.0) eslint-plugin-markdown: specifier: 3.0.1 version: 3.0.1(eslint@8.57.0) @@ -146,14 +146,14 @@ devDependencies: specifier: 6.1.1 version: 6.1.1(eslint@8.57.0) eslint-plugin-sonarjs: - specifier: 0.24.0 - version: 0.24.0(eslint@8.57.0) + specifier: 0.25.0 + version: 0.25.0(eslint@8.57.0) eslint-plugin-unicorn: specifier: 51.0.1 version: 51.0.1(eslint@8.57.0) eslint-plugin-vitest: - specifier: 0.3.26 - version: 0.3.26(@typescript-eslint/eslint-plugin@7.3.1)(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0) + specifier: 0.4.1 + version: 0.4.1(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0) espree: specifier: 10.0.1 version: 10.0.1 @@ -161,8 +161,8 @@ devDependencies: specifier: 9.0.11 version: 9.0.11 knip: - specifier: 5.5.0 - version: 5.5.0(@types/node@16.18.89)(typescript@5.4.3) + specifier: 5.7.0 + version: 5.7.0(@types/node@16.18.93)(typescript@5.4.3) lint-staged: specifier: 15.2.2 version: 15.2.2 @@ -175,21 +175,24 @@ devDependencies: prettier: specifier: 3.2.5 version: 3.2.5 + prettier-plugin-multiline-arrays: + specifier: 3.0.4 + version: 3.0.4(prettier@3.2.5) prettier-plugin-packagejson: - specifier: 2.4.12 - version: 2.4.12(prettier@3.2.5) + specifier: 2.4.14 + version: 2.4.14(prettier@3.2.5) rimraf: specifier: 5.0.5 version: 5.0.5 rollup: - specifier: 4.13.0 - version: 4.13.0 + specifier: 4.13.2 + version: 4.13.2 rollup-plugin-auto-external: specifier: 2.0.0 - version: 2.0.0(rollup@4.13.0) + version: 2.0.0(rollup@4.13.2) rollup-plugin-ts: specifier: 3.4.5 - version: 3.4.5(@babel/core@7.24.1)(rollup@4.13.0)(typescript@5.4.3) + version: 3.4.5(@babel/core@7.24.1)(rollup@4.13.2)(typescript@5.4.3) semantic-release: specifier: 23.0.6 version: 23.0.6(typescript@5.4.3) @@ -198,7 +201,7 @@ devDependencies: version: 1.2.7(semantic-release@23.0.6) ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@16.18.89)(typescript@5.4.3) + version: 10.9.2(@types/node@16.18.93)(typescript@5.4.3) tsc-alias: specifier: 1.8.8 version: 1.8.8 @@ -216,7 +219,7 @@ devDependencies: version: 4.3.2(typescript@5.4.3) vitest: specifier: 1.4.0 - version: 1.4.0(@types/node@16.18.89) + version: 1.4.0(@types/node@16.18.93) word-wrap: specifier: 1.2.5 version: 1.2.5 @@ -235,6 +238,22 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true + /@augment-vir/common@23.4.0: + resolution: {integrity: sha512-QIrJ1doD00TNbOzeVrk9KgPTzRlIjayxERnhtbQjK/AFPj5yElcB03GbnGdQZPzws/R+5gfMM5cZiH7QyBP+Kg==} + dependencies: + browser-or-node: 2.1.1 + run-time-assertions: 1.2.0 + type-fest: 4.13.1 + dev: true + + /@augment-vir/common@26.2.1: + resolution: {integrity: sha512-NoVW3K3MB6ndMspsxbdFiQZ3Fc6mapXphyOUZKlQbWTMNGF7RaVEcnP1m8Un1fXTUBblBcdUZWwP95Z51mg/RQ==} + dependencies: + browser-or-node: 2.1.1 + run-time-assertions: 1.2.0 + type-fest: 4.13.1 + dev: true + /@babel/code-frame@7.24.2: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} @@ -452,14 +471,14 @@ packages: dev: true optional: true - /@commitlint/cli@19.2.1(@types/node@16.18.89)(typescript@5.4.3): + /@commitlint/cli@19.2.1(@types/node@16.18.93)(typescript@5.4.3): resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.0.3 '@commitlint/lint': 19.1.0 - '@commitlint/load': 19.2.0(@types/node@16.18.89)(typescript@5.4.3) + '@commitlint/load': 19.2.0(@types/node@16.18.93)(typescript@5.4.3) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -528,7 +547,7 @@ packages: '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@19.2.0(@types/node@16.18.89)(typescript@5.4.3): + /@commitlint/load@19.2.0(@types/node@16.18.93)(typescript@5.4.3): resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: @@ -538,7 +557,7 @@ packages: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@16.18.89)(cosmiconfig@9.0.0)(typescript@5.4.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@16.18.93)(cosmiconfig@9.0.0)(typescript@5.4.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -1648,7 +1667,7 @@ packages: - domexception dev: true - /@rebeccastevens/eslint-config@2.0.11(@typescript-eslint/eslint-plugin@7.3.1)(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint-plugin-eslint-comments@3.2.0)(eslint-plugin-functional@6.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-jsdoc@48.2.1)(eslint-plugin-markdown@3.0.1)(eslint-plugin-n@16.6.2)(eslint-plugin-optimize-regex@1.2.1)(eslint-plugin-promise@6.1.1)(eslint-plugin-sonarjs@0.24.0)(eslint-plugin-unicorn@51.0.1)(eslint@8.57.0): + /@rebeccastevens/eslint-config@2.0.11(@typescript-eslint/eslint-plugin@7.4.0)(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint-plugin-eslint-comments@3.2.0)(eslint-plugin-functional@6.1.1)(eslint-plugin-import@2.29.1)(eslint-plugin-jsdoc@48.2.2)(eslint-plugin-markdown@3.0.1)(eslint-plugin-n@16.6.2)(eslint-plugin-optimize-regex@1.2.1)(eslint-plugin-promise@6.1.1)(eslint-plugin-sonarjs@0.25.0)(eslint-plugin-unicorn@51.0.1)(eslint@8.57.0): resolution: {integrity: sha512-I5hulFEN1YHrC3f7Ah/j/4CgHPrZeyXKTevilmgOjNe3S7sOqA8l9tjnEj7l0v9H9RDufQ+bQu24QZHnp+G6yw==} engines: {node: '>=18.12.1'} peerDependencies: @@ -1667,24 +1686,24 @@ packages: eslint-plugin-sonarjs: '*' eslint-plugin-unicorn: '*' dependencies: - '@typescript-eslint/eslint-plugin': 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) deepmerge-ts: 5.1.0 eslint: 8.57.0 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) eslint-plugin-functional: 6.1.1(eslint@8.57.0)(typescript@5.4.3) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-jsdoc: 48.2.1(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-jsdoc: 48.2.2(eslint@8.57.0) eslint-plugin-markdown: 3.0.1(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-optimize-regex: 1.2.1 eslint-plugin-promise: 6.1.1(eslint@8.57.0) - eslint-plugin-sonarjs: 0.24.0(eslint@8.57.0) + eslint-plugin-sonarjs: 0.25.0(eslint@8.57.0) eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) dev: true - /@rollup/pluginutils@5.1.0(rollup@4.13.0): + /@rollup/pluginutils@5.1.0(rollup@4.13.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1696,107 +1715,123 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.13.0 + rollup: 4.13.2 dev: true - /@rollup/rollup-android-arm-eabi@4.13.0: - resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} + /@rollup/rollup-android-arm-eabi@4.13.2: + resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.13.0: - resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + /@rollup/rollup-android-arm64@4.13.2: + resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.13.0: - resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + /@rollup/rollup-darwin-arm64@4.13.2: + resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.13.0: - resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} + /@rollup/rollup-darwin-x64@4.13.2: + resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.13.0: - resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.13.2: + resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.0: - resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + /@rollup/rollup-linux-arm64-gnu@4.13.2: + resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.13.0: - resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} + /@rollup/rollup-linux-arm64-musl@4.13.2: + resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.0: - resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: + resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} + cpu: [ppc64le] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.13.2: + resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.13.0: - resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} + /@rollup/rollup-linux-s390x-gnu@4.13.2: + resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.2: + resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.13.0: - resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} + /@rollup/rollup-linux-x64-musl@4.13.2: + resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.13.0: - resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} + /@rollup/rollup-win32-arm64-msvc@4.13.2: + resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.13.0: - resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + /@rollup/rollup-win32-ia32-msvc@4.13.2: + resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.13.0: - resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + /@rollup/rollup-win32-x64-msvc@4.13.2: + resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -1976,7 +2011,7 @@ packages: /@types/conventional-commits-parser@5.0.0: resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - '@types/node': 16.18.89 + '@types/node': 16.18.93 dev: true /@types/dedent@0.7.2: @@ -2011,8 +2046,8 @@ packages: '@types/unist': 2.0.10 dev: true - /@types/node@16.18.89: - resolution: {integrity: sha512-QlrE8QI5z62nfnkiUZysUsAaxWaTMoGqFVcB3PvK1WxJ0c699bacErV4Fabe9Hki6ZnaHalgzihLbTl2d34XfQ==} + /@types/node@16.18.93: + resolution: {integrity: sha512-epWuohp6c0bQt0j3RYCiP9x52axHVn+CjS1Rx1VjPwF+ySg8lrigH3yXGs88XqnA+jGM2qnSMuFTsBxft+hO1Q==} dev: true /@types/node@17.0.45: @@ -2034,7 +2069,7 @@ packages: /@types/rollup-plugin-auto-external@2.0.5: resolution: {integrity: sha512-jspE/1q/4MjrC0lilOpF7Ej5z2vvByPq6lb5ERHt9jCRnp0WJRq+SLK9oPfYroy0xhFhDqQoXLeSHcKqATDaoA==} dependencies: - rollup: 4.13.0 + rollup: 4.13.2 dev: true /@types/semver@7.5.8: @@ -2048,8 +2083,8 @@ packages: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true - /@typescript-eslint/eslint-plugin@7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==} + /@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -2060,11 +2095,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.3.1 - '@typescript-eslint/type-utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.3.1 + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.4.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -2077,8 +2112,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.3.1(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==} + /@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2087,10 +2122,10 @@ packages: typescript: optional: true 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 + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.4.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.3 @@ -2098,16 +2133,16 @@ packages: - supports-color dev: true - /@typescript-eslint/rule-tester@7.3.1(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-Ik364KHq5TY6x5wqJcNgxVU0C7Nqaxqcxb2zTFY9dkuqutSdG6abA/CJdcgBd9uTSxca3cJgMNPi8lqGFoBfxA==} + /@typescript-eslint/rule-tester@7.4.0(@eslint/eslintrc@3.0.2)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-AAus65/utkn6WZ3Ls1aoTyK34JdPFm3ZTfsz/Nis8c+Z1gNM4uiGuoyGXF0BnGo+lGvNPYOphGZ+0Y/LBHPi4w==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@eslint/eslintrc': '>=2' eslint: ^8.56.0 dependencies: '@eslint/eslintrc': 3.0.2 - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) ajv: 6.12.6 eslint: 8.57.0 lodash.merge: 4.6.2 @@ -2133,15 +2168,15 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/scope-manager@7.3.1: - resolution: {integrity: sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==} + /@typescript-eslint/scope-manager@7.4.0: + resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/visitor-keys': 7.3.1 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/visitor-keys': 7.4.0 - /@typescript-eslint/type-utils@7.3.1(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==} + /@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2150,8 +2185,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.3) @@ -2169,8 +2204,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.3.1: - resolution: {integrity: sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==} + /@typescript-eslint/types@7.4.0: + resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} engines: {node: ^18.18.0 || >=20.0.0} /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3): @@ -2216,8 +2251,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.3.1(typescript@5.4.3): - resolution: {integrity: sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==} + /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): + resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2225,8 +2260,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/visitor-keys': 7.3.1 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/visitor-keys': 7.4.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2276,8 +2311,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@7.3.1(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==} + /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2285,9 +2320,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.3.1 - '@typescript-eslint/types': 7.3.1 - '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.4.0 + '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -2310,11 +2345,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.3.1: - resolution: {integrity: sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==} + /@typescript-eslint/visitor-keys@7.4.0: + resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 /@ungap/structured-clone@1.2.0: @@ -2334,7 +2369,7 @@ packages: magicast: 0.3.3 picocolors: 1.0.0 test-exclude: 6.0.0 - vitest: 1.4.0(@types/node@16.18.89) + vitest: 1.4.0(@types/node@16.18.93) transitivePeerDependencies: - supports-color dev: true @@ -2358,7 +2393,7 @@ packages: strip-literal: 2.0.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.4.0(@types/node@16.18.89) + vitest: 1.4.0(@types/node@16.18.93) transitivePeerDependencies: - supports-color dev: true @@ -2730,6 +2765,10 @@ packages: dependencies: fill-range: 7.0.1 + /browser-or-node@2.1.1: + resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} + dev: true + /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'} @@ -3066,13 +3105,13 @@ packages: engines: {node: '>= 12.0.0'} dev: true - /commitizen@4.3.0(@types/node@16.18.89)(typescript@5.4.3): + /commitizen@4.3.0(@types/node@16.18.93)(typescript@5.4.3): resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} hasBin: true dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@16.18.89)(typescript@5.4.3) + cz-conventional-changelog: 3.3.0(@types/node@16.18.93)(typescript@5.4.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -3195,7 +3234,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@16.18.89)(cosmiconfig@9.0.0)(typescript@5.4.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@16.18.93)(cosmiconfig@9.0.0)(typescript@5.4.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -3203,7 +3242,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 16.18.89 + '@types/node': 16.18.93 cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 typescript: 5.4.3 @@ -3385,18 +3424,18 @@ packages: vscode-uri: 3.0.8 dev: true - /cz-conventional-changelog@3.3.0(@types/node@16.18.89)(typescript@5.4.3): + /cz-conventional-changelog@3.3.0(@types/node@16.18.93)(typescript@5.4.3): resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@16.18.89)(typescript@5.4.3) + commitizen: 4.3.0(@types/node@16.18.93)(typescript@5.4.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@16.18.89)(typescript@5.4.3) + '@commitlint/load': 19.2.0(@types/node@16.18.93)(typescript@5.4.3) transitivePeerDependencies: - '@types/node' - typescript @@ -3439,11 +3478,11 @@ packages: is-data-view: 1.0.1 dev: true - /deassert@1.0.2(rollup@4.13.0): + /deassert@1.0.2(rollup@4.13.2): resolution: {integrity: sha512-cF1/OfxthRQkkC4vOGVT9fs0wuPWIBAPzEk/YI1XSq3JZdgSXmLW1aEegpNLq9VgypeAtmvI8vHiQ31YBK5vvQ==} hasBin: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) acorn: 8.11.3 acorn-walk: 8.3.2 magic-string: 0.30.8 @@ -3888,7 +3927,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3898,8 +3937,8 @@ packages: debug: 4.3.4 enhanced-resolve: 5.16.0 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.3 is-core-module: 2.13.1 @@ -3911,7 +3950,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -3932,11 +3971,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.3.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.4.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color dev: true @@ -3997,7 +4036,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -4007,7 +4046,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/parser': 7.4.0(eslint@8.57.0)(typescript@5.4.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -4016,7 +4055,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.3.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.4.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4032,8 +4071,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@48.2.1(eslint@8.57.0): - resolution: {integrity: sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==} + /eslint-plugin-jsdoc@48.2.2(eslint@8.57.0): + resolution: {integrity: sha512-S0Gk+rpT5w/ephKCncUY7kUsix9uE4B9XI8D/fS1/26d8okE+vZsuG1IvIt4B6sJUdQqsnzi+YXfmh+HJG11CA==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -4122,8 +4161,8 @@ packages: eslint: 8.57.0 dev: true - /eslint-plugin-sonarjs@0.24.0(eslint@8.57.0): - resolution: {integrity: sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg==} + /eslint-plugin-sonarjs@0.25.0(eslint@8.57.0): + resolution: {integrity: sha512-DaZOtpUucEZbvowgKxVFwICV6r0h7jSCAx0IHICvCowP+etFussnhtaiCPSnYAuwVJ+P/6UFUhkv7QJklpXFyA==} engines: {node: '>=16'} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4158,8 +4197,8 @@ packages: - supports-color dev: true - /eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.3.1)(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0): - resolution: {integrity: sha512-oxe5JSPgRjco8caVLTh7Ti8PxpwJdhSV0hTQAmkFcNcmy/9DnqLB/oNVRA11RmVRP//2+jIIT6JuBEcpW3obYg==} + /eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.4.0)(eslint@8.57.0)(typescript@5.4.3)(vitest@1.4.0): + resolution: {integrity: sha512-+PnZ2u/BS+f5FiuHXz4zKsHPcMKHie+K+1Uvu/x91ovkCMEOJqEI8E9Tw1Wzx2QRz4MHOBHYf1ypO8N1K0aNAA==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' @@ -4171,10 +4210,10 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.3.1(@typescript-eslint/parser@7.3.1)(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 - vitest: 1.4.0(@types/node@16.18.89) + vitest: 1.4.0(@types/node@16.18.93) transitivePeerDependencies: - supports-color - typescript @@ -4364,6 +4403,10 @@ packages: homedir-polyfill: 1.0.3 dev: true + /expect-type@0.15.0: + resolution: {integrity: sha512-yWnriYB4e8G54M5/fAFj7rCIBiKs1HAACaY13kCz6Ku0dezjS9aMcfcdVK2X8Tv2tEV1BPz/wKfQ7WA4S/d8aA==} + dev: true + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -5260,7 +5303,7 @@ packages: eslint: '*' typescript: '>=4.7.4' dependencies: - '@typescript-eslint/type-utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.3) typescript: 5.4.3 @@ -5612,8 +5655,8 @@ packages: dependencies: json-buffer: 3.0.1 - /knip@5.5.0(@types/node@16.18.89)(typescript@5.4.3): - resolution: {integrity: sha512-50hMAFPBW2z/IJeW5rNKKNNLXVQNJFJDQ72C4o+vsCNCiPv5mn4M52iQVsp8hwjOcVGYB7bKFKaNVzPAQ6C4gw==} + /knip@5.7.0(@types/node@16.18.93)(typescript@5.4.3): + resolution: {integrity: sha512-wTw7Mt7nGa8dBelC3UrAzBtRqHwER7o6m+GzNYGMlt6HnJ/5IoKoxC/1KvPfyXanEJfsSq0ciSchdtnN0RA9RA==} engines: {node: '>=18.6.0'} hasBin: true peerDependencies: @@ -5627,7 +5670,7 @@ packages: '@pnpm/logger': 5.0.0 '@pnpm/workspace.pkgs-graph': 2.0.15(@pnpm/logger@5.0.0) '@snyk/github-codeowners': 1.1.0 - '@types/node': 16.18.89 + '@types/node': 16.18.93 '@types/picomatch': 2.3.3 easy-table: 1.2.0 fast-glob: 3.3.2 @@ -5638,6 +5681,7 @@ packages: picocolors: 1.0.0 picomatch: 4.0.1 pretty-ms: 9.0.0 + resolve: 1.22.8 smol-toml: 1.1.4 strip-json-comments: 5.0.1 summary: 2.1.0 @@ -6852,8 +6896,18 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-packagejson@2.4.12(prettier@3.2.5): - resolution: {integrity: sha512-hifuuOgw5rHHTdouw9VrhT8+Nd7UwxtL1qco8dUfd4XUFQL6ia3xyjSxhPQTsGnSYFraTWy5Omb+MZm/OWDTpQ==} + /prettier-plugin-multiline-arrays@3.0.4(prettier@3.2.5): + resolution: {integrity: sha512-Oj9ZfEisLOF0did1CGXXQLTA0WEChT2pfI06pNA1PbvWqbys9a5xoys6DoZlDL+Uio0uW1XwKZkeKMAkG1EEfQ==} + peerDependencies: + prettier: '>=3.0.0' + dependencies: + '@augment-vir/common': 23.4.0 + prettier: 3.2.5 + proxy-vir: 1.0.0 + dev: true + + /prettier-plugin-packagejson@2.4.14(prettier@3.2.5): + resolution: {integrity: sha512-sli+gV5tW7uxvzDZQscaBtSfbyAW2ToL6n/HGt51PipwX9vI7M54vefG0mKSfklVkT29TNGO6Mo6g8c6Z79gmw==} peerDependencies: prettier: '>= 1.16.0' peerDependenciesMeta: @@ -6861,7 +6915,7 @@ packages: optional: true dependencies: prettier: 3.2.5 - sort-package-json: 2.8.0 + sort-package-json: 2.10.0 synckit: 0.9.0 dev: true @@ -6917,6 +6971,12 @@ packages: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true + /proxy-vir@1.0.0: + resolution: {integrity: sha512-WV1gkBxUOwLSz0Bn09tisIqLK7leAqtFm/474t3L0hQKJw7/gdrkGcWw0/OT1PhSy+TDS6swfq7Niuoq3XJhkQ==} + dependencies: + '@augment-vir/common': 23.4.0 + dev: true + /punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -7172,7 +7232,7 @@ packages: glob: 10.3.10 dev: true - /rollup-plugin-auto-external@2.0.0(rollup@4.13.0): + /rollup-plugin-auto-external@2.0.0(rollup@4.13.2): resolution: {integrity: sha512-HQM3ZkZYfSam1uoZtAB9sK26EiAsfs1phrkf91c/YX+S07wugyRXSigBxrIwiLr5EPPilKYmoMxsrnlGBsXnuQ==} engines: {node: '>=6'} peerDependencies: @@ -7180,12 +7240,12 @@ packages: dependencies: builtins: 2.0.1 read-pkg: 3.0.0 - rollup: 4.13.0 + rollup: 4.13.2 safe-resolve: 1.0.0 semver: 5.7.2 dev: true - /rollup-plugin-ts@3.4.5(@babel/core@7.24.1)(rollup@4.13.0)(typescript@5.4.3): + /rollup-plugin-ts@3.4.5(@babel/core@7.24.1)(rollup@4.13.2)(typescript@5.4.3): resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} peerDependencies: @@ -7215,7 +7275,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.1 - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) '@wessberg/stringutil': 1.0.19 ansi-colors: 4.1.3 browserslist: 4.23.0 @@ -7223,32 +7283,34 @@ packages: compatfactory: 3.0.0(typescript@5.4.3) crosspath: 2.0.0 magic-string: 0.30.8 - rollup: 4.13.0 + rollup: 4.13.2 ts-clone-node: 3.0.0(typescript@5.4.3) tslib: 2.6.2 typescript: 5.4.3 dev: true - /rollup@4.13.0: - resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} + /rollup@4.13.2: + resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true 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 + '@rollup/rollup-android-arm-eabi': 4.13.2 + '@rollup/rollup-android-arm64': 4.13.2 + '@rollup/rollup-darwin-arm64': 4.13.2 + '@rollup/rollup-darwin-x64': 4.13.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 + '@rollup/rollup-linux-arm64-gnu': 4.13.2 + '@rollup/rollup-linux-arm64-musl': 4.13.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 + '@rollup/rollup-linux-riscv64-gnu': 4.13.2 + '@rollup/rollup-linux-s390x-gnu': 4.13.2 + '@rollup/rollup-linux-x64-gnu': 4.13.2 + '@rollup/rollup-linux-x64-musl': 4.13.2 + '@rollup/rollup-win32-arm64-msvc': 4.13.2 + '@rollup/rollup-win32-ia32-msvc': 4.13.2 + '@rollup/rollup-win32-x64-msvc': 4.13.2 fsevents: 2.3.3 dev: true @@ -7272,6 +7334,14 @@ packages: dependencies: queue-microtask: 1.2.3 + /run-time-assertions@1.2.0: + resolution: {integrity: sha512-cQwqdopGyGpJytXHPYJoCHzt2rr+VzZyW3/bXD8kuKujqDuTtOc0Y6DrlLU6a//wnQogznA7n2LFEIar2Pa2cA==} + dependencies: + '@augment-vir/common': 26.2.1 + expect-type: 0.15.0 + type-fest: 4.13.1 + dev: true + /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: @@ -7507,8 +7577,8 @@ packages: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} dev: true - /sort-package-json@2.8.0: - resolution: {integrity: sha512-PxeNg93bTJWmDGnu0HADDucoxfFiKkIr73Kv85EBThlI1YQPdc0XovBgg2llD0iABZbu2SlKo8ntGmOP9wOj/g==} + /sort-package-json@2.10.0: + resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} hasBin: true dependencies: detect-indent: 7.0.1 @@ -7517,6 +7587,7 @@ packages: git-hooks-list: 3.1.0 globby: 13.2.2 is-plain-obj: 4.1.0 + semver: 7.6.0 sort-object-keys: 1.1.3 dev: true @@ -7920,7 +7991,7 @@ packages: typescript: 5.4.3 dev: true - /ts-node@10.9.2(@types/node@16.18.89)(typescript@5.4.3): + /ts-node@10.9.2(@types/node@16.18.93)(typescript@5.4.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -7939,7 +8010,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.89 + '@types/node': 16.18.93 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -8266,7 +8337,7 @@ packages: semver: 7.6.0 dev: true - /vite-node@1.4.0(@types/node@16.18.89): + /vite-node@1.4.0(@types/node@16.18.93): resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -8275,7 +8346,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.6(@types/node@16.18.89) + vite: 5.1.6(@types/node@16.18.93) transitivePeerDependencies: - '@types/node' - less @@ -8303,7 +8374,7 @@ packages: - typescript dev: true - /vite@5.1.6(@types/node@16.18.89): + /vite@5.1.6(@types/node@16.18.93): resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -8331,15 +8402,15 @@ packages: terser: optional: true dependencies: - '@types/node': 16.18.89 + '@types/node': 16.18.93 esbuild: 0.19.12 postcss: 8.4.37 - rollup: 4.13.0 + rollup: 4.13.2 optionalDependencies: fsevents: 2.3.3 dev: true - /vitest@1.4.0(@types/node@16.18.89): + /vitest@1.4.0(@types/node@16.18.93): resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -8364,7 +8435,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 16.18.89 + '@types/node': 16.18.93 '@vitest/expect': 1.4.0 '@vitest/runner': 1.4.0 '@vitest/snapshot': 1.4.0 @@ -8382,8 +8453,8 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.6(@types/node@16.18.89) - vite-node: 1.4.0(@types/node@16.18.89) + vite: 5.1.6(@types/node@16.18.93) + vite-node: 1.4.0(@types/node@16.18.93) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/src/rules/no-conditional-statements.ts b/src/rules/no-conditional-statements.ts index cd52b812b..ae20989ea 100644 --- a/src/rules/no-conditional-statements.ts +++ b/src/rules/no-conditional-statements.ts @@ -258,7 +258,7 @@ function isExhaustiveTypeSwitchViolation( context: Readonly>, ): boolean { const discriminantType = getTypeOfNode(node.discriminant, context); - if (discriminantType === null || !discriminantType.isUnion()) { + if (!discriminantType?.isUnion()) { return true; } diff --git a/src/rules/prefer-tacit.ts b/src/rules/prefer-tacit.ts index 1e16cd039..e137dbc7a 100644 --- a/src/rules/prefer-tacit.ts +++ b/src/rules/prefer-tacit.ts @@ -15,8 +15,8 @@ import { ruleNameScope } from "#eslint-plugin-functional/utils/misc"; import { type ESFunction } from "#eslint-plugin-functional/utils/node-types"; import { createRule, - getESTreeNode, getTypeOfNode, + getTypeOfTSNode, type NamedCreateRuleCustomMeta, type RuleResult, } from "#eslint-plugin-functional/utils/rule"; @@ -24,11 +24,8 @@ import { isNested } from "#eslint-plugin-functional/utils/tree"; import { isBlockStatement, isCallExpression, - isDefined, - isFunctionLike, isIdentifier, isReturnStatement, - isTSFunctionType, } from "#eslint-plugin-functional/utils/type-guards"; /** @@ -106,13 +103,12 @@ function isCallerViolation( if (tsDeclaration === undefined) { return false; } - const declaration = getESTreeNode(tsDeclaration, context); - return ( - isDefined(declaration) && - (isFunctionLike(declaration) || isTSFunctionType(declaration)) && - declaration.params.length === caller.arguments.length - ); + return getTypeOfTSNode(tsDeclaration, context) + .getCallSignatures() + .some( + (signature) => signature.parameters.length === caller.arguments.length, + ); } /** diff --git a/src/utils/rule.ts b/src/utils/rule.ts index f47e11179..49d4be3a0 100644 --- a/src/utils/rule.ts +++ b/src/utils/rule.ts @@ -50,7 +50,6 @@ export type NamedCreateRuleCustomMeta< */ export type BaseOptions = ReadonlyArray; -// eslint-disable-next-line functional/no-mixed-types export type RuleDefinition< MessageIds extends string, Options extends BaseOptions, @@ -169,6 +168,7 @@ export function createRuleUsingFunction< return Object.fromEntries( Object.entries(ruleFunctionsMap).map(([nodeSelector, ruleFunction]) => [ nodeSelector, + // prettier-ignore checkNode< MessageIds, Readonly>, @@ -188,12 +188,22 @@ export function getTypeOfNode>( node: TSESTree.Node, context: Context, ): Type { - const parserServices = getParserServices(context); + const { esTreeNodeToTSNodeMap } = getParserServices(context); - const checker = parserServices.program.getTypeChecker(); - const { esTreeNodeToTSNodeMap } = parserServices; + const tsNode = esTreeNodeToTSNodeMap.get(node); + return getTypeOfTSNode(tsNode, context); +} + +/** + * Get the type of the the given ts node. + */ +export function getTypeOfTSNode< + Context extends RuleContext, +>(node: TSNode, context: Context): Type { + const { program } = getParserServices(context); + const checker = program.getTypeChecker(); - const nodeType = checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(node)); + const nodeType = checker.getTypeAtLocation(node); const constrained = checker.getBaseConstraintOfType(nodeType); return constrained ?? nodeType; } diff --git a/tests/rules/prefer-tacit/ts/invalid.ts b/tests/rules/prefer-tacit/ts/invalid.ts index 37ca542c2..be779509a 100644 --- a/tests/rules/prefer-tacit/ts/invalid.ts +++ b/tests/rules/prefer-tacit/ts/invalid.ts @@ -237,6 +237,29 @@ const tests: Array< }, ], }, + // Boolean constructor + { + code: dedent` + const foo = [1, 2, 3].map(x => Boolean(x)); + `, + optionsSet: [[]], + errors: [ + { + messageId: "generic", + type: AST_NODE_TYPES.ArrowFunctionExpression, + line: 1, + column: 27, + suggestions: [ + { + messageId: "generic", + output: dedent` + const foo = [1, 2, 3].map(Boolean); + `, + }, + ], + }, + ], + }, // Instantiation Expression not supported. { code: dedent`