From 7930a2773311bef05bd98a3a98540ce17b6a7d6b Mon Sep 17 00:00:00 2001 From: kazuya kawaguchi Date: Wed, 26 Jun 2024 17:52:06 +0900 Subject: [PATCH] chore: update eslint and prettier (#2993) * chore: update eslint and prettier * fix: lint errors * fix * fix --- .github/workflows/ci.yml | 3 + .prettierignore | 3 +- .vscode/settings.json | 3 +- CONTRIBUTING.md | 15 +- eslint.config.js | 71 ++++-- package.json | 19 +- pnpm-lock.yaml | 280 +++++++++++---------- .prettierrc.mjs => prettier.config.mjs | 0 scripts/bump-edge.ts | 10 +- src/bundler.ts | 1 - src/constants.ts | 34 +-- src/gen.ts | 6 +- src/internal-global-types.d.ts | 4 +- src/layers.ts | 6 +- src/module.ts | 8 +- src/nitro.ts | 16 +- src/options.d.ts | 3 +- src/pages.ts | 7 +- src/runtime/components/NuxtLinkLocale.ts | 1 + src/runtime/composables/index.ts | 4 +- src/runtime/internal.ts | 27 +- src/runtime/messages.ts | 10 +- src/runtime/plugins/i18n.ts | 15 +- src/runtime/routing/compatibles/head.ts | 3 +- src/runtime/routing/compatibles/routing.ts | 4 +- src/runtime/routing/extends/i18n.ts | 4 +- src/runtime/routing/utils.ts | 3 +- src/runtime/server/plugin.ts | 16 +- src/runtime/utils.ts | 39 ++- src/template.ts | 4 + src/transform/i18n-function-injection.ts | 4 +- src/transform/resource.ts | 3 +- src/transform/utils.ts | 4 +- src/types.ts | 6 +- src/utils.ts | 24 +- test/gen.test.ts | 4 +- test/pages/custom_route.test.ts | 6 +- test/pages/ignore_route/disable.test.ts | 4 +- test/pages/ignore_route/pick.test.ts | 4 +- 39 files changed, 387 insertions(+), 291 deletions(-) rename .prettierrc.mjs => prettier.config.mjs (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 628cb218a..8771c64b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,9 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + - name: Setup develoment + run: pnpm dev:prepare + - name: Linting run: pnpm lint diff --git a/.prettierignore b/.prettierignore index a95b5b7e4..dae445106 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,5 @@ coverage .nuxt .output docs/content -.vscode/settings.json \ No newline at end of file +.vscode/settings.json +pnpm-lock.yaml diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b99ceeaf..e4efc540d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,5 +9,6 @@ "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.useFlatConfig": true } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd95fa83e..eb7307b84 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,6 +18,12 @@ pnpm i Note: This project is using `pnpm`. +- Setup type generation + +```sh +pnpm dev:prepare +``` + - Create a new branch for your changes: ```sh @@ -25,12 +31,13 @@ git checkout -b my-new-feature ``` - Code, code, code! -- Run ESLint and Vitest +- Run ESLint, Prettier and Vitest ```sh -pnpm fix -pnpm test:unit -pnpm test:e2e +pnpm lint # lint and format check +pnpm fix # auto fix for lint and format +pnpm test:unit # unit tests +pnpm test:spec # e2e tests ``` - Commit and push your changes diff --git a/eslint.config.js b/eslint.config.js index a98480e56..eb953ec5f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,37 +1,68 @@ import globals from 'globals' -import tseslint from 'typescript-eslint' +import js from '@eslint/js' +import ts from 'typescript-eslint' import eslintConfigPrettier from 'eslint-config-prettier' +/** + * @typedef {import("eslint").Linter.FlatConfig[]} FlatConfigs + */ + +/** @type { FlatConfigs } */ export default [ - // Ignores + // ignores { - ignores: [ - '.eslintcache/**', - 'dist/**', - 'playground/**', - 'specs/fixtures/**', - 'specs/utils/**', - 'test/fixtures/**', - 'coverage/**', - 'src/runtime/templates/**', - 'docs/**' - ] + ignores: ['.nuxt', 'dist', 'playground', 'specs', 'test/fixtures', 'coverage', 'src/runtime/templates/**', 'docs'] }, - // Globals + // for global and envrionment { - files: ['**/*.js', '**/*.ts', '**/*.vue', '**/*.json'], languageOptions: { - globals: globals.node, - parserOptions: { sourceType: 'module' } + globals: { + ...globals.node, + ...globals.browser + } } }, - // Extends - ...tseslint.configs.recommended, + // eslint built-in + js.configs.recommended, + + // typescript-eslint + ...ts.configs.recommendedTypeChecked, + { + files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'], + languageOptions: { + parser: ts.parser, + parserOptions: { + sourceType: 'module', + project: true, + tsconfigRootDir: import.meta.dirname + } + }, + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true + } + ] + } + }, + { + files: ['**/*.js', '**/*.cjs', '**/*.mjs'], + ...ts.configs.disableTypeChecked + }, + + // prettier eslintConfigPrettier, - // Rules + // override rules { rules: { '@typescript-eslint/ban-ts-comment': 'off' } } diff --git a/package.json b/package.json index 28e0b949d..2b2d411b5 100644 --- a/package.json +++ b/package.json @@ -57,11 +57,12 @@ "docs:build": "nuxi build docs", "docs:generate": "nuxi generate docs", "docs:preview": "nuxi preview docs", - "fix": "run-p lint:fix format:fix", - "format": "prettier --config .prettierrc.mjs --ignore-path .prettierignore --list-different '**/*.{js,json,html,md}'", - "format:fix": "pnpm format --write", - "lint": "eslint . --cache", - "lint:fix": "pnpm lint --fix", + "fix": "run-s \"fix:*\"", + "fix:prettier": "prettier . --write", + "fix:eslint": "pnpm lint:eslint --fix", + "lint": "run-p \"lint:* {@}\" --", + "lint:prettier": "prettier . --check", + "lint:eslint": "eslint .", "test": "pnpm dev:prepare && run-s test:types test:unit test:spec", "test:types": "tsc --noEmit --project tsconfig.test.json", "test:unit": "vitest run test", @@ -108,15 +109,17 @@ "@babel/parser": "^7.24.7", "@babel/plugin-syntax-import-assertions": "^7.24.7", "@babel/types": "^7.24.7", + "@eslint/js": "9.5.0", "@nuxt/module-builder": "^0.6.0", "@nuxt/schema": "^3.10.3", "@types/debug": "^4.1.9", + "@types/eslint": "^8.56.6", "@unhead/vue": "^1.8.8", "bumpp": "^9.4.1", "changelogithub": "^0.13.7", "consola": "^3", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^9.5.0", + "eslint-config-prettier": "^9.1.0", "execa": "^9.3.0", "get-port-please": "^3.1.1", "gh-changelogen": "^0.2.8", @@ -134,7 +137,7 @@ "prettier": "^3.3.2", "ts-essentials": "^9.4.2", "typescript": "^5.5.2", - "typescript-eslint": "^7.0.1", + "typescript-eslint": "^7.14.0", "unbuild": "^2.0.0", "undici": "^6.19.2", "unhead": "^1.8.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe9b73fe2..f75f9c677 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,6 +94,9 @@ importers: '@babel/types': specifier: ^7.24.7 version: 7.24.7 + '@eslint/js': + specifier: 9.5.0 + version: 9.5.0 '@nuxt/module-builder': specifier: ^0.6.0 version: 0.6.0(@nuxt/kit@3.12.2(magicast@0.3.4)(rollup@3.29.4))(nuxi@3.12.0)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2)) @@ -103,6 +106,9 @@ importers: '@types/debug': specifier: ^4.1.9 version: 4.1.12 + '@types/eslint': + specifier: ^8.56.6 + version: 8.56.10 '@unhead/vue': specifier: ^1.8.8 version: 1.9.14(vue@3.4.30(typescript@5.5.2)) @@ -116,11 +122,11 @@ importers: specifier: ^3 version: 3.2.3 eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^9.5.0 + version: 9.5.0 eslint-config-prettier: - specifier: ^9.0.0 - version: 9.1.0(eslint@8.57.0) + specifier: ^9.1.0 + version: 9.1.0(eslint@9.5.0) execa: specifier: ^9.3.0 version: 9.3.0 @@ -156,7 +162,7 @@ importers: version: 6.2.0 nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) ofetch: specifier: ^1.3.4 version: 1.3.4 @@ -173,8 +179,8 @@ importers: specifier: ^5.5.2 version: 5.5.2 typescript-eslint: - specifier: ^7.0.1 - version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) + specifier: ^7.14.0 + version: 7.14.1(eslint@9.5.0)(typescript@5.5.2) unbuild: specifier: ^2.0.0 version: 2.0.0(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2)) @@ -201,7 +207,7 @@ importers: version: 1.1.107 '@nuxt/content': specifier: ^2.12.0 - version: 2.13.0(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) + version: 2.13.0(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) '@nuxt/ui-pro': specifier: ^1.0.1 version: 1.3.1(focus-trap@7.5.4)(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2)) @@ -213,10 +219,10 @@ importers: version: 3.2.0(magicast@0.3.4)(rollup@4.18.0) nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) nuxt-og-image: specifier: ^2.2.4 - version: 2.2.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) + version: 2.2.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) vue-tsc: specifier: ^2.0.1 version: 2.0.22(typescript@5.5.2) @@ -231,7 +237,7 @@ importers: version: link:.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/basic: devDependencies: @@ -240,7 +246,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/basic_usage: dependencies: @@ -253,7 +259,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/different_domains: devDependencies: @@ -262,7 +268,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/inline_options: devDependencies: @@ -271,7 +277,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/lazy: devDependencies: @@ -280,7 +286,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) specs/fixtures/routing: devDependencies: @@ -289,7 +295,7 @@ importers: version: link:../../.. nuxt: specifier: ^3.11.1 - version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) packages: @@ -948,13 +954,21 @@ packages: resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.16.0': + resolution: {integrity: sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/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.5.0': + resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==} + 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} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} @@ -981,18 +995,13 @@ packages: peerDependencies: vue: ^3.2.0 - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} '@iconify-json/carbon@1.1.36': resolution: {integrity: sha512-NC3VcqLtwLZpi7+LeXj+99/byv+asrnCQxiDNCZV6hKr9WcNh6C25kJguJYfN+dV54kOkw78e+6PitQi2Bppnw==} @@ -3099,10 +3108,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -3235,19 +3240,27 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.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.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - 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.5.0: + resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==} + 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} @@ -3349,9 +3362,9 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -3364,9 +3377,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flat@6.0.1: resolution: {integrity: sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==} @@ -3530,9 +3543,9 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - 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.6.0: resolution: {integrity: sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==} @@ -5826,10 +5839,6 @@ packages: 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'} @@ -6962,19 +6971,27 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)': dependencies: - eslint: 8.57.0 + eslint: 9.5.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.16.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.1.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -6983,7 +7000,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.5.0': {} + + '@eslint/object-schema@2.1.4': {} '@fastify/busboy@2.1.1': {} @@ -7008,17 +7027,9 @@ snapshots: '@tanstack/vue-virtual': 3.7.0(vue@3.4.30(typescript@5.5.2)) vue: 3.4.30(typescript@5.5.2) - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.0': {} '@iconify-json/carbon@1.1.36': dependencies: @@ -7309,13 +7320,13 @@ snapshots: - bluebird - supports-color - '@nuxt/content@2.13.0(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2))': + '@nuxt/content@2.13.0(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@nuxtjs/mdc': 0.8.2(magicast@0.3.4)(rollup@4.18.0) '@vueuse/core': 10.11.0(vue@3.4.30(typescript@5.5.2)) '@vueuse/head': 2.0.0(vue@3.4.30(typescript@5.5.2)) - '@vueuse/nuxt': 10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) + '@vueuse/nuxt': 10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) consola: 3.2.3 defu: 6.1.4 destr: 2.0.3 @@ -7386,7 +7397,7 @@ snapshots: - rollup - supports-color - '@nuxt/devtools-ui-kit@1.3.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1)': + '@nuxt/devtools-ui-kit@1.3.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1)': dependencies: '@iconify-json/carbon': 1.1.36 '@iconify-json/logos': 1.1.43 @@ -7403,7 +7414,7 @@ snapshots: '@unocss/reset': 0.61.0 '@vueuse/core': 10.11.0(vue@3.4.30(typescript@5.5.2)) '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(fuse.js@6.6.2)(vue@3.4.30(typescript@5.5.2)) - '@vueuse/nuxt': 10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) + '@vueuse/nuxt': 10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 @@ -7774,7 +7785,7 @@ snapshots: - vite - vue - '@nuxt/vite-builder@3.12.2(@types/node@20.14.9)(eslint@8.57.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2))': + '@nuxt/vite-builder@3.12.2(@types/node@20.14.9)(eslint@9.5.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@3.29.4) '@rollup/plugin-replace': 5.0.7(rollup@3.29.4) @@ -7808,7 +7819,7 @@ snapshots: unplugin: 1.10.1 vite: 5.3.1(@types/node@20.14.9)(terser@5.31.1) vite-node: 1.6.0(@types/node@20.14.9)(terser@5.31.1) - vite-plugin-checker: 0.6.4(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + vite-plugin-checker: 0.6.4(eslint@9.5.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) vue: 3.4.30(typescript@5.5.2) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -7832,7 +7843,7 @@ snapshots: - vti - vue-tsc - '@nuxt/vite-builder@3.12.2(@types/node@20.14.9)(eslint@8.57.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2))': + '@nuxt/vite-builder@3.12.2(@types/node@20.14.9)(eslint@9.5.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@rollup/plugin-replace': 5.0.7(rollup@4.18.0) @@ -7866,7 +7877,7 @@ snapshots: unplugin: 1.10.1 vite: 5.3.1(@types/node@20.14.9)(terser@5.31.1) vite-node: 1.6.0(@types/node@20.14.9)(terser@5.31.1) - vite-plugin-checker: 0.6.4(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + vite-plugin-checker: 0.6.4(eslint@9.5.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) vue: 3.4.30(typescript@5.5.2) vue-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -8625,15 +8636,15 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.5.2) '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/type-utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 8.57.0 + eslint: 9.5.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -8643,14 +8654,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.14.1 debug: 4.3.5 - eslint: 8.57.0 + eslint: 9.5.0 optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: @@ -8661,12 +8672,12 @@ snapshots: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/type-utils@7.14.1(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2) debug: 4.3.5 - eslint: 8.57.0 + eslint: 9.5.0 ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: typescript: 5.5.2 @@ -8690,13 +8701,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': + '@typescript-eslint/utils@7.14.1(eslint@9.5.0)(typescript@5.5.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@typescript-eslint/scope-manager': 7.14.1 '@typescript-eslint/types': 7.14.1 '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - eslint: 8.57.0 + eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript @@ -9190,13 +9201,13 @@ snapshots: '@vueuse/metadata@10.11.0': {} - '@vueuse/nuxt@10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2))': + '@vueuse/nuxt@10.11.0(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@vueuse/core': 10.11.0(vue@3.4.30(typescript@5.5.2)) '@vueuse/metadata': 10.11.0 local-pkg: 0.5.0 - nuxt: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) + nuxt: 3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)) vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' @@ -10062,10 +10073,6 @@ snapshots: dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -10240,54 +10247,52 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0(eslint@9.5.0): dependencies: - eslint: 8.57.0 + eslint: 9.5.0 eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + eslint-scope@8.0.1: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.5.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.16.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.5.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.5 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -10299,6 +10304,12 @@ snapshots: transitivePeerDependencies: - supports-color + espree@10.1.0: + dependencies: + acorn: 8.12.0 + acorn-jsx: 5.3.2(acorn@8.12.0) + eslint-visitor-keys: 4.0.0 + espree@9.6.1: dependencies: acorn: 8.12.0 @@ -10423,9 +10434,9 @@ snapshots: dependencies: is-unicode-supported: 2.0.0 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-uri-to-path@1.0.0: {} @@ -10438,11 +10449,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flat@6.0.1: {} @@ -10634,9 +10644,7 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globals@15.6.0: {} @@ -12074,7 +12082,7 @@ snapshots: - vite - vue - nuxt-og-image@2.2.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1): + nuxt-og-image@2.2.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1): dependencies: '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@resvg/resvg-js': 2.6.2 @@ -12093,7 +12101,7 @@ snapshots: globby: 13.2.2 image-size: 1.1.1 launch-editor: 2.8.0 - nuxt-site-config: 1.6.7(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) + nuxt-site-config: 1.6.7(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) nuxt-site-config-kit: 1.6.7(magicast@0.3.4)(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) nypm: 0.3.8 ofetch: 1.3.4 @@ -12152,10 +12160,10 @@ snapshots: - supports-color - vue - nuxt-site-config@1.6.7(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1): + nuxt-site-config@1.6.7(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1): dependencies: '@nuxt/devtools-kit': 1.3.6(magicast@0.3.4)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)) - '@nuxt/devtools-ui-kit': 1.3.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) + '@nuxt/devtools-ui-kit': 1.3.6(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)))(@unocss/webpack@0.61.0(rollup@4.18.0)(webpack@5.92.1))(@vue/compiler-core@3.4.30)(fuse.js@6.6.2)(magicast@0.3.4)(nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@nuxt/schema': 3.12.2(rollup@4.18.0) nuxt-site-config-kit: 1.6.7(magicast@0.3.4)(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) @@ -12189,14 +12197,14 @@ snapshots: - vue - webpack - nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): + nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/devtools': 1.3.6(rollup@3.29.4)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)) '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@3.29.4) '@nuxt/schema': 3.12.2(rollup@3.29.4) '@nuxt/telemetry': 2.5.4(magicast@0.3.4)(rollup@3.29.4) - '@nuxt/vite-builder': 3.12.2(@types/node@20.14.9)(eslint@8.57.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2)) + '@nuxt/vite-builder': 3.12.2(@types/node@20.14.9)(eslint@9.5.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@3.29.4)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2)) '@unhead/dom': 1.9.14 '@unhead/ssr': 1.9.14 '@unhead/vue': 1.9.14(vue@3.4.30(typescript@5.5.2)) @@ -12294,14 +12302,14 @@ snapshots: - vue-tsc - xml2js - nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): + nuxt@3.12.2(@opentelemetry/api@1.9.0)(@parcel/watcher@2.4.1)(@types/node@20.14.9)(encoding@0.1.13)(eslint@9.5.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/devtools': 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1)) '@nuxt/kit': 3.12.2(magicast@0.3.4)(rollup@4.18.0) '@nuxt/schema': 3.12.2(rollup@4.18.0) '@nuxt/telemetry': 2.5.4(magicast@0.3.4)(rollup@4.18.0) - '@nuxt/vite-builder': 3.12.2(@types/node@20.14.9)(eslint@8.57.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2)) + '@nuxt/vite-builder': 3.12.2(@types/node@20.14.9)(eslint@9.5.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.18.0)(terser@5.31.1)(typescript@5.5.2)(vue-tsc@2.0.22(typescript@5.5.2))(vue@3.4.30(typescript@5.5.2)) '@unhead/dom': 1.9.14 '@unhead/ssr': 1.9.14 '@unhead/vue': 1.9.14(vue@3.4.30(typescript@5.5.2)) @@ -13715,8 +13723,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@3.13.1: {} @@ -13728,12 +13734,12 @@ snapshots: type-level-regexp@0.1.17: {} - typescript-eslint@7.14.1(eslint@8.57.0)(typescript@5.5.2): + typescript-eslint@7.14.1(eslint@9.5.0)(typescript@5.5.2): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@9.5.0)(typescript@5.5.2) + eslint: 9.5.0 optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: @@ -14113,7 +14119,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@8.57.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): + vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.4)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(terser@5.31.1))(vue-tsc@2.0.22(typescript@5.5.2)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -14132,7 +14138,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - eslint: 8.57.0 + eslint: 9.5.0 optionator: 0.9.4 typescript: 5.5.2 vue-tsc: 2.0.22(typescript@5.5.2) diff --git a/.prettierrc.mjs b/prettier.config.mjs similarity index 100% rename from .prettierrc.mjs rename to prettier.config.mjs diff --git a/scripts/bump-edge.ts b/scripts/bump-edge.ts index 678d47c85..40a64bafa 100644 --- a/scripts/bump-edge.ts +++ b/scripts/bump-edge.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */ import { promises as fsp } from 'node:fs' import { execSync } from 'node:child_process' import { resolve } from 'pathe' @@ -16,8 +17,8 @@ async function loadPackage(dir: string) { if (!data[type]) { continue } - for (const e of Object.entries(data[type])) { - const dep: Dep = { name: e[0], range: e[1] as string, type } + for (const e of Object.entries(data[type] as Record)) { + const dep: Dep = { name: e[0], range: e[1], type } delete data[type][dep.name] const updated = reviver(dep) || dep data[updated.type] = data[updated.type] || {} @@ -40,7 +41,7 @@ type Package = ThenArg> // eslint-disable-next-line @typescript-eslint/no-unused-vars async function loadWorkspace(dir: string) { const workspacePkg = await loadPackage(dir) - let pkgDirs = await globby(workspacePkg.data.workspaces || [], { onlyDirectories: true }) + let pkgDirs = await globby((workspacePkg.data.workspaces as string[]) || [], { onlyDirectories: true }) // filter pkgDirs = pkgDirs.map(dir => (!dir.startsWith('specs/fixtures') ? dir : undefined)).filter(Boolean) as string[] console.log('pkgDirs', pkgDirs) @@ -73,6 +74,7 @@ async function loadWorkspace(dir: string) { }) } // Update resolutions field in the root package.json. + // eslint-disable-next-line @typescript-eslint/no-unsafe-call, no-prototype-builtins if (workspacePkg.data.resolutions?.hasOwnProperty(from)) { workspacePkg.data.resolutions[to] = workspacePkg.data.resolutions[from] delete workspacePkg.data.resolutions[from] @@ -127,3 +129,5 @@ main().catch(err => { console.error(err) process.exit(1) }) + +/* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */ diff --git a/src/bundler.ts b/src/bundler.ts index f5c3aa012..3b9b8522a 100644 --- a/src/bundler.ts +++ b/src/bundler.ts @@ -75,7 +75,6 @@ export async function extendBundler(nuxt: Nuxt, nuxtOptions: Required { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- `config.plugins` is safe, so it's assigned with nuxt! config.plugins!.push( new webpack.DefinePlugin( assign( diff --git a/src/constants.ts b/src/constants.ts index 7434f02de..ba59587c5 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,14 +1,14 @@ -export const NUXT_I18N_MODULE_ID = '@nuxtjs/i18n' as const -export const VUE_I18N_PKG = 'vue-i18n' as const -export const SHARED_PKG = '@intlify/shared' as const -export const MESSAGE_COMPILER_PKG = '@intlify/message-compiler' as const -export const CORE_PKG = '@intlify/core' as const -export const CORE_BASE_PKG = '@intlify/core-base' as const -export const H3_PKG = '@intlify/h3' as const -export const UTILS_PKG = '@intlify/utils' as const -export const UTILS_H3_PKG = '@intlify/utils/h3' as const -export const UFO_PKG = 'ufo' as const -export const IS_HTTPS_PKG = 'is-https' as const +export const NUXT_I18N_MODULE_ID = '@nuxtjs/i18n' +export const VUE_I18N_PKG = 'vue-i18n' +export const SHARED_PKG = '@intlify/shared' +export const MESSAGE_COMPILER_PKG = '@intlify/message-compiler' +export const CORE_PKG = '@intlify/core' +export const CORE_BASE_PKG = '@intlify/core-base' +export const H3_PKG = '@intlify/h3' +export const UTILS_PKG = '@intlify/utils' +export const UTILS_H3_PKG = '@intlify/utils/h3' +export const UFO_PKG = 'ufo' +export const IS_HTTPS_PKG = 'is-https' // Options const STRATEGY_PREFIX = 'prefix' @@ -79,14 +79,14 @@ export const DEFAULT_OPTIONS = { parallelPlugin: false } as const -export const NUXT_I18N_TEMPLATE_OPTIONS_KEY = 'i18n.options.mjs' as const -export const NUXT_I18N_COMPOSABLE_DEFINE_ROUTE = 'defineI18nRoute' as const -export const NUXT_I18N_COMPOSABLE_DEFINE_LOCALE = 'defineI18nLocale' as const -export const NUXT_I18N_COMPOSABLE_DEFINE_CONFIG = 'defineI18nConfig' as const -export const NUXT_I18N_COMPOSABLE_DEFINE_LOCALE_DETECTOR = 'defineI18nLocaleDetector' as const +export const NUXT_I18N_TEMPLATE_OPTIONS_KEY = 'i18n.options.mjs' +export const NUXT_I18N_COMPOSABLE_DEFINE_ROUTE = 'defineI18nRoute' +export const NUXT_I18N_COMPOSABLE_DEFINE_LOCALE = 'defineI18nLocale' +export const NUXT_I18N_COMPOSABLE_DEFINE_CONFIG = 'defineI18nConfig' +export const NUXT_I18N_COMPOSABLE_DEFINE_LOCALE_DETECTOR = 'defineI18nLocaleDetector' export const TS_EXTENSIONS = ['.ts', '.cts', '.mts'] export const JS_EXTENSIONS = ['.js', '.cjs', '.mjs'] export const EXECUTABLE_EXTENSIONS = [...JS_EXTENSIONS, ...TS_EXTENSIONS] -export const NULL_HASH = '00000000' as const +export const NULL_HASH = '00000000' diff --git a/src/gen.ts b/src/gen.ts index 7d28f1d0a..d3cc6c6a4 100644 --- a/src/gen.ts +++ b/src/gen.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import createDebug from 'debug' import { EXECUTABLE_EXTENSIONS } from './constants' import { genImport, genDynamicImport } from 'knitwork' @@ -40,7 +38,7 @@ export function simplifyLocaleOptions(nuxt: Nuxt, options: NuxtI18nOptions) { options?.i18nModules?.some(module => isLocaleObjectsArray(module?.locales)) const locales = (options.locales ?? []) as LocaleObject[] - // eslint-disable-next-line @typescript-eslint/no-unused-vars + return locales.map(({ meta, ...locale }) => { if (!hasLocaleObjects) { return locale.code @@ -209,5 +207,3 @@ ${options.experimental?.autoImportTranslationFunctions && globalTranslationTypes export {}` } - -/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/internal-global-types.d.ts b/src/internal-global-types.d.ts index 64cb6d985..cce768e84 100644 --- a/src/internal-global-types.d.ts +++ b/src/internal-global-types.d.ts @@ -1,4 +1,4 @@ -/* eslint-disable no-var */ +/* eslint-disable no-var, @typescript-eslint/no-redundant-type-constituents */ import type { Composer, ExportedGlobalComposer, VueI18n } from 'vue-i18n' import type { ComposerCustomProperties, NuxtI18nRoutingCustomProperties } from './runtime/types' @@ -24,3 +24,5 @@ declare global { } export {} + +/* eslint-enable no-var, @typescript-eslint/no-redundant-type-constituents */ diff --git a/src/layers.ts b/src/layers.ts index aa3225486..96fb1cd37 100644 --- a/src/layers.ts +++ b/src/layers.ts @@ -19,7 +19,7 @@ import type { LocaleObject, NuxtI18nOptions, VueI18nConfigPathInfo } from './typ const debug = createDebug('@nuxtjs/i18n:layers') -export const checkLayerOptions = (options: NuxtI18nOptions, nuxt: Nuxt) => { +export const checkLayerOptions = (_options: NuxtI18nOptions, nuxt: Nuxt) => { const logger = useLogger(NUXT_I18N_MODULE_ID) const project = nuxt.options._layers[0] const layers = nuxt.options._layers @@ -113,7 +113,7 @@ export const mergeLayerLocales = (options: NuxtI18nOptions, nuxt: Nuxt) => { const i18n = getLayerI18n(layer) return { ...i18n, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + langDir: resolve(layer.config.srcDir, i18n?.langDir ?? layer.config.srcDir), projectLangDir } @@ -172,7 +172,7 @@ export const getLayerLangPaths = (nuxt: Nuxt) => { const i18n = getLayerI18n(layer) // @ts-ignore return resolve(layer.config.srcDir, i18n.langDir) - }) as string[] + }) } export async function resolveLayerVueI18nConfigInfo(options: NuxtI18nOptions, nuxt: Nuxt, buildDir: string) { diff --git a/src/module.ts b/src/module.ts index adac485f0..7e9c3a21f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -200,7 +200,7 @@ export default defineNuxtModule({ */ if (options.strategy !== 'no_prefix' && localeCodes.length) { - await setupPages(options, nuxt) + setupPages(options, nuxt) } /** @@ -273,7 +273,7 @@ export default defineNuxtModule({ * `PageMeta` augmentation to add `nuxtI18n` property * TODO: Remove in v9, `useSetI18nParams` should be used instead */ - if (!!options.dynamicRouteParams) { + if (options.dynamicRouteParams) { addTypeTemplate({ filename: 'types/i18n-page-meta.d.ts', getContents: () => generateI18nPageTypes() @@ -310,7 +310,7 @@ export default defineNuxtModule({ * extend bundler */ - await extendBundler(nuxt, options as Required) + await extendBundler(nuxt, options) /** * setup nitro @@ -338,7 +338,7 @@ export default defineNuxtModule({ filePath: resolve(runtimeDir, 'components/SwitchLocalePathLink') }) - await addImports([ + addImports([ { name: 'useI18n', from: vueI18nPath }, ...[ 'useRouteBaseName', diff --git a/src/nitro.ts b/src/nitro.ts index 67ce91b66..a1100d725 100644 --- a/src/nitro.ts +++ b/src/nitro.ts @@ -33,19 +33,21 @@ export async function setupNitro( nuxtOptions: Required, additionalParams: AdditionalSetupNitroParams ) { - const { resolve } = createResolver(import.meta.url) + const resolver = createResolver(import.meta.url) const [enableServerIntegration, localeDetectionPath] = await resolveLocaleDetectorPath(nuxt) nuxt.hook('nitro:config', async nitroConfig => { if (enableServerIntegration) { // inline module runtime in Nitro bundle nitroConfig.externals = defu(typeof nitroConfig.externals === 'object' ? nitroConfig.externals : {}, { - inline: [resolve('./runtime')] + inline: [resolver.resolve('./runtime')] }) // install server resource transform plugin for yaml / json5 format nitroConfig.rollupConfig = nitroConfig.rollupConfig || {} + // eslint-disable-next-line @typescript-eslint/no-floating-promises -- FIXME nitroConfig.rollupConfig.plugins = (await nitroConfig.rollupConfig.plugins) || [] + // eslint-disable-next-line @typescript-eslint/no-floating-promises -- FIXME nitroConfig.rollupConfig.plugins = isArray(nitroConfig.rollupConfig.plugins) ? nitroConfig.rollupConfig.plugins : [nitroConfig.rollupConfig.plugins] @@ -83,18 +85,18 @@ export { localeDetector } ...h3UtilsExports.map(key => ({ name: key, as: key, - from: resolve(nuxt.options.alias[UTILS_H3_PKG]) + from: resolver.resolve(nuxt.options.alias[UTILS_H3_PKG]) })), ...[NUXT_I18N_COMPOSABLE_DEFINE_LOCALE, NUXT_I18N_COMPOSABLE_DEFINE_CONFIG].map(key => ({ name: key, as: key, - from: resolve('runtime/composables/shared') + from: resolver.resolve('runtime/composables/shared') })), ...[ { name: NUXT_I18N_COMPOSABLE_DEFINE_LOCALE_DETECTOR, as: NUXT_I18N_COMPOSABLE_DEFINE_LOCALE_DETECTOR, - from: resolve('runtime/composables/server') + from: resolver.resolve('runtime/composables/server') } ] ] @@ -124,7 +126,7 @@ export { localeDetector } // add nitro plugin if (enableServerIntegration) { - await addServerPlugin(resolve('runtime/server/plugin')) + addServerPlugin(resolver.resolve('runtime/server/plugin')) } } @@ -136,7 +138,7 @@ async function resolveLocaleDetectorPath(nuxt: Nuxt) { if (serverI18nLayer != null) { const pathTo = resolve(serverI18nLayer.config.rootDir, serverI18nLayer.config.i18n!.experimental!.localeDetector!) - const localeDetectorPath = await resolvePath(pathTo!, { + const localeDetectorPath = await resolvePath(pathTo, { cwd: nuxt.options.rootDir, extensions: EXECUTABLE_EXTENSIONS }) diff --git a/src/options.d.ts b/src/options.d.ts index 0a552d3eb..4145c9403 100644 --- a/src/options.d.ts +++ b/src/options.d.ts @@ -1,5 +1,4 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import type { NuxtI18nOptions, VueI18nConfig } from './types' +import type { NuxtI18nOptions, VueI18nConfig, LocaleObject } from './types' import type { DeepRequired } from 'ts-essentials' export type * from './types' diff --git a/src/pages.ts b/src/pages.ts index dac3cad29..8d0a212b6 100644 --- a/src/pages.ts +++ b/src/pages.ts @@ -71,7 +71,7 @@ export function setupPages(options: Required, nuxt: Nuxt) { } pages.splice(0, pages.length) - pages.unshift(...(localizedPages as NuxtPage[])) + pages.unshift(...localizedPages) debug('... made pages', pages) }) } @@ -266,7 +266,7 @@ function readComponent(target: string) { if (genericSetupAst) { const s = new MagicString(desc.loc.source) genericSetupAst.forEach(ast => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument walk(ast as any, { enter(_node) { const node = _node as Node @@ -364,8 +364,9 @@ function verifyLocalesArrayExpression(elements: ArrayExpression['elements']) { function evalValue(value: string) { try { + // eslint-disable-next-line @typescript-eslint/no-implied-eval return new Function(`return (${value})`)() as ComputedRouteOptions | false - } catch (e) { + } catch (_e) { console.error(formatMessage(`Cannot evaluate value: ${value}`)) return } diff --git a/src/runtime/components/NuxtLinkLocale.ts b/src/runtime/components/NuxtLinkLocale.ts index e51dd12ac..602e6936b 100644 --- a/src/runtime/components/NuxtLinkLocale.ts +++ b/src/runtime/components/NuxtLinkLocale.ts @@ -10,6 +10,7 @@ const NuxtLinkLocale = defineNuxtLink({ componentName: 'NuxtLinkLocale' }) export default defineComponent({ name: 'NuxtLinkLocale', + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FIXME props: { ...NuxtLinkLocale.props, locale: { diff --git a/src/runtime/composables/index.ts b/src/runtime/composables/index.ts index 0d92a7e2c..f3c33b064 100644 --- a/src/runtime/composables/index.ts +++ b/src/runtime/composables/index.ts @@ -157,7 +157,7 @@ export function useLocaleHead({ addDirAttribute, addSeoAttributes, identifierAttribute - }) as I18nHeadMetaInfo + }) } if (import.meta.client) { @@ -380,7 +380,7 @@ export function useCookieLocale(): Ref { code = useNuxtCookie(cookieKey).value } else if (import.meta.server) { const cookie = useRequestHeaders(['cookie']) - // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access code = (cookie as any)[cookieKey] } diff --git a/src/runtime/internal.ts b/src/runtime/internal.ts index 220091a5c..c2d8eaa37 100644 --- a/src/runtime/internal.ts +++ b/src/runtime/internal.ts @@ -15,7 +15,7 @@ import { NUXT_I18N_MODULE_ID, DEFAULT_COOKIE_KEY, isSSG, localeCodes, normalized import { findBrowserLocale, getLocalesRegex, getI18nTarget } from './routing/utils' import { initCommonComposableOptions, type CommonComposableOptions } from './utils' -import type { Locale } from 'vue-i18n' +import type { Locale, I18n } from 'vue-i18n' import type { DetectBrowserLanguageOptions, LocaleObject } from '#build/i18n.options.mjs' import type { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue-router' import type { CookieRef } from 'nuxt/app' @@ -25,15 +25,17 @@ export function formatMessage(message: string) { return NUXT_I18N_MODULE_ID + ' ' + message } -export function callVueI18nInterfaces(i18n: any, name: string, ...args: any[]): any { - const target = getI18nTarget(i18n) +export function callVueI18nInterfaces(i18n: any, name: string, ...args: any[]): Return { + const target = getI18nTarget(i18n as unknown as I18n) // prettier-ignore - const [obj, method] = [target, (target as any)[name]] - return Reflect.apply(method, obj, [...args]) + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/ban-types + const [obj, method] = [target, (target as any)[name] as Function] + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + return Reflect.apply(method, obj, [...args]) as Return } export function getVueI18nPropertyValue(i18n: any, name: string): Return { - const target = getI18nTarget(i18n) + const target = getI18nTarget(i18n as unknown as I18n) // @ts-expect-error name should be typed instead of string return unref(target[name]) as Return } @@ -43,11 +45,12 @@ export function defineGetter(obj: Record< } type TailParameters = T extends (first: CommonComposableOptions, ...rest: infer R) => unknown ? R : never -// eslint-disable-next-line @typescript-eslint/no-explicit-any + export function wrapComposable any>( fn: F, common = initCommonComposableOptions() ) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- FIXME return (...args: TailParameters) => fn(common, ...args) } @@ -232,7 +235,7 @@ export function detectBrowserLanguage( } } else if (redirectOn === 'no prefix') { __DEBUG__ && console.log('detectBrowserLanguage: no prefix (path) -', path) - if (!alwaysRedirect && path.match(getLocalesRegex(localeCodes as string[]))) { + if (!alwaysRedirect && path.match(getLocalesRegex(localeCodes))) { return { locale: '', stat: false, reason: 'not_redirect_on_no_prefix' } } } @@ -293,7 +296,7 @@ export function detectBrowserLanguage( if (alwaysRedirect) { const redirectOnRoot = path === '/' const redirectOnAll = redirectOn === 'all' - const redirectOnNoPrefix = redirectOn === 'no prefix' && !path.match(getLocalesRegex(localeCodes as string[])) + const redirectOnNoPrefix = redirectOn === 'no prefix' && !path.match(getLocalesRegex(localeCodes)) __DEBUG__ && console.log( 'detectBrowserLanguage: (redirectOnRoot, redirectOnAll, redirectOnNoPrefix) - ', @@ -326,7 +329,7 @@ export function getHost() { } else if (import.meta.server) { const header = useRequestHeaders(['x-forwarded-host', 'host']) - let detectedHost: string | undefined + let detectedHost: string | string[] | undefined if ('x-forwarded-host' in header) { detectedHost = header['x-forwarded-host'] } else if ('host' in header) { @@ -446,8 +449,6 @@ export function getDomainFromLocale(localeCode: Locale): string | undefined { console.warn(formatMessage('Could not find domain name for locale ' + localeCode)) } -/* eslint-enable @typescript-eslint/no-explicit-any */ - export const runtimeDetectBrowserLanguage = ( opts: ModulePublicRuntimeConfig['i18n'] = useRuntimeConfig().public.i18n ) => { @@ -455,3 +456,5 @@ export const runtimeDetectBrowserLanguage = ( return opts?.detectBrowserLanguage } + +/* eslint-enable @typescript-eslint/no-explicit-any */ diff --git a/src/runtime/messages.ts b/src/runtime/messages.ts index 59832e5b8..6be6aa9de 100644 --- a/src/runtime/messages.ts +++ b/src/runtime/messages.ts @@ -19,7 +19,7 @@ export async function loadVueI18nOptions( for (const configFile of vueI18nConfigs) { const { default: resolver } = await configFile() - const resolved = typeof resolver === 'function' ? await nuxt.runWithContext(async () => await resolver()) : resolver + const resolved = isFunction(resolver) ? await nuxt.runWithContext(async () => await resolver()) : resolver deepCopy(resolved, vueI18nOptions) } @@ -73,12 +73,14 @@ async function loadMessage(locale: Locale, { key, load }: LocaleLoader) { let message: LocaleMessages | null = null try { __DEBUG__ && console.log('loadMessage: (locale) -', locale) + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access -- FIXME const getter = await load().then(r => r.default || r) if (isFunction(getter)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call -- FIXME message = await getter(locale) __DEBUG__ && console.log('loadMessage: dynamic load', message) } else { - message = getter + message = getter as LocaleMessages if (message != null && cacheMessages) { cacheMessages.set(key, message) } @@ -86,7 +88,7 @@ async function loadMessage(locale: Locale, { key, load }: LocaleLoader) { } // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (e: any) { - console.error('Failed locale loading: ' + e.message) + console.error('Failed locale loading: ' + (e as Error).message) } return message } @@ -133,9 +135,11 @@ export async function loadAndSetLocaleMessages( // eslint-disable-next-line @typescript-eslint/no-explicit-any const setter = (locale: Locale, message: Record) => { // @ts-expect-error should be able to use `locale` as index + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FIXME const base = messages[locale] || {} deepCopy(message, base) // @ts-expect-error should be able to use `locale` as index + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FIXME messages[locale] = base } diff --git a/src/runtime/plugins/i18n.ts b/src/runtime/plugins/i18n.ts index 627604436..dcc80e995 100644 --- a/src/runtime/plugins/i18n.ts +++ b/src/runtime/plugins/i18n.ts @@ -120,7 +120,7 @@ export default defineNuxtPlugin({ * avoid hydration mismatch for SSG mode */ if (isSSGModeInitialSetup() && runtimeI18n.strategy === 'no_prefix' && import.meta.client) { - nuxt.hook('app:mounted', async () => { + nuxt.hook('app:mounted', () => { __DEBUG__ && console.log('hook app:mounted') const { locale: browserLocale, @@ -209,9 +209,11 @@ export default defineNuxtPlugin({ composer.setLocaleCookie = (locale: string) => _setLocaleCookie(localeCookie, locale, _detectBrowserLanguage) composer.onBeforeLanguageSwitch = (oldLocale, newLocale, initialSetup, context) => - nuxt.callHook('i18n:beforeLocaleSwitch', { oldLocale, newLocale, initialSetup, context }) + nuxt.callHook('i18n:beforeLocaleSwitch', { oldLocale, newLocale, initialSetup, context }) as Promise< + string | void + > composer.onLanguageSwitched = (oldLocale, newLocale) => - nuxt.callHook('i18n:localeSwitched', { oldLocale, newLocale }) + nuxt.callHook('i18n:localeSwitched', { oldLocale, newLocale }) as Promise composer.finalizePendingLocaleChange = async () => { if (!i18n.__pendingLocale) { @@ -219,6 +221,7 @@ export default defineNuxtPlugin({ } setLocale(i18n, i18n.__pendingLocale) if (i18n.__resolvePendingLocalePromise) { + // eslint-disable-next-line @typescript-eslint/await-thenable -- FIXME: `__resolvePendingLocalePromise` should be `Promise` await i18n.__resolvePendingLocalePromise() } i18n.__pendingLocale = undefined @@ -273,7 +276,6 @@ export default defineNuxtPlugin({ }, onBeforeLanguageSwitch: { get() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any return (oldLocale: string, newLocale: string, initialSetup: boolean, context: NuxtApp) => Reflect.apply(g.onBeforeLanguageSwitch, g, [oldLocale, newLocale, initialSetup, context]) } @@ -345,7 +347,6 @@ export default defineNuxtPlugin({ }, onBeforeLanguageSwitch: { get() { - // eslint-disable-next-line @typescript-eslint/no-explicit-any return (oldLocale: string, newLocale: string, initialSetup: boolean, context: NuxtApp) => Reflect.apply(composer.onBeforeLanguageSwitch, composer, [ oldLocale, @@ -408,7 +409,7 @@ export default defineNuxtPlugin({ [ ``, `.+?`, - `` + `` ].join(''), 'g' ) @@ -427,7 +428,7 @@ export default defineNuxtPlugin({ addRouteMiddleware( 'locale-changing', - // eslint-disable-next-line @typescript-eslint/no-unused-vars + defineNuxtRouteMiddleware(async (to, from) => { __DEBUG__ && console.log('locale-changing middleware', to, from) diff --git a/src/runtime/routing/compatibles/head.ts b/src/runtime/routing/compatibles/head.ts index 3aac7667e..69301d952 100644 --- a/src/runtime/routing/compatibles/head.ts +++ b/src/runtime/routing/compatibles/head.ts @@ -5,6 +5,7 @@ import { getRouteBaseName, localeRoute, switchLocalePath } from './routing' import { isArray, isObject } from '@intlify/shared' import { joinURL } from 'ufo' +import type { I18n } from 'vue-i18n' import type { I18nHeadMetaInfo, MetaAttrs, LocaleObject, I18nHeadOptions } from '#build/i18n.options.mjs' import type { CommonComposableOptions } from '../../utils' @@ -74,7 +75,7 @@ export function localeHead( function getBaseUrl() { const nuxtApp = useNuxtApp() - const i18n = getComposer(nuxtApp.$i18n) + const i18n = getComposer(nuxtApp.$i18n as I18n) return joinURL(unref(i18n.baseUrl), nuxtApp.$config.app.baseURL) } diff --git a/src/runtime/routing/compatibles/routing.ts b/src/runtime/routing/compatibles/routing.ts index ff0dda506..d12ccafa0 100644 --- a/src/runtime/routing/compatibles/routing.ts +++ b/src/runtime/routing/compatibles/routing.ts @@ -169,12 +169,14 @@ export function resolveRoute(common: CommonComposableOptions, route: RouteLocati defaultLocaleRouteNameSuffix }), // @ts-ignore + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FIXME params: resolvedRoute.params, query: resolvedRoute.query, hash: resolvedRoute.hash } as RouteLocationNamedRaw // @ts-expect-error + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- FIXME localizedRoute.state = (resolvedRoute as ResolveV4).state } else { // if route has a path defined but no name, resolve full route using the path @@ -222,7 +224,7 @@ function getLocalizableMetaFromDynamicParams( route: RouteLocationNormalizedLoaded ): Record> { if (common.runtimeConfig.public.i18n.experimental.switchLocalePathLinkSSR) { - return unref(common.metaState.value) as Record + return unref(common.metaState.value) } const meta = route.meta || {} diff --git a/src/runtime/routing/extends/i18n.ts b/src/runtime/routing/extends/i18n.ts index 2666859db..414daa876 100644 --- a/src/runtime/routing/extends/i18n.ts +++ b/src/runtime/routing/extends/i18n.ts @@ -77,6 +77,7 @@ export function extendI18n( ) { const scope = effectScope() + // eslint-disable-next-line @typescript-eslint/unbound-method const orgInstall = i18n.install // @ts-ignore i18n.install = (vue: NuxtApp['vueApp'], ...options: unknown[]) => { @@ -128,7 +129,7 @@ export function extendI18n( }) // extend vue component instance for Vue 3 - const app = vue as NuxtApp['vueApp'] + const app = vue // prettier-ignore const exported = i18n.mode === 'composition' @@ -157,6 +158,7 @@ export function extendI18n( // dispose when app will be unmounting if (app.unmount) { + // eslint-disable-next-line @typescript-eslint/unbound-method const unmountApp = app.unmount app.unmount = () => { scope.stop() diff --git a/src/runtime/routing/utils.ts b/src/runtime/routing/utils.ts index 0eb6b1a12..890e05dc4 100644 --- a/src/runtime/routing/utils.ts +++ b/src/runtime/routing/utils.ts @@ -41,6 +41,7 @@ export function getComposer(i18n: I18n | VueI18n | Composer): Composer { const target = getI18nTarget(i18n) if (isComposer(target)) return target + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access if (isVueI18n(target)) return (target as any).__composer as Composer return target @@ -233,7 +234,7 @@ export function findBrowserLocale( locales: LocaleObject[], browserLocales: string[], { matcher = DefaultBrowserLocaleMatcher, comparer = DefaultBrowerLocaleComparer }: FindBrowserLocaleOptions = {} -): string | '' { +): string { const normalizedLocales = [] for (const l of locales) { const { code } = l diff --git a/src/runtime/server/plugin.ts b/src/runtime/server/plugin.ts index f50a18dfe..26a989da8 100644 --- a/src/runtime/server/plugin.ts +++ b/src/runtime/server/plugin.ts @@ -7,17 +7,19 @@ import { localeDetector as _localeDetector } from '#internal/i18n/locale.detecto import { loadVueI18nOptions, loadInitialMessages, makeFallbackLocaleCodes, loadAndSetLocaleMessages } from '../messages' import type { H3Event } from 'h3' -import type { Locale, FallbackLocale, DefineLocaleMessage } from 'vue-i18n' +import type { Locale, DefineLocaleMessage } from 'vue-i18n' import type { CoreContext } from '@intlify/h3' import type { NuxtApp } from 'nuxt/app' +// eslint-disable-next-line @typescript-eslint/no-unsafe-return const nuxtMock: { runWithContext: NuxtApp['runWithContext'] } = { runWithContext: async fn => await fn() } +// eslint-disable-next-line @typescript-eslint/no-misused-promises export default defineNitroPlugin(async nitro => { // `defineI18nMiddleware` options (internally, options passed to`createCoreContext` in intlify / core) are compatible with vue-i18n options - const options = (await loadVueI18nOptions(vueI18nConfigs, nuxtMock)) as any // eslint-disable-line @typescript-eslint/no-explicit-any + const options = await loadVueI18nOptions(vueI18nConfigs, nuxtMock) options.messages = options.messages || {} - const fallbackLocale = (options.fallbackLocale = options.fallbackLocale ?? false) as FallbackLocale + const fallbackLocale = (options.fallbackLocale = options.fallbackLocale ?? false) const runtimeI18n = useRuntimeConfig().public.i18n const initialLocale = runtimeI18n.defaultLocale || options.locale || 'en-US' @@ -35,7 +37,11 @@ export default defineNitroPlugin(async nitro => { event: H3Event, i18nContext: CoreContext ): Promise => { - const locale = _localeDetector(event, { defaultLocale: initialLocale, fallbackLocale: options.fallbackLocale }) + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + const locale = _localeDetector(event, { + defaultLocale: initialLocale, + fallbackLocale: options.fallbackLocale + }) as Locale if (runtimeI18n.lazy) { if (fallbackLocale) { const fallbackLocales = makeFallbackLocaleCodes(fallbackLocale, [locale]) @@ -51,7 +57,7 @@ export default defineNitroPlugin(async nitro => { const { onRequest, onAfterResponse } = defineI18nMiddleware({ ...options, locale: localeDetector - }) + } as any) // eslint-disable-line @typescript-eslint/no-explicit-any -- FIXME: option type should be exported `@intlify/h3` nitro.hooks.hook('request', onRequest) nitro.hooks.hook('afterResponse', onAfterResponse) diff --git a/src/runtime/utils.ts b/src/runtime/utils.ts index 8a1f84da7..dea05ddd9 100644 --- a/src/runtime/utils.ts +++ b/src/runtime/utils.ts @@ -47,37 +47,51 @@ import type { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue import type { RuntimeConfig } from '@nuxt/schema' import type { ModulePublicRuntimeConfig } from '../module' -export function _setLocale(i18n: I18n, locale: Locale) { +export function _setLocale(i18n: I18n, locale: Locale): ReturnType { return callVueI18nInterfaces(i18n, 'setLocale', locale) } -export function setCookieLocale(i18n: I18n, locale: Locale) { +export function setCookieLocale(i18n: I18n, locale: Locale): ReturnType { return callVueI18nInterfaces(i18n, 'setLocaleCookie', locale) } -export function setLocaleMessage(i18n: I18n, locale: Locale, messages: Record) { +export function setLocaleMessage( + i18n: I18n, + locale: Locale, + messages: Record +): ReturnType { return callVueI18nInterfaces(i18n, 'setLocaleMessage', locale, messages) } -export function mergeLocaleMessage(i18n: I18n, locale: Locale, messages: Record) { +export function mergeLocaleMessage( + i18n: I18n, + locale: Locale, + messages: Record +): ReturnType { return callVueI18nInterfaces(i18n, 'mergeLocaleMessage', locale, messages) } -function onBeforeLanguageSwitch( +// eslint-disable-next-line @typescript-eslint/require-await +async function onBeforeLanguageSwitch( i18n: I18n, oldLocale: string, newLocale: string, initial: boolean, context: NuxtApp -): string | void { - return callVueI18nInterfaces(i18n, 'onBeforeLanguageSwitch', oldLocale, newLocale, initial, context) +): Promise { + return callVueI18nInterfaces(i18n, 'onBeforeLanguageSwitch', oldLocale, newLocale, initial, context) } -export function onLanguageSwitched(i18n: I18n, oldLocale: string, newLocale: string): void { +export function onLanguageSwitched( + i18n: I18n, + oldLocale: string, + newLocale: string +): ReturnType { return callVueI18nInterfaces(i18n, 'onLanguageSwitched', oldLocale, newLocale) } -export async function finalizePendingLocaleChange(i18n: I18n) { +// eslint-disable-next-line @typescript-eslint/require-await +export async function finalizePendingLocaleChange(i18n: I18n): Promise> { return callVueI18nInterfaces(i18n, 'finalizePendingLocaleChange') } @@ -95,7 +109,7 @@ export type CommonComposableOptions = { } export function initCommonComposableOptions(i18n?: I18n): CommonComposableOptions { return { - i18n: i18n ?? useNuxtApp().$i18n, + i18n: i18n ?? (useNuxtApp().$i18n as I18n), router: useRouter(), runtimeConfig: useRuntimeConfig(), metaState: useState>('nuxt-i18n-meta', () => ({})) @@ -158,7 +172,8 @@ export async function loadAndSetLocale( if (lazy) { const i18nFallbackLocales = getVueI18nPropertyValue(i18n, 'fallbackLocale') - const setter = (locale: Locale, message: Record) => mergeLocaleMessage(i18n, locale, message) + const setter = (locale: Locale, message: Record): ReturnType => + mergeLocaleMessage(i18n, locale, message) if (i18nFallbackLocales) { const fallbackLocales = makeFallbackLocaleCodes(i18nFallbackLocales, [newLocale]) await Promise.all(fallbackLocales.map(locale => loadLocale(locale, localeLoaders, setter))) @@ -463,7 +478,7 @@ export function extendBaseUrl(): BaseUrlResolveHandler { return baseUrlResult } - const localeCode = isFunction(defaultLocale) ? defaultLocale() : defaultLocale + const localeCode = isFunction(defaultLocale) ? (defaultLocale() as string) : defaultLocale if (differentDomains && localeCode) { const domain = getDomainFromLocale(localeCode) if (domain) { diff --git a/src/template.ts b/src/template.ts index 472ea7447..22cb72a22 100644 --- a/src/template.ts +++ b/src/template.ts @@ -25,11 +25,15 @@ export const localeCodes = ${JSON.stringify(options.localeCodes, null, 2)} export const localeLoaders = { ${options.localeLoaders .map(([key, val]) => { + // @ts-expect-error -- FIXME + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call -- FIXME return ` "${key}": [${val + // @ts-expect-error -- FIXME .map( (entry: { key: string; load: string; cache: boolean }) => `{ key: ${entry.key}, load: ${entry.load}, cache: ${entry.cache} }` ) + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- FIXME .join(',\n')}]` }) .join(',\n')} diff --git a/src/transform/i18n-function-injection.ts b/src/transform/i18n-function-injection.ts index 7b9e59a83..462590d45 100644 --- a/src/transform/i18n-function-injection.ts +++ b/src/transform/i18n-function-injection.ts @@ -42,7 +42,7 @@ export const TransformI18nFunctionPlugin = createUnplugin((options: TransformI18 return isVue(id, { type: ['script'] }) }, - async transform(code, id) { + transform(code, id) { debug('transform', id) // only transform if translation functions are present @@ -130,7 +130,7 @@ export const TransformI18nFunctionPlugin = createUnplugin((options: TransformI18 s.overwrite( scriptSetup.loc.start.offset, scriptSetup.loc.end.offset, - `\nconst { ${assignments.join(', ')} } = useI18n()\n` + scriptSetup!.content + `\nconst { ${assignments.join(', ')} } = useI18n()\n` + scriptSetup.content ) } diff --git a/src/transform/resource.ts b/src/transform/resource.ts index 4d4c1f9f4..23f69fd90 100644 --- a/src/transform/resource.ts +++ b/src/transform/resource.ts @@ -52,8 +52,7 @@ export const ResourcePlugin = createUnplugin((options: ResourcePluginOptions) => const matches = code.matchAll(new RegExp(`\\b${pattern}\\s*`, 'g')) for (const match of matches) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - s.remove(match.index!, match.index! + match[0].length) + s.remove(match.index, match.index + match[0].length) } return result() diff --git a/src/transform/utils.ts b/src/transform/utils.ts index fe3713e1d..315978d4e 100644 --- a/src/transform/utils.ts +++ b/src/transform/utils.ts @@ -3,8 +3,8 @@ import { parseQuery, parseURL } from 'ufo' import type { UnpluginContextMeta } from 'unplugin' -export const VIRTUAL_PREFIX = '\0' as const -export const VIRTUAL_PREFIX_HEX = '\x00' as const +export const VIRTUAL_PREFIX = '\0' +export const VIRTUAL_PREFIX_HEX = '\x00' export function getVirtualId(id: string, framework: UnpluginContextMeta['framework'] = 'vite') { // prettier-ignore diff --git a/src/types.ts b/src/types.ts index d32d4c857..d7b479d48 100644 --- a/src/types.ts +++ b/src/types.ts @@ -36,7 +36,11 @@ export type LocaleInfo = { paths?: string[] hashes?: string[] types?: LocaleType[] -} & Omit & { files: LocaleFile[]; meta?: (FileMeta & { file: LocaleFile })[] } +} & Omit & { + code: Locale + files: LocaleFile[] + meta?: (FileMeta & { file: LocaleFile })[] + } export type FileMeta = { path: string diff --git a/src/utils.ts b/src/utils.ts index 96d3c581b..28d43bcd5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -79,7 +79,6 @@ export async function resolveLocales( const find = (f: string) => files.find(file => file === resolve(path, f)) const localesResolved: LocaleInfo[] = [] - // eslint-disable-next-line @typescript-eslint/no-unused-vars for (const { file, ...locale } of locales) { const resolved: LocaleInfo = { ...locale, files: [], meta: undefined } const files = getLocaleFiles(locale) @@ -135,7 +134,6 @@ const PARSE_CODE_CACHES = new Map>() function parseCode(code: string, path: string) { if (PARSE_CODE_CACHES.has(path)) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return PARSE_CODE_CACHES.get(path)! } @@ -185,7 +183,7 @@ function scanProgram(program: File['program'] /*, calleeName: string*/) { for (const decl of node.declarations) { if (decl.type !== 'VariableDeclarator') continue if (decl.init == null) continue - if ('name' in decl.id === false || decl.id.name !== variableDeclaration!.name) continue + if ('name' in decl.id === false || decl.id.name !== variableDeclaration.name) continue if (decl.init.type === 'ObjectExpression') { ret = 'object' @@ -244,7 +242,7 @@ export async function isExists(path: string) { try { await fs.access(path, FS_CONSTANTS.F_OK) return true - } catch (e) { + } catch (_e) { return false } } @@ -314,7 +312,9 @@ export function toCode(code: any): string { return code.toString() } + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access if (isFunction(code) && code.toString) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access return `(${code.toString().replace(new RegExp(`^${code.name}`), 'function ')})` } @@ -460,14 +460,13 @@ export const resolveRelativeLocales = ( locale: LocaleObject | string, merged: LocaleObject | undefined ) => { - if (typeof locale === 'string') return merged ?? { iso: locale, code: locale } + if (isString(locale)) return merged ?? { iso: locale, code: locale } - // eslint-disable-next-line @typescript-eslint/no-unused-vars const { file, files, ...entry } = locale const fileEntries = getLocaleFiles(locale) const relativeFiles = relativeFileResolver(fileEntries) - const mergedLocaleObject = typeof merged === 'string' ? undefined : merged + const mergedLocaleObject = isString(merged) ? undefined : merged return { ...entry, ...mergedLocaleObject, @@ -478,11 +477,11 @@ export const resolveRelativeLocales = ( export const getLocalePaths = (locale: LocaleObject): string[] => { if (locale.file != null) { - return [locale.file as unknown as LocaleFile].map(x => (typeof x === 'string' ? x : x.path)) + return [locale.file as unknown as LocaleFile].map(x => (isString(x) ? x : x.path)) } if (locale.files != null) { - return [...locale.files].map(x => (typeof x === 'string' ? x : x.path)) + return [...locale.files].map(x => (isString(x) ? x : x.path)) } return [] @@ -490,12 +489,11 @@ export const getLocalePaths = (locale: LocaleObject): string[] => { export const getLocaleFiles = (locale: LocaleObject | LocaleInfo): LocaleFile[] => { if (locale.file != null) { - // @ts-ignore - return [locale.file].map(x => (typeof x === 'string' ? { path: x, cache: undefined } : x)) + return [locale.file].map(x => (isString(x) ? { path: x, cache: undefined } : (x as LocaleFile))) } if (locale.files != null) { - return [...locale.files].map(x => (typeof x === 'string' ? { path: x, cache: undefined } : x)) + return [...locale.files].map(x => (isString(x) ? { path: x, cache: undefined } : x)) } return [] @@ -528,7 +526,7 @@ export const mergeConfigLocales = (configs: LocaleConfig[], baseLocales: LocaleO const mergedLocales = new Map() baseLocales.forEach(locale => mergedLocales.set(locale.code, locale)) - const getLocaleCode = (val: string | LocaleObject) => (typeof val === 'string' ? val : val.code) + const getLocaleCode = (val: string | LocaleObject) => (isString(val) ? val : val.code) for (const { locales, langDir, projectLangDir } of configs) { if (locales == null) continue diff --git a/test/gen.test.ts b/test/gen.test.ts index ffd6c68b3..674aea73e 100644 --- a/test/gen.test.ts +++ b/test/gen.test.ts @@ -231,7 +231,7 @@ test('toCode: function (arrow)', async () => { const vueI18nConfig = await resolveVueI18nConfigInfo({ vueI18n: NUXT_I18N_VUE_I18N_CONFIG.relative }, '.nuxt', '.') const localeInfo = LOCALE_INFO.map(locale => ({ ...locale, - testFunc: (prop: unknown) => { + testFunc: (prop: string) => { return `Hello ${prop}` } })) @@ -253,7 +253,7 @@ test('toCode: function (named)', async () => { const vueI18nConfig = await resolveVueI18nConfigInfo({ vueI18n: NUXT_I18N_VUE_I18N_CONFIG.relative }, '.nuxt', '.') const localeInfo = LOCALE_INFO.map(locale => ({ ...locale, - testFunc(prop: unknown) { + testFunc(prop: string) { return `Hello ${prop}` } })) diff --git a/test/pages/custom_route.test.ts b/test/pages/custom_route.test.ts index d4370cf20..364dee726 100644 --- a/test/pages/custom_route.test.ts +++ b/test/pages/custom_route.test.ts @@ -113,7 +113,7 @@ describe.each([ ] } ])('Module configuration', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { vi.spyOn(fs, 'readFileSync').mockReturnValue('') const srcDir = '/path/to/nuxt-app' @@ -183,7 +183,7 @@ describe.each([ ] } ])('Page components', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { const srcDir = '/path/to/nuxt-app' const pagesDir = 'pages' const ctx: NuxtPageAnalyzeContext = { @@ -203,7 +203,7 @@ describe.each([ }) }) -test('#1649', async () => { +test('#1649', () => { const pages = [ { path: '/account', diff --git a/test/pages/ignore_route/disable.test.ts b/test/pages/ignore_route/disable.test.ts index a649e3d4e..cc2b2821c 100644 --- a/test/pages/ignore_route/disable.test.ts +++ b/test/pages/ignore_route/disable.test.ts @@ -114,7 +114,7 @@ describe.each([ ] } ])('Module configuration', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { vi.spyOn(fs, 'readFileSync').mockReturnValue('') const srcDir = '/path/to/nuxt-app' @@ -150,7 +150,7 @@ describe.each([ ] } ])('Page components', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { const srcDir = '/path/to/nuxt-app' const pagesDir = 'pages' const ctx: NuxtPageAnalyzeContext = { diff --git a/test/pages/ignore_route/pick.test.ts b/test/pages/ignore_route/pick.test.ts index 14ca0a385..d1f940f80 100644 --- a/test/pages/ignore_route/pick.test.ts +++ b/test/pages/ignore_route/pick.test.ts @@ -132,7 +132,7 @@ describe.each([ ] } ])('Module configuration', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { vi.spyOn(fs, 'readFileSync').mockReturnValue('') const srcDir = '/path/to/nuxt-app' @@ -180,7 +180,7 @@ describe.each([ ] } ])('Page components', ({ case: _case, options, pages }) => { - test(_case, async () => { + test(_case, () => { const srcDir = '/path/to/nuxt-app' const pagesDir = 'pages' const ctx: NuxtPageAnalyzeContext = {