From da2c07111de44c2352291f206aeacb05e2f1a7a6 Mon Sep 17 00:00:00 2001 From: strawberry-choco Date: Mon, 7 Oct 2024 10:21:16 +0200 Subject: [PATCH] migrate angular config (#238) Signed-off-by: Kangrui Johann Ye --- eslint.config.mjs | 2 +- package.json | 6 +- packages/eslint-plugin-angular/README.md | 41 ++- packages/eslint-plugin-angular/package.json | 11 +- .../rules => }/angular-eslint-template.ts | 0 .../rules => }/angular-eslint.ts | 0 .../rules => }/eslint.ts | 0 .../rules/format.ts => format-template.ts} | 0 .../src/configs/index.ts | 13 - .../recommended-html.config.ts | 22 -- .../recommended-typescript.config.ts | 16 -- .../configs/recommended/recommended.config.ts | 29 -- .../rules => }/typescript-eslint.ts | 0 packages/eslint-plugin-angular/src/index.ts | 45 ++- .../eslint-plugin-angular/src/rules/index.ts | 3 - packages/eslint-plugin-angular/tsconfig.json | 2 +- packages/eslint-plugin-node/package.json | 2 +- packages/eslint-plugin-react/package.json | 2 +- .../eslint-plugin-typescript/package.json | 2 +- packages/eslint-plugin-vue/package.json | 2 +- yarn.lock | 256 +++++++----------- 21 files changed, 184 insertions(+), 270 deletions(-) rename packages/eslint-plugin-angular/src/configs/{recommended-html/rules => }/angular-eslint-template.ts (100%) rename packages/eslint-plugin-angular/src/configs/{recommended-typescript/rules => }/angular-eslint.ts (100%) rename packages/eslint-plugin-angular/src/configs/{recommended-typescript/rules => }/eslint.ts (100%) rename packages/eslint-plugin-angular/src/configs/{recommended-html/rules/format.ts => format-template.ts} (100%) delete mode 100644 packages/eslint-plugin-angular/src/configs/index.ts delete mode 100644 packages/eslint-plugin-angular/src/configs/recommended-html/recommended-html.config.ts delete mode 100644 packages/eslint-plugin-angular/src/configs/recommended-typescript/recommended-typescript.config.ts delete mode 100644 packages/eslint-plugin-angular/src/configs/recommended/recommended.config.ts rename packages/eslint-plugin-angular/src/configs/{recommended-typescript/rules => }/typescript-eslint.ts (100%) delete mode 100644 packages/eslint-plugin-angular/src/rules/index.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index bbf58d9..03ecd5b 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -14,7 +14,7 @@ export default tseslint.config( // these files are temporarily disabled for linting // until we are done with migrating everything to v9 ignores: [ - 'packages/eslint-plugin-angular/*', + 'packages/eslint-plugin-angular/src/configs/format-template.ts', 'packages/eslint-plugin-node/*', 'packages/eslint-plugin-react/*', 'packages/eslint-plugin-typescript/src/configs/index.ts', diff --git a/package.json b/package.json index fc3c58d..fae95a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "private": true, "volta": { "node": "20.12.2", @@ -28,9 +28,6 @@ "author": "Cloudflight GmbH", "license": "Apache-2.0", "devDependencies": { - "@angular-eslint/eslint-plugin": "17.3.0", - "@angular-eslint/eslint-plugin-template": "17.3.0", - "@angular-eslint/template-parser": "17.3.0", "@eslint/compat": "1.1.1", "@eslint/js": "9.11.1", "@types/eslint": "9.6.1", @@ -42,6 +39,7 @@ "@typescript-eslint/parser": "8.8.0", "@typescript-eslint/utils": "8.8.0", "@vue/eslint-config-typescript": "14.0.0", + "angular-eslint": "18.3.1", "eslint": "9.11.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-json-es": "1.6.0", diff --git a/packages/eslint-plugin-angular/README.md b/packages/eslint-plugin-angular/README.md index 947647b..13d4383 100644 --- a/packages/eslint-plugin-angular/README.md +++ b/packages/eslint-plugin-angular/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" ``` @@ -27,23 +26,37 @@ In your `package.json` add the following: The plugin provides 3 different configurations: -- @cloudflight/angular/recommended +- cloudflightAngularConfig - Both of the below 2 configurations -- @cloudflight/angular/recommended-html +- cloudflightAngularTemplateConfig - Only contains rules for HTML files -- @cloudflight/angular/recommended-typescript +- cloudflightAngularTypescriptConfig - Only contains rules for TS files -Now open your `.eslintrc.js` and add one of the configurations: - -``` -require('@rushstack/eslint-patch/modern-module-resolution'); - -module.exports = { - ... - extends: ['plugin:@cloudflight/angular/recommended'], - ... -}; +Now open your `eslint.config.mts` and add one of the configurations: + +```ts +import { cloudflightAngularConfig } from '@cloudflight/eslint-plugin-angular'; +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), + ...cloudflightAngularConfig, + { + languageOptions: { + parserOptions: { + project: ['tsconfig.*?.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +]; ``` ## Formatting diff --git a/packages/eslint-plugin-angular/package.json b/packages/eslint-plugin-angular/package.json index bbff186..f138aeb 100644 --- a/packages/eslint-plugin-angular/package.json +++ b/packages/eslint-plugin-angular/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin-angular", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Cloudflight eslint-plugin & eslint-config for angular", "volta": { "extends": "../../package.json" @@ -22,17 +22,14 @@ "publishConfig": { "access": "public" }, - "private": true, "scripts": { - "build-packagex": "tsc" + "build-package": "tsc" }, "dependencies": { - "@angular-eslint/eslint-plugin": "^17.3.0", - "@angular-eslint/eslint-plugin-template": "^17.3.0", - "@angular-eslint/template-parser": "^17.3.0" + "@cloudflight/eslint-plugin-typescript": "workspace:*", + "angular-eslint": "18.3.1" }, "peerDependencies": { - "@cloudflight/eslint-plugin-typescript": "workspace:*", "eslint": ">=9.0.0 < 10.0.0" }, "devDependencies": { diff --git a/packages/eslint-plugin-angular/src/configs/recommended-html/rules/angular-eslint-template.ts b/packages/eslint-plugin-angular/src/configs/angular-eslint-template.ts similarity index 100% rename from packages/eslint-plugin-angular/src/configs/recommended-html/rules/angular-eslint-template.ts rename to packages/eslint-plugin-angular/src/configs/angular-eslint-template.ts diff --git a/packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/angular-eslint.ts b/packages/eslint-plugin-angular/src/configs/angular-eslint.ts similarity index 100% rename from packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/angular-eslint.ts rename to packages/eslint-plugin-angular/src/configs/angular-eslint.ts diff --git a/packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/eslint.ts b/packages/eslint-plugin-angular/src/configs/eslint.ts similarity index 100% rename from packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/eslint.ts rename to packages/eslint-plugin-angular/src/configs/eslint.ts diff --git a/packages/eslint-plugin-angular/src/configs/recommended-html/rules/format.ts b/packages/eslint-plugin-angular/src/configs/format-template.ts similarity index 100% rename from packages/eslint-plugin-angular/src/configs/recommended-html/rules/format.ts rename to packages/eslint-plugin-angular/src/configs/format-template.ts diff --git a/packages/eslint-plugin-angular/src/configs/index.ts b/packages/eslint-plugin-angular/src/configs/index.ts deleted file mode 100644 index 64641f7..0000000 --- a/packages/eslint-plugin-angular/src/configs/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -import {FormatConfig, RecommendedConfig} from './recommended/recommended.config'; -import {FormattingHtmlConfig, RecommendedHtmlConfig} from './recommended-html/recommended-html.config'; -import {RecommendedTypescriptConfig} from './recommended-typescript/recommended-typescript.config'; - -export const configs: Record = { - 'recommended-typescript': RecommendedTypescriptConfig, - 'recommended-html': RecommendedHtmlConfig, - 'html-formatting': FormattingHtmlConfig, - recommended: RecommendedConfig, - formatting: FormatConfig, -}; diff --git a/packages/eslint-plugin-angular/src/configs/recommended-html/recommended-html.config.ts b/packages/eslint-plugin-angular/src/configs/recommended-html/recommended-html.config.ts deleted file mode 100644 index 22c5789..0000000 --- a/packages/eslint-plugin-angular/src/configs/recommended-html/recommended-html.config.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -import {angularTemplateEslintRules} from './rules/angular-eslint-template'; -import {formatAngularTemplateEslintRules} from './rules/format'; - -export const RecommendedHtmlConfig: TSESLint.Linter.ConfigType = { - plugins: ['@cloudflight/angular', '@angular-eslint/template'], - parser: '@angular-eslint/template-parser', - extends: ['plugin:@angular-eslint/template/accessibility', 'plugin:@angular-eslint/template/recommended'], - rules: { - ...angularTemplateEslintRules, - }, -}; - -export const FormattingHtmlConfig: TSESLint.Linter.ConfigType = { - plugins: ['@cloudflight/angular', '@angular-eslint/template'], - parser: '@angular-eslint/template-parser', - extends: [], - rules: { - ...formatAngularTemplateEslintRules, - }, -}; diff --git a/packages/eslint-plugin-angular/src/configs/recommended-typescript/recommended-typescript.config.ts b/packages/eslint-plugin-angular/src/configs/recommended-typescript/recommended-typescript.config.ts deleted file mode 100644 index 03c2c86..0000000 --- a/packages/eslint-plugin-angular/src/configs/recommended-typescript/recommended-typescript.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -import {angularEslintRules} from './rules/angular-eslint'; -import {eslintRules} from './rules/eslint'; -import {typescriptEslintRules} from './rules/typescript-eslint'; - -export const RecommendedTypescriptConfig: TSESLint.Linter.ConfigType = { - plugins: ['@cloudflight/angular', '@cloudflight/typescript', '@angular-eslint'], - parser: '@typescript-eslint/parser', - extends: ['plugin:@cloudflight/typescript/recommended'], - rules: { - ...angularEslintRules, - ...eslintRules, - ...typescriptEslintRules, - }, -}; diff --git a/packages/eslint-plugin-angular/src/configs/recommended/recommended.config.ts b/packages/eslint-plugin-angular/src/configs/recommended/recommended.config.ts deleted file mode 100644 index bdadd82..0000000 --- a/packages/eslint-plugin-angular/src/configs/recommended/recommended.config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -export const RecommendedConfig: TSESLint.Linter.ConfigType = { - plugins: ['@cloudflight/angular'], - overrides: [ - { - files: ['*.html'], - extends: ['plugin:@cloudflight/angular/recommended-html'], - }, - { - files: ['*.ts'], - extends: ['plugin:@cloudflight/angular/recommended-typescript'], - }, - ], -}; - -export const FormatConfig: TSESLint.Linter.ConfigType = { - plugins: ['@cloudflight/angular'], - overrides: [ - { - files: ['*.html'], - extends: ['plugin:@cloudflight/angular/html-formatting'], - }, - { - files: ['*.ts'], - extends: ['plugin:@cloudflight/typescript/formatting'], - }, - ], -}; diff --git a/packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/typescript-eslint.ts b/packages/eslint-plugin-angular/src/configs/typescript-eslint.ts similarity index 100% rename from packages/eslint-plugin-angular/src/configs/recommended-typescript/rules/typescript-eslint.ts rename to packages/eslint-plugin-angular/src/configs/typescript-eslint.ts diff --git a/packages/eslint-plugin-angular/src/index.ts b/packages/eslint-plugin-angular/src/index.ts index 89dfc7c..2663fbc 100644 --- a/packages/eslint-plugin-angular/src/index.ts +++ b/packages/eslint-plugin-angular/src/index.ts @@ -1,2 +1,43 @@ -export {configs} from './configs'; -export {rules} from './rules'; +import tseslint from 'typescript-eslint'; +import angular from 'angular-eslint'; +import {cloudflightTypescriptConfig} from '@cloudflight/eslint-plugin-typescript'; +import {eslintRules} from './configs/eslint'; +import {typescriptEslintRules} from './configs/typescript-eslint'; +import {angularEslintRules} from './configs/angular-eslint'; +import {angularTemplateEslintRules} from './configs/angular-eslint-template'; + +export const cloudflightAngularTypescriptConfig = tseslint.config( + { + files: ['**/*.{ts,mts,cts}'], + extends: [ + ...cloudflightTypescriptConfig, + ...angular.configs.tsRecommended, + ], + processor: angular.processInlineTemplates, + rules: { + ...eslintRules, + ...typescriptEslintRules, + ...angularEslintRules, + } + }, +); + +export const cloudflightAngularTemplateConfig = tseslint.config( + { + files: ['**/*.html'], + extends: [ + ...angular.configs.templateRecommended, + ...angular.configs.templateAccessibility, + ], + rules: { + ...angularTemplateEslintRules, + // todo: this should be its own config + // ...formatAngularTemplateEslintRules, + } + } +); + +export const cloudflightAngularConfig = tseslint.config( + ...cloudflightAngularTypescriptConfig, + ...cloudflightAngularTemplateConfig, +); diff --git a/packages/eslint-plugin-angular/src/rules/index.ts b/packages/eslint-plugin-angular/src/rules/index.ts deleted file mode 100644 index 504bd69..0000000 --- a/packages/eslint-plugin-angular/src/rules/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import {TSESLint} from '@typescript-eslint/utils'; - -export const rules: Record> = {}; diff --git a/packages/eslint-plugin-angular/tsconfig.json b/packages/eslint-plugin-angular/tsconfig.json index e7668bf..f5cc48a 100644 --- a/packages/eslint-plugin-angular/tsconfig.json +++ b/packages/eslint-plugin-angular/tsconfig.json @@ -18,7 +18,7 @@ "forceConsistentCasingInFileNames": true, "strict": true, - "exactOptionalPropertyTypes": true, + "exactOptionalPropertyTypes": false, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, diff --git a/packages/eslint-plugin-node/package.json b/packages/eslint-plugin-node/package.json index c0e403e..87e727d 100644 --- a/packages/eslint-plugin-node/package.json +++ b/packages/eslint-plugin-node/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin-node", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Cloudflight eslint-plugin & eslint-config for node", "volta": { "extends": "../../package.json" diff --git a/packages/eslint-plugin-react/package.json b/packages/eslint-plugin-react/package.json index 9d8ef2b..2c49a4e 100644 --- a/packages/eslint-plugin-react/package.json +++ b/packages/eslint-plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin-react", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Cloudflight eslint-plugin & eslint-config for React", "volta": { "extends": "../../package.json" diff --git a/packages/eslint-plugin-typescript/package.json b/packages/eslint-plugin-typescript/package.json index 46bc31d..c0a7fb1 100644 --- a/packages/eslint-plugin-typescript/package.json +++ b/packages/eslint-plugin-typescript/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin-typescript", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Cloudflight eslint-plugin & eslint-config for typescript", "volta": { "extends": "../../package.json" diff --git a/packages/eslint-plugin-vue/package.json b/packages/eslint-plugin-vue/package.json index 9440aee..ac0103f 100644 --- a/packages/eslint-plugin-vue/package.json +++ b/packages/eslint-plugin-vue/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflight/eslint-plugin-vue", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Cloudflight eslint-plugin & eslint-config for vue", "volta": { "extends": "../../package.json" diff --git a/yarn.lock b/yarn.lock index a53ea2c..5730fb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,66 +22,92 @@ __metadata: languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:17.3.0": - version: 17.3.0 - resolution: "@angular-eslint/bundled-angular-compiler@npm:17.3.0" - checksum: 10c0/18a63bf01572f4f529a40fd5e6af04b471afd0948e0936a4055152df40b34b16efd7ff1164895a56c6a40da7a44e521f2af14240535a2b6dcee867c4e02bbe26 +"@angular-eslint/builder@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/builder@npm:18.3.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: "*" + checksum: 10c0/26202232826e05d04849611733fed9c53cdf6c97bc1235a3b1cbd8eba3c6d09da0b28e6813780e8f726037f2ecacbc2bc722afe62e3a3a192b20848413a11c1d + languageName: node + linkType: hard + +"@angular-eslint/bundled-angular-compiler@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/bundled-angular-compiler@npm:18.3.1" + checksum: 10c0/8808ca1927cd95f5aae8471d0d16c69f34bb411232cf8a53a1b585255dae9b460fd7bea17d1b1fdc2ea05971a79b860446ee62436d479d16b8a37241caa8b655 languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:17.3.0, @angular-eslint/eslint-plugin-template@npm:^17.3.0": - version: 17.3.0 - resolution: "@angular-eslint/eslint-plugin-template@npm:17.3.0" +"@angular-eslint/eslint-plugin-template@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin-template@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:17.3.0" - "@angular-eslint/utils": "npm:17.3.0" - "@typescript-eslint/type-utils": "npm:7.2.0" - "@typescript-eslint/utils": "npm:7.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" aria-query: "npm:5.3.0" - axobject-query: "npm:4.0.0" + axobject-query: "npm:4.1.0" peerDependencies: - eslint: ^7.20.0 || ^8.0.0 + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/52f80cf25ac6f63409926b2d0d8b649c10a5d8ae9ced92ab40e009ba953a065f153296736cc6d0eecf19d4d806e50f8d06d25e76ee1d686249dc6732cac7e1fc + checksum: 10c0/43cbdbb42c5dd99d9c54fc94f1603c57d72c60d33d1c1efc45de3cd0b11f29a206ad7035f329d4ee93c14957c3e32f854faa09b9c11004107e4630e53fdabf8a languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:17.3.0, @angular-eslint/eslint-plugin@npm:^17.3.0": - version: 17.3.0 - resolution: "@angular-eslint/eslint-plugin@npm:17.3.0" +"@angular-eslint/eslint-plugin@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/eslint-plugin@npm:18.3.1" dependencies: - "@angular-eslint/utils": "npm:17.3.0" - "@typescript-eslint/utils": "npm:7.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + "@angular-eslint/utils": "npm:18.3.1" peerDependencies: - eslint: ^7.20.0 || ^8.0.0 + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/8e3f5c635e41bc37a28af6756daacd3d4c3ac916ea81a35f4dc099014d56ec1507cad9cad9967514db2fa1553030e02ac9c871dc7e2681d94d2b55fbc708dd0c + checksum: 10c0/5959d515e5eb206127c137db8b247c4e1416fe755c0e1460e611cdfd37938081ecdd7417bcdf2bf519b447d0724f9ca1e596a76b4fadbbf4f8dff1153c8a771f + languageName: node + linkType: hard + +"@angular-eslint/schematics@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/schematics@npm:18.3.1" + dependencies: + "@angular-eslint/eslint-plugin": "npm:18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:18.3.1" + ignore: "npm:5.3.2" + semver: "npm:7.6.3" + strip-json-comments: "npm:3.1.1" + peerDependencies: + "@angular-devkit/core": ">= 18.0.0 < 19.0.0" + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" + checksum: 10c0/0083120df5993a3adbd8b19817c9d1e0ade95245292d47be97e0ef3c0eec1f4dd2bcde6e080597127bc1875236d93774a6fa0134a0f23edd74b074c78325ba03 languageName: node linkType: hard -"@angular-eslint/template-parser@npm:17.3.0, @angular-eslint/template-parser@npm:^17.3.0": - version: 17.3.0 - resolution: "@angular-eslint/template-parser@npm:17.3.0" +"@angular-eslint/template-parser@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/template-parser@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:17.3.0" - eslint-scope: "npm:^8.0.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" + eslint-scope: "npm:^8.0.2" peerDependencies: - eslint: ^7.20.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/0b7ae434cbc4dbc52e2939639af5f0ef1669896f65a92acb79b56066dd091e7eaebcbc4414c0e3863778a54579633982d8427bdb80fda80848e8b12772c39f76 + checksum: 10c0/a109cae442bc115b0fc2d4a40402f02e75497945a5f827422143d20ed3957b3f165920c380a2731758cb23f71de31cac53fc7e2597eba6c674cf87200a2238d2 languageName: node linkType: hard -"@angular-eslint/utils@npm:17.3.0": - version: 17.3.0 - resolution: "@angular-eslint/utils@npm:17.3.0" +"@angular-eslint/utils@npm:18.3.1": + version: 18.3.1 + resolution: "@angular-eslint/utils@npm:18.3.1" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:17.3.0" - "@typescript-eslint/utils": "npm:7.2.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.3.1" peerDependencies: - eslint: ^7.20.0 || ^8.0.0 + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/011fb597d663ef5db441ebf36ad997411710f74762fd6e7dec3dbe87cd2e6f6215695a7dfc0e7001476cba804623cc8fee1221100990e360cd9883556b41c8fd + checksum: 10c0/c0d1b7e78736957c5555bd389fb81674e7d15d21b07457c2a669d12b26b9c499cb2bbbfc6575c2d173ad18187ff151f97962d46182bd5df8fc11168672a29266 languageName: node linkType: hard @@ -493,12 +519,10 @@ __metadata: version: 0.0.0-use.local resolution: "@cloudflight/eslint-plugin-angular@workspace:packages/eslint-plugin-angular" dependencies: - "@angular-eslint/eslint-plugin": "npm:^17.3.0" - "@angular-eslint/eslint-plugin-template": "npm:^17.3.0" - "@angular-eslint/template-parser": "npm:^17.3.0" + "@cloudflight/eslint-plugin-typescript": "workspace:*" + angular-eslint: "npm:18.3.1" typescript: "npm:5.5.4" peerDependencies: - "@cloudflight/eslint-plugin-typescript": "workspace:*" eslint: ">=9.0.0 < 10.0.0" languageName: unknown linkType: soft @@ -566,9 +590,6 @@ __metadata: version: 0.0.0-use.local resolution: "@cloudflight/eslint-plugin@workspace:." dependencies: - "@angular-eslint/eslint-plugin": "npm:17.3.0" - "@angular-eslint/eslint-plugin-template": "npm:17.3.0" - "@angular-eslint/template-parser": "npm:17.3.0" "@eslint/compat": "npm:1.1.1" "@eslint/js": "npm:9.11.1" "@types/eslint": "npm:9.6.1" @@ -580,6 +601,7 @@ __metadata: "@typescript-eslint/parser": "npm:8.8.0" "@typescript-eslint/utils": "npm:8.8.0" "@vue/eslint-config-typescript": "npm:14.0.0" + angular-eslint: "npm:18.3.1" eslint: "npm:9.11.1" eslint-plugin-import: "npm:2.29.1" eslint-plugin-json-es: "npm:1.6.0" @@ -1244,7 +1266,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -1267,7 +1289,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12": version: 7.5.6 resolution: "@types/semver@npm:7.5.6" checksum: 10c0/196dc32db5f68cbcde2e6a42bb4aa5cbb100fa2b7bd9c8c82faaaf3e03fbe063e205dbb4f03c7cdf53da2edb70a0d34c9f2e601b54281b377eb8dc1743226acd @@ -1359,16 +1381,6 @@ __metadata: 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" - dependencies: - "@typescript-eslint/types": "npm:7.2.0" - "@typescript-eslint/visitor-keys": "npm:7.2.0" - checksum: 10c0/4d088c127e6ba1a7de8567f70684779083be24b48746c3b4a86a0ec7062bca58693ee08482349ad6572a17ada8aa6f26b74d1c7139c8fcf7101fa09a572e0ea6 - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/scope-manager@npm:8.8.0" @@ -1379,23 +1391,6 @@ __metadata: 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" - dependencies: - "@typescript-eslint/typescript-estree": "npm:7.2.0" - "@typescript-eslint/utils": "npm:7.2.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/069b65ef327e1bfa1e59009504c8307f88f3673ebcc23d17ad370452ece107013c9dc321876092673d2c02ddd35104f67231b31b0e4f7d5ca6fbf95b43f828b2 - languageName: node - linkType: hard - "@typescript-eslint/type-utils@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/type-utils@npm:8.8.0" @@ -1418,13 +1413,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/types@npm:7.2.0" - checksum: 10c0/135aae061720185855bea61ea6cfd33f4801d2de57f65e50079bbdb505100f844632aa4e4bdeec9e9e79d29aaddad949178d0e918e41867da6ab4b1390820e33 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/types@npm:8.8.0" @@ -1450,25 +1438,6 @@ __metadata: 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" - dependencies: - "@typescript-eslint/types": "npm:7.2.0" - "@typescript-eslint/visitor-keys": "npm:7.2.0" - 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/2730bb17730e6f3ca4061f00688a70386a808f5d174fdeb757c3cfa92c455373f69080df33237c1a8970e818af0cea0ae5a083970ed8ba493f3b04458c6f9271 - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/typescript-estree@npm:8.8.0" @@ -1506,23 +1475,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/utils@npm:7.2.0" - 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.2.0" - "@typescript-eslint/types": "npm:7.2.0" - "@typescript-eslint/typescript-estree": "npm:7.2.0" - semver: "npm:^7.5.4" - peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/37944e1a4038820da82b51ac4756e09cff31851d9d957d3fd67a3b6fd2cf6c0e87767161eaeb8b6e63de418e513bb2570a6ee3fa986ba77f6d451d66a538f753 - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/utils@npm:8.8.0" @@ -1547,16 +1499,6 @@ __metadata: 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" - dependencies: - "@typescript-eslint/types": "npm:7.2.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/2d7467495b2b76f3edb1b3047e97076c2242e7eca6d50bbbdd88219f9ff754dbcb9334a0568fe0ceb4c562823980938bd278aa2ba53da6343e7d99a167924f24 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.8.0": version: 8.8.0 resolution: "@typescript-eslint/visitor-keys@npm:8.8.0" @@ -1660,6 +1602,23 @@ __metadata: languageName: node linkType: hard +"angular-eslint@npm:18.3.1": + version: 18.3.1 + resolution: "angular-eslint@npm:18.3.1" + dependencies: + "@angular-eslint/builder": "npm:18.3.1" + "@angular-eslint/eslint-plugin": "npm:18.3.1" + "@angular-eslint/eslint-plugin-template": "npm:18.3.1" + "@angular-eslint/schematics": "npm:18.3.1" + "@angular-eslint/template-parser": "npm:18.3.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: "*" + typescript-eslint: ^8.0.0 + checksum: 10c0/7033120cc43ab96a02cbae46f4f183df0a2039b2c6df35e2620f3657a887b9fa7ef99cc730a5028782a8549600c25b0e164443e4f21b676b4c36be6f03dbc1cd + languageName: node + linkType: hard + "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -1943,12 +1902,10 @@ __metadata: languageName: node linkType: hard -"axobject-query@npm:4.0.0": - version: 4.0.0 - resolution: "axobject-query@npm:4.0.0" - dependencies: - dequal: "npm:^2.0.3" - checksum: 10c0/4d756b5c2ff099f1c7f99e55a5de9b2066cb2a13a3170185ff34bfec2d7bcab81eb820a4e7340d35c251341b61ebee6e705b7ce64db78224df1df5a4d68448fe +"axobject-query@npm:4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 languageName: node linkType: hard @@ -3115,7 +3072,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.0.0, eslint-scope@npm:^8.0.2": +"eslint-scope@npm:^8.0.2": version: 8.1.0 resolution: "eslint-scope@npm:8.1.0" dependencies: @@ -3866,10 +3823,10 @@ __metadata: languageName: node linkType: hard -"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 +"ignore@npm:5.3.2, ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard @@ -5145,15 +5102,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac - languageName: node - linkType: hard - "minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -6056,21 +6004,21 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" +"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: semver: bin/semver.js - checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf 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, semver@npm:^7.6.3": - version: 7.6.3 - resolution: "semver@npm:7.6.3" +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d languageName: node linkType: hard @@ -6396,7 +6344,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd @@ -6492,7 +6440,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": +"ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" peerDependencies: