From c1d95617e4d58e6d3e3cb877932b0688bc9bc464 Mon Sep 17 00:00:00 2001 From: strawberry-choco Date: Mon, 7 Oct 2024 09:23:31 +0200 Subject: [PATCH] migrate vue config (#237) Signed-off-by: Kangrui Johann Ye --- eslint.config.mjs | 6 +- package.json | 5 +- packages/eslint-plugin-typescript/README.md | 34 +- .../eslint-plugin-typescript/package.json | 1 - .../eslint-plugin-typescript/src/index.ts | 3 +- packages/eslint-plugin-vue/README.md | 41 +- packages/eslint-plugin-vue/package.json | 10 +- .../eslint-plugin-vue/src/configs/index.ts | 7 - .../configs/recommended/recommended.config.ts | 58 --- .../src/configs/typescript.ts | 7 + packages/eslint-plugin-vue/src/configs/vue.ts | 30 ++ packages/eslint-plugin-vue/src/index.ts | 30 +- packages/eslint-plugin-vue/src/rules/index.ts | 3 - yarn.lock | 381 ++---------------- 14 files changed, 166 insertions(+), 450 deletions(-) delete mode 100644 packages/eslint-plugin-vue/src/configs/index.ts delete mode 100644 packages/eslint-plugin-vue/src/configs/recommended/recommended.config.ts create mode 100644 packages/eslint-plugin-vue/src/configs/typescript.ts create mode 100644 packages/eslint-plugin-vue/src/configs/vue.ts delete mode 100644 packages/eslint-plugin-vue/src/rules/index.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index c26b7ec..bbf58d9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,7 +2,7 @@ import tseslint from 'typescript-eslint'; import {includeIgnoreFile} from '@eslint/compat'; import {dirname, resolve} from 'node:path'; import {fileURLToPath} from 'node:url'; -import { config } from '@cloudflight/eslint-plugin-typescript'; +import { cloudflightTypescriptConfig } from '@cloudflight/eslint-plugin-typescript'; const filename = fileURLToPath(import.meta.url); const directory = dirname(filename); @@ -17,7 +17,6 @@ export default tseslint.config( 'packages/eslint-plugin-angular/*', 'packages/eslint-plugin-node/*', 'packages/eslint-plugin-react/*', - 'packages/eslint-plugin-vue/*', 'packages/eslint-plugin-typescript/src/configs/index.ts', 'packages/eslint-plugin-typescript/src/configs/recommended/*', 'packages/eslint-plugin-typescript/src/configs/recommended-json/*', @@ -30,9 +29,10 @@ export default tseslint.config( 'scripts/*', '.eslintrc.format.js', 'eslint.config.mjs', + 'jest.config*.ts', ] }, - ...config, + ...cloudflightTypescriptConfig, { languageOptions: { parserOptions: { diff --git a/package.json b/package.json index bf9014a..fc3c58d 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@typescript-eslint/eslint-plugin": "8.8.0", "@typescript-eslint/parser": "8.8.0", "@typescript-eslint/utils": "8.8.0", - "@vue/eslint-config-typescript": "13.0.0", + "@vue/eslint-config-typescript": "14.0.0", "eslint": "9.11.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-json-es": "1.6.0", @@ -52,8 +52,7 @@ "eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-rxjs": "5.0.3", "eslint-plugin-security": "3.0.0", - "eslint-plugin-vue": "9.25.0", - "globals": "15.10.0", + "eslint-plugin-vue": "9.28.0", "husky": "9.1.6", "jest": "29.7.0", "lint-staged": "15.2.10", diff --git a/packages/eslint-plugin-typescript/README.md b/packages/eslint-plugin-typescript/README.md index 09b185b..743263e 100644 --- a/packages/eslint-plugin-typescript/README.md +++ b/packages/eslint-plugin-typescript/README.md @@ -24,16 +24,30 @@ In your `package.json` add the following: } ``` -Now open your `.eslintrc.js` and add the following: - -``` -require('@rushstack/eslint-patch/modern-module-resolution'); - -module.exports = { - ... - extends: ['plugin:@cloudflight/typescript/recommended'], - ... -}; +Now open your `eslint.config.mts` and add one of the configurations: + +```ts +import { cloudflightTypescriptConfig } from '@cloudflight/eslint-plugin-typescript'; +import { includeIgnoreFile } from '@eslint/compat'; +import { dirname, normalize, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const gitignorePath = normalize(resolve(__dirname, '.gitignore')); + +export default [ + includeIgnoreFile(gitignorePath), + ...cloudflightTypescriptConfig, + { + languageOptions: { + parserOptions: { + project: ['tsconfig.*?.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +]; ``` When executing your next `eslint .` it will now validate your code against the cloudflight-recommended rules. diff --git a/packages/eslint-plugin-typescript/package.json b/packages/eslint-plugin-typescript/package.json index e5644b4..46bc31d 100644 --- a/packages/eslint-plugin-typescript/package.json +++ b/packages/eslint-plugin-typescript/package.json @@ -34,7 +34,6 @@ "eslint-plugin-json-es": "^1.6.0", "eslint-plugin-rxjs": "^5.0.3", "eslint-plugin-simple-import-sort": "^12.1.0", - "globals": "^15.10.0", "typescript-eslint": "^8.8.0" }, "peerDependencies": { diff --git a/packages/eslint-plugin-typescript/src/index.ts b/packages/eslint-plugin-typescript/src/index.ts index b3accab..ed84838 100644 --- a/packages/eslint-plugin-typescript/src/index.ts +++ b/packages/eslint-plugin-typescript/src/index.ts @@ -5,10 +5,9 @@ import {typescriptEslintRules} from './configs/recommended-typescript/rules/type import {customRules} from './configs/recommended-typescript/rules/custom'; import {cloudflightTypescriptPlugin} from './rules'; -export const config = tseslint.config( +export const cloudflightTypescriptConfig = tseslint.config( { files: ['**/*.{js,mjs,cjs,ts,mts,cts}'], - ignores: ['jest.config*.ts'], plugins: { '@cloudflight/typescript': cloudflightTypescriptPlugin, }, diff --git a/packages/eslint-plugin-vue/README.md b/packages/eslint-plugin-vue/README.md index 13c12aa..a3754b6 100644 --- a/packages/eslint-plugin-vue/README.md +++ b/packages/eslint-plugin-vue/README.md @@ -9,7 +9,6 @@ You can find the directory of all rules including their reasoning [here](src/con The following dependencies are required: ``` -"@cloudflight/eslint-plugin-typescript": ">=0.26.0", "eslint": ">=9.0.0 < 10.0.0" ``` @@ -25,22 +24,28 @@ In your `package.json` add the following: } ``` -The plugin provides 1 configuration: - -- @cloudflight/vue/recommended - - Contains rules for Vuejs files - -Now open your `.eslintrc.js` and add one of the configurations: - -``` -require('@rushstack/eslint-patch/modern-module-resolution'); - -module.exports = { - ... - extends: ['plugin:@cloudflight/vue/recommended'], - parserOptions: { - parser: '@typescript-eslint/parser', +Now open your `eslint.config.mts` and add one of the configurations: + +```ts +import { cloudflightVueConfig } from '@cloudflight/eslint-plugin-vue'; +import { includeIgnoreFile } from '@eslint/compat'; +import { dirname, normalize, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const gitignorePath = normalize(resolve(__dirname, '.gitignore')); + +export default [ + includeIgnoreFile(gitignorePath), + ...cloudflightVueConfig, + { + languageOptions: { + parserOptions: { + project: ['tsconfig.*?.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, }, - ... -}; +]; ``` diff --git a/packages/eslint-plugin-vue/package.json b/packages/eslint-plugin-vue/package.json index f023b9d..9440aee 100644 --- a/packages/eslint-plugin-vue/package.json +++ b/packages/eslint-plugin-vue/package.json @@ -22,20 +22,18 @@ "publishConfig": { "access": "public" }, - "private": true, "scripts": { - "build-packagex": "tsc" + "build-package": "tsc" }, "dependencies": { - "@vue/eslint-config-typescript": "^13.0.0", - "eslint-plugin-vue": "^9.25.0" + "@cloudflight/eslint-plugin-typescript": "workspace:*", + "@vue/eslint-config-typescript": "^14.0.0", + "eslint-plugin-vue": "^9.28.0" }, "peerDependencies": { - "@cloudflight/eslint-plugin-typescript": "workspace:*", "eslint": ">=9.0.0 < 10.0.0" }, "devDependencies": { - "@cloudflight/eslint-plugin-typescript": "workspace:*", "typescript": "5.5.4" } } diff --git a/packages/eslint-plugin-vue/src/configs/index.ts b/packages/eslint-plugin-vue/src/configs/index.ts deleted file mode 100644 index 020dd45..0000000 --- a/packages/eslint-plugin-vue/src/configs/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -import {RecommendedConfig} from './recommended/recommended.config'; - -export const configs: Record = { - recommended: RecommendedConfig, -}; diff --git a/packages/eslint-plugin-vue/src/configs/recommended/recommended.config.ts b/packages/eslint-plugin-vue/src/configs/recommended/recommended.config.ts deleted file mode 100644 index f0e57fb..0000000 --- a/packages/eslint-plugin-vue/src/configs/recommended/recommended.config.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {configs} from '@cloudflight/eslint-plugin-typescript'; -import {TSESLint} from '@typescript-eslint/utils'; - -const htmlIndent = 4; - -const recommendedConfigs = configs['recommended-typescript']; -const rules = recommendedConfigs != null && isFlatConfigArray(recommendedConfigs) ? - mergeRules(recommendedConfigs) : - recommendedConfigs?.rules; - -export const RecommendedConfig: TSESLint.Linter.ConfigType = { - extends: [ - 'plugin:@cloudflight/typescript/recommended', - 'plugin:vue/vue3-recommended', - '@vue/eslint-config-typescript', - ], - rules: { - ...rules, - // vue.js components have the any type when used with typescript import - // such as `import MyComponent from './my-component.vue'` - '@typescript-eslint/no-unsafe-assignment': 'off', - 'vue/block-lang': [ - 'error', - { - script: { - lang: 'ts', - }, - style: { - lang: 'scss', - }, - }, - ], - 'vue/component-api-style': ['error', ['script-setup', 'composition']], - 'vue/define-emits-declaration': ['error', 'type-based'], - 'vue/define-props-declaration': ['error', 'type-based'], - 'vue/define-macros-order': [ - 'error', - { - order: ['defineProps', 'defineEmits'], - }, - ], - 'vue/html-button-has-type': 'error', - 'vue/html-indent': ['error', htmlIndent], - 'vue/no-ref-object-destructure': 'error', - 'vue/no-undef-properties': 'error', - }, -}; - -function mergeRules(configArray: TSESLint.FlatConfig.ConfigArray): TSESLint.FlatConfig.Rules { - return configArray.reduce((acc, config) => ({ - ...acc, - ...config.rules, - }), {}); -} - -function isFlatConfigArray(config: TSESLint.Linter.ConfigType): config is TSESLint.FlatConfig.ConfigArray { - return Array.isArray(config); -} diff --git a/packages/eslint-plugin-vue/src/configs/typescript.ts b/packages/eslint-plugin-vue/src/configs/typescript.ts new file mode 100644 index 0000000..211a764 --- /dev/null +++ b/packages/eslint-plugin-vue/src/configs/typescript.ts @@ -0,0 +1,7 @@ +import {TSESLint} from '@typescript-eslint/utils'; + +export const typescriptRules: TSESLint.Linter.RulesRecord = { + // vue.js components have the any type when used with typescript import + // such as `import MyComponent from './my-component.vue'` + '@typescript-eslint/no-unsafe-assignment': 'off', +}; diff --git a/packages/eslint-plugin-vue/src/configs/vue.ts b/packages/eslint-plugin-vue/src/configs/vue.ts new file mode 100644 index 0000000..135b769 --- /dev/null +++ b/packages/eslint-plugin-vue/src/configs/vue.ts @@ -0,0 +1,30 @@ +import {TSESLint} from '@typescript-eslint/utils'; + +const htmlIndent = 4; + +export const vueRules: TSESLint.Linter.RulesRecord = { + 'vue/block-lang': [ + 'error', + { + script: { + lang: 'ts', + }, + style: { + lang: 'scss', + }, + }, + ], + 'vue/component-api-style': ['error', ['script-setup', 'composition']], + 'vue/define-emits-declaration': ['error', 'type-based'], + 'vue/define-props-declaration': ['error', 'type-based'], + 'vue/define-macros-order': [ + 'error', + { + order: ['defineProps', 'defineEmits'], + }, + ], + 'vue/html-button-has-type': 'error', + 'vue/html-indent': ['error', htmlIndent], + 'vue/no-ref-object-destructure': 'error', + 'vue/no-undef-properties': 'error', +}; diff --git a/packages/eslint-plugin-vue/src/index.ts b/packages/eslint-plugin-vue/src/index.ts index 89dfc7c..dc694a9 100644 --- a/packages/eslint-plugin-vue/src/index.ts +++ b/packages/eslint-plugin-vue/src/index.ts @@ -1,2 +1,28 @@ -export {configs} from './configs'; -export {rules} from './rules'; +import tseslint from 'typescript-eslint'; +import { cloudflightTypescriptConfig } from '@cloudflight/eslint-plugin-typescript'; +import {TSESLint} from '@typescript-eslint/utils'; +// @ts-expect-error .d.ts file for eslint-plugin-vue has been implemented but not released yet +// if the following line fails to build after updating the version, simply remove this comment +import pluginVue from 'eslint-plugin-vue'; +import vueTsEslintConfig from '@vue/eslint-config-typescript'; +import {typescriptRules} from './configs/typescript'; +import {vueRules} from './configs/vue'; + +export const cloudflightVueConfig = tseslint.config( + ...cloudflightTypescriptConfig, + { + files: ['**/*.vue'], + extends: [ + ...cloudflightTypescriptConfig, + // .d.ts file for eslint-plugin-vue has been implemented but not released yet, if the + // following line fails to build after updating the version, simply remove this comment + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/consistent-type-assertions + ...pluginVue.configs['flat/recommended'] as TSESLint.FlatConfig.ConfigArray, + ...vueTsEslintConfig(), + ], + rules: { + ...typescriptRules, + ...vueRules, + } + }, +); diff --git a/packages/eslint-plugin-vue/src/rules/index.ts b/packages/eslint-plugin-vue/src/rules/index.ts deleted file mode 100644 index 504bd69..0000000 --- a/packages/eslint-plugin-vue/src/rules/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -export const rules: Record> = {}; diff --git a/yarn.lock b/yarn.lock index 6a727de..a53ea2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -542,7 +542,6 @@ __metadata: eslint-plugin-json-es: "npm:^1.6.0" eslint-plugin-rxjs: "npm:^5.0.3" eslint-plugin-simple-import-sort: "npm:^12.1.0" - globals: "npm:^15.10.0" typescript: "npm:5.5.4" typescript-eslint: "npm:^8.8.0" peerDependencies: @@ -555,11 +554,10 @@ __metadata: resolution: "@cloudflight/eslint-plugin-vue@workspace:packages/eslint-plugin-vue" dependencies: "@cloudflight/eslint-plugin-typescript": "workspace:*" - "@vue/eslint-config-typescript": "npm:^13.0.0" - eslint-plugin-vue: "npm:^9.25.0" + "@vue/eslint-config-typescript": "npm:^14.0.0" + eslint-plugin-vue: "npm:^9.28.0" typescript: "npm:5.5.4" peerDependencies: - "@cloudflight/eslint-plugin-typescript": "workspace:*" eslint: ">=9.0.0 < 10.0.0" languageName: unknown linkType: soft @@ -581,7 +579,7 @@ __metadata: "@typescript-eslint/eslint-plugin": "npm:8.8.0" "@typescript-eslint/parser": "npm:8.8.0" "@typescript-eslint/utils": "npm:8.8.0" - "@vue/eslint-config-typescript": "npm:13.0.0" + "@vue/eslint-config-typescript": "npm:14.0.0" eslint: "npm:9.11.1" eslint-plugin-import: "npm:2.29.1" eslint-plugin-json-es: "npm:1.6.0" @@ -592,8 +590,7 @@ __metadata: eslint-plugin-react-hooks: "npm:4.6.2" eslint-plugin-rxjs: "npm:5.0.3" eslint-plugin-security: "npm:3.0.0" - eslint-plugin-vue: "npm:9.25.0" - globals: "npm:15.10.0" + eslint-plugin-vue: "npm:9.28.0" husky: "npm:9.1.6" jest: "npm:29.7.0" lint-staged: "npm:15.2.10" @@ -624,27 +621,13 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.11.0": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": version: 4.11.1 resolution: "@eslint-community/regexpp@npm:4.11.1" checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8 languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1": - version: 4.6.2 - resolution: "@eslint-community/regexpp@npm:4.6.2" - checksum: 10c0/da800788298f8419f4c4e04eaa4e3c97e7f57537e822e7b150de662e420e3d437816b863e490807bd0b00e715b0989f9d8864bf54357cbcfa84e4255b910789d - languageName: node - linkType: hard - "@eslint/compat@npm:1.1.1": version: 1.1.1 resolution: "@eslint/compat@npm:1.1.1" @@ -1210,14 +1193,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d - languageName: node - linkType: hard - -"@types/estree@npm:1.0.6, @types/estree@npm:^1.0.6": +"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a @@ -1282,16 +1258,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 20.11.25 - resolution: "@types/node@npm:20.11.25" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/3a65a0469309d503e572a3198d81c9248876236b1bcc0c9943e995cfa536df7ce9a9302638258984877420d1613167a8a82dbfb3a92197319fb79ebebf9abc83 - languageName: node - linkType: hard - -"@types/node@npm:20.16.10": +"@types/node@npm:*, @types/node@npm:20.16.10": version: 20.16.10 resolution: "@types/node@npm:20.16.10" dependencies: @@ -1330,7 +1297,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.8.0, @typescript-eslint/eslint-plugin@npm:^8.8.0": +"@typescript-eslint/eslint-plugin@npm:8.8.0, @typescript-eslint/eslint-plugin@npm:^8.6.0, @typescript-eslint/eslint-plugin@npm:^8.8.0": version: 8.8.0 resolution: "@typescript-eslint/eslint-plugin@npm:8.8.0" dependencies: @@ -1353,31 +1320,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1" - dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.1.1" - "@typescript-eslint/type-utils": "npm:7.1.1" - "@typescript-eslint/utils": "npm:7.1.1" - "@typescript-eslint/visitor-keys": "npm:7.1.1" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" - natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/041799604176bbee01f6ff029c5e2fcf1196db2737ba219a20b095f095dc0064ea425d15dd6dc22eaef294daa838209601ec7bc19317258dfa89a13afb8126ba - languageName: node - linkType: hard - "@typescript-eslint/experimental-utils@npm:^5.0.0": version: 5.58.0 resolution: "@typescript-eslint/experimental-utils@npm:5.58.0" @@ -1389,7 +1331,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.8.0, @typescript-eslint/parser@npm:^8.8.0": +"@typescript-eslint/parser@npm:8.8.0, @typescript-eslint/parser@npm:^8.6.0, @typescript-eslint/parser@npm:^8.8.0": version: 8.8.0 resolution: "@typescript-eslint/parser@npm:8.8.0" dependencies: @@ -1407,24 +1349,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/parser@npm:7.1.1" - dependencies: - "@typescript-eslint/scope-manager": "npm:7.1.1" - "@typescript-eslint/types": "npm:7.1.1" - "@typescript-eslint/typescript-estree": "npm:7.1.1" - "@typescript-eslint/visitor-keys": "npm:7.1.1" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/84eb44f3767aaa1d7b26176348c89bd6732bc711f7f24186b1354eba95bf9e9c65b5675838772b831391210e525ff1f3bd4b51a3130ec35413aa362920effc57 - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:5.58.0": version: 5.58.0 resolution: "@typescript-eslint/scope-manager@npm:5.58.0" @@ -1435,16 +1359,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/scope-manager@npm:7.1.1" - dependencies: - "@typescript-eslint/types": "npm:7.1.1" - "@typescript-eslint/visitor-keys": "npm:7.1.1" - checksum: 10c0/a955c8529f24945d448b95982d06b5f15a74fc5df97307f5821d55e9861d6c26d61cbd118c1ca41634164ed1d4f6c74fcb8388761341c49e6902a6fb72036afc - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/scope-manager@npm:7.2.0" @@ -1465,23 +1379,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/type-utils@npm:7.1.1" - dependencies: - "@typescript-eslint/typescript-estree": "npm:7.1.1" - "@typescript-eslint/utils": "npm:7.1.1" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/6f19dc383718cce42ed7262d134f5f0221bcbf225fea28975cd714c90e57d861608d5187c7ad731f6281813f94b00f22282a99a8a852167366064abc6e256341 - languageName: node - linkType: hard - "@typescript-eslint/type-utils@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/type-utils@npm:7.2.0" @@ -1521,13 +1418,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/types@npm:7.1.1" - checksum: 10c0/2bef95ec0c60e67fada336db3e82fac2be16c21a9e54fc45c7aeda3291abcceefa12aa970025db88bc2b3e113b1e70abd7f89c2a651c16b816dff1a0c46e7907 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/types@npm:7.2.0" @@ -1560,25 +1450,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.1.1" - dependencies: - "@typescript-eslint/types": "npm:7.1.1" - "@typescript-eslint/visitor-keys": "npm:7.1.1" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/2cec9d21cfe46e523a6d29aff554e5450edf1ee30ce9cf644ee8f1f5e1cfd44b94afb3632db97a949c86c4a392ae80f264d56d8747b2b0fdbe5c54139433366a - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" @@ -1635,23 +1506,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/utils@npm:7.1.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.1.1" - "@typescript-eslint/types": "npm:7.1.1" - "@typescript-eslint/typescript-estree": "npm:7.1.1" - semver: "npm:^7.5.4" - peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/3e70834c5b49e4643ec8da63fa2acaab54283a566af2cedcd4c2f4210833a59bf71c459dde69e738115633c7de9f1339130552ff246e8e1bb4db26910685408b - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/utils@npm:7.2.0" @@ -1693,16 +1547,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.1.1" - dependencies: - "@typescript-eslint/types": "npm:7.1.1" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1ab19ec966ff0b86317eddcbfcda645856ec01c3b76a451298031f35e4da0a363e4888ce5ae9e2526e874799a502c49922d83d57d21cb6fef7f3912f51e4a271 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" @@ -1723,21 +1567,22 @@ __metadata: languageName: node linkType: hard -"@vue/eslint-config-typescript@npm:13.0.0, @vue/eslint-config-typescript@npm:^13.0.0": - version: 13.0.0 - resolution: "@vue/eslint-config-typescript@npm:13.0.0" +"@vue/eslint-config-typescript@npm:14.0.0, @vue/eslint-config-typescript@npm:^14.0.0": + version: 14.0.0 + resolution: "@vue/eslint-config-typescript@npm:14.0.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:^7.1.1" - "@typescript-eslint/parser": "npm:^7.1.1" - vue-eslint-parser: "npm:^9.3.1" + "@typescript-eslint/eslint-plugin": "npm:^8.6.0" + "@typescript-eslint/parser": "npm:^8.6.0" + typescript-eslint: "npm:^8.6.0" + vue-eslint-parser: "npm:^9.4.3" peerDependencies: - eslint: ^8.56.0 - eslint-plugin-vue: ^9.0.0 - typescript: ">=4.7.4" + eslint: ^9.10.0 + eslint-plugin-vue: ^9.28.0 + typescript: ">=4.8.4" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a960e1157f805e38837107ae8d2a6d280cf8f7cc3fa9ab492e10f52622085076637ee92438ca473c4e3305097448417f66c0d6cbf6130b731dbac9189e4566ca + checksum: 10c0/3c29135d5783275ba3e1fa000b3c00213ae543b62147c9fc4e6215e69b5fe70c8d5b0ee78f1cd43e2427adc391f526505df54175a40441681ca4e06b1114a961 languageName: node linkType: hard @@ -1764,7 +1609,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.12.0": +"acorn@npm:^8.12.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -1773,15 +1618,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.9.0": - version: 8.9.0 - resolution: "acorn@npm:8.9.0" - bin: - acorn: bin/acorn - checksum: 10c0/5b51689d56f1ca5d6ea1fa58af478affd8d3396403637abcbc7caf28e1a47beb537cf1654f537b6cf4c73377f3e1aa99fd4a50674e64daefe08cb25c799ded28 - languageName: node - linkType: hard - "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -2245,15 +2081,6 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -2664,15 +2491,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:~4.3.6": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: "npm:2.1.2" + ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b languageName: node linkType: hard @@ -2685,18 +2512,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.6": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b - languageName: node - linkType: hard - "decamelize@npm:^5.0.0": version: 5.0.1 resolution: "decamelize@npm:5.0.1" @@ -3262,21 +3077,21 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-vue@npm:9.25.0, eslint-plugin-vue@npm:^9.25.0": - version: 9.25.0 - resolution: "eslint-plugin-vue@npm:9.25.0" +"eslint-plugin-vue@npm:9.28.0, eslint-plugin-vue@npm:^9.28.0": + version: 9.28.0 + resolution: "eslint-plugin-vue@npm:9.28.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" globals: "npm:^13.24.0" natural-compare: "npm:^1.4.0" nth-check: "npm:^2.1.1" postcss-selector-parser: "npm:^6.0.15" - semver: "npm:^7.6.0" - vue-eslint-parser: "npm:^9.4.2" + semver: "npm:^7.6.3" + vue-eslint-parser: "npm:^9.4.3" xml-name-validator: "npm:^4.0.0" peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/43332208612ed2b8afb50280ca6bb79cd381b99bb9173c2d250f94fd2fe14b3e22454f0ec0928d2dfbdfd50553949f3f8ef04f190e57be96d1f0411bca551a15 + checksum: 10c0/97a52895599321b04d0617ae465c66257709e81b1967310cfafe143441a9f7e5ef38e010e51d4f1916e3fe5b0bbadcc18a99297e23225ac757a7262ab0a37e99 languageName: node linkType: hard @@ -3300,17 +3115,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.0.0": - version: 8.0.0 - resolution: "eslint-scope@npm:8.0.0" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/ba1091ee64dece6fdad3c7c0d25c52c58bec197083379a128627ca5ba2bf70e416948405cb5cbcf64655988103f460cfeb2dc4eeb582170f5e5cb20992a14e19 - languageName: node - linkType: hard - -"eslint-scope@npm:^8.0.2": +"eslint-scope@npm:^8.0.0, eslint-scope@npm:^8.0.2": version: 8.1.0 resolution: "eslint-scope@npm:8.1.0" dependencies: @@ -3434,16 +3239,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 - languageName: node - linkType: hard - -"esquery@npm:^1.5.0": +"esquery@npm:^1.4.0, esquery@npm:^1.5.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -3550,20 +3346,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10c0/08604fb8ef6442ce74068bef3c3104382bb1f5ab28cf75e4ee904662778b60ad620e1405e692b7edea598ef445f5d387827a965ba034e1892bf54b1dfde97f26 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -3626,15 +3409,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -3878,13 +3652,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:15.10.0, globals@npm:^15.10.0": - version: 15.10.0 - resolution: "globals@npm:15.10.0" - checksum: 10c0/fef8f320e88f01f1492fef1b04b056908e1f6726eeaffe3bca03247237300c2d86e71585ee641b62ba71460a6eaff0d6ca7fca284e61bd1b3f833c7ad68b160a - languageName: node - linkType: hard - "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -4099,14 +3866,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 10c0/7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 - languageName: node - linkType: hard - -"ignore@npm:^5.3.1": +"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd @@ -5284,15 +5044,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - "lru-cache@npm:^7.7.1": version: 7.15.0 resolution: "lru-cache@npm:7.15.0" @@ -5363,17 +5114,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"micromatch@npm:~4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:~4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -5533,13 +5274,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc - languageName: node - linkType: hard - "ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" @@ -6331,18 +6065,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 - languageName: node - linkType: hard - -"semver@npm:^7.6.3": +"semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -6769,16 +6492,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "ts-api-utils@npm:1.0.1" - peerDependencies: - typescript: ">=4.2.0" - checksum: 10c0/8e8a54afb44df31c413e6f5b817a305a37780726125db26e85d01d553efc31aacb3ccad111a14844b584776f24e71bcd4db2f2d3e9bce8031a329dc78f3e46e2 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.3.0": +"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" peerDependencies: @@ -6997,7 +6711,7 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.8.0, typescript-eslint@npm:^8.8.0": +"typescript-eslint@npm:8.8.0, typescript-eslint@npm:^8.6.0, typescript-eslint@npm:^8.8.0": version: 8.8.0 resolution: "typescript-eslint@npm:8.8.0" dependencies: @@ -7043,13 +6757,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 - languageName: node - linkType: hard - "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" @@ -7123,9 +6830,9 @@ __metadata: languageName: node linkType: hard -"vue-eslint-parser@npm:^9.3.1, vue-eslint-parser@npm:^9.4.2": - version: 9.4.2 - resolution: "vue-eslint-parser@npm:9.4.2" +"vue-eslint-parser@npm:^9.4.3": + version: 9.4.3 + resolution: "vue-eslint-parser@npm:9.4.3" dependencies: debug: "npm:^4.3.4" eslint-scope: "npm:^7.1.1" @@ -7136,7 +6843,7 @@ __metadata: semver: "npm:^7.3.6" peerDependencies: eslint: ">=6.0.0" - checksum: 10c0/79593073adbce8971565133c70a203f12f0be0f8c5e3a4063796fd56e5de64f1f3ad7f91be5a787a7a3fe751306ed22086ee8369d52725be95f452827ce670de + checksum: 10c0/128be5988de025b5abd676a91c3e92af68288a5da1c20b2ff848fe90e040c04b2222a03b5d8048cf4a5e0b667a8addfb6f6e6565860d4afb5190c4cc42d05578 languageName: node linkType: hard