From 1254db99a408632223de1faeaa4c1ff57180f877 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 15 Jul 2025 18:46:09 +0000 Subject: [PATCH 01/28] feat: replace eslintrc.json files --- .eslintignore | 1 - .eslintrc.json | 84 -- eslint.config.mjs | 110 +++ modules/component-store/.eslintrc.json | 27 - modules/component-store/eslint.config.mjs | 54 ++ modules/component-store/project.json | 6 +- modules/component/.eslintrc.json | 28 - modules/component/eslint.config.mjs | 55 ++ modules/component/project.json | 6 +- modules/data/.eslintrc.json | 29 - modules/data/eslint.config.mjs | 56 ++ modules/data/project.json | 6 +- modules/effects/.eslintrc.json | 41 - modules/effects/eslint.config.mjs | 75 ++ modules/effects/project.json | 6 +- modules/entity/.eslintrc.json | 27 - modules/entity/eslint.config.mjs | 54 ++ modules/entity/project.json | 6 +- modules/eslint-plugin/.eslintrc.json | 4 - modules/eslint-plugin/eslint.config.mjs | 8 + modules/eslint-plugin/project.json | 4 +- modules/operators/.eslintrc.json | 26 - modules/operators/eslint.config.mjs | 53 ++ modules/operators/project.json | 6 +- modules/router-store/.eslintrc.json | 33 - modules/router-store/eslint.config.mjs | 59 ++ modules/router-store/project.json | 6 +- modules/schematics-core/.eslintrc.json | 27 - modules/schematics-core/eslint.config.mjs | 51 ++ modules/schematics-core/project.json | 6 +- modules/schematics/.eslintrc.json | 26 - modules/schematics/eslint.config.mjs | 53 ++ modules/schematics/project.json | 4 +- modules/signals/.eslintrc.json | 33 - modules/signals/eslint.config.mjs | 59 ++ modules/store-devtools/.eslintrc.json | 27 - modules/store-devtools/eslint.config.mjs | 54 ++ modules/store-devtools/project.json | 20 +- modules/store/.eslintrc.json | 41 - modules/store/eslint.config.mjs | 75 ++ modules/store/project.json | 6 +- nx.json | 9 +- package.json | 4 +- pnpm-lock.yaml | 766 +++++++++--------- projects/example-app-e2e/.eslintrc.json | 22 - projects/example-app-e2e/eslint.config.mjs | 43 + projects/example-app-e2e/project.json | 6 +- projects/example-app/.eslintrc.json | 62 -- projects/example-app/eslint.config.mjs | 89 ++ projects/ngrx.io/.eslintrc.json | 151 ---- projects/ngrx.io/eslint.config.mjs | 178 ++++ projects/ngrx.io/project.json | 26 +- projects/standalone-app-e2e/.eslintrc.json | 10 - projects/standalone-app-e2e/eslint.config.mjs | 23 + projects/standalone-app-e2e/project.json | 6 +- projects/standalone-app/.eslintrc.json | 37 - projects/standalone-app/eslint.config.mjs | 59 ++ 57 files changed, 1652 insertions(+), 1191 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs delete mode 100644 modules/component-store/.eslintrc.json create mode 100644 modules/component-store/eslint.config.mjs delete mode 100644 modules/component/.eslintrc.json create mode 100644 modules/component/eslint.config.mjs delete mode 100644 modules/data/.eslintrc.json create mode 100644 modules/data/eslint.config.mjs delete mode 100644 modules/effects/.eslintrc.json create mode 100644 modules/effects/eslint.config.mjs delete mode 100644 modules/entity/.eslintrc.json create mode 100644 modules/entity/eslint.config.mjs delete mode 100644 modules/eslint-plugin/.eslintrc.json create mode 100644 modules/eslint-plugin/eslint.config.mjs delete mode 100644 modules/operators/.eslintrc.json create mode 100644 modules/operators/eslint.config.mjs delete mode 100644 modules/router-store/.eslintrc.json create mode 100644 modules/router-store/eslint.config.mjs delete mode 100644 modules/schematics-core/.eslintrc.json create mode 100644 modules/schematics-core/eslint.config.mjs delete mode 100644 modules/schematics/.eslintrc.json create mode 100644 modules/schematics/eslint.config.mjs delete mode 100644 modules/signals/.eslintrc.json create mode 100644 modules/signals/eslint.config.mjs delete mode 100644 modules/store-devtools/.eslintrc.json create mode 100644 modules/store-devtools/eslint.config.mjs delete mode 100644 modules/store/.eslintrc.json create mode 100644 modules/store/eslint.config.mjs delete mode 100644 projects/example-app-e2e/.eslintrc.json create mode 100644 projects/example-app-e2e/eslint.config.mjs delete mode 100644 projects/example-app/.eslintrc.json create mode 100644 projects/example-app/eslint.config.mjs delete mode 100644 projects/ngrx.io/.eslintrc.json create mode 100644 projects/ngrx.io/eslint.config.mjs delete mode 100644 projects/standalone-app-e2e/.eslintrc.json create mode 100644 projects/standalone-app-e2e/eslint.config.mjs delete mode 100644 projects/standalone-app/.eslintrc.json create mode 100644 projects/standalone-app/eslint.config.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 61b8bda45e..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "root": true, - "ignorePatterns": ["**/*"], - "plugins": ["@nx"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": { - "@nx/enforce-module-boundaries": [ - "error", - { - "allow": [], - "depConstraints": [ - { - "sourceTag": "*", - "onlyDependOnLibsWithTags": ["*"] - } - ] - } - ], - "@typescript-eslint/member-ordering": "off", - "@typescript-eslint/no-inferrable-types": "warn" - } - }, - { - "files": ["*.ts", "*.tsx"], - "extends": ["plugin:@nx/typescript"], - "rules": { - "no-extra-semi": "off" - } - }, - { - "files": ["*.js", "*.jsx"], - "extends": ["plugin:@nx/javascript"], - "rules": { - "no-extra-semi": "off" - } - }, - { - "files": ["*.ts"], - "rules": { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ], - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/no-empty-function": "warn", - "@typescript-eslint/no-empty-object-type": "warn", - "eqeqeq": ["off", "smart"], - "id-blacklist": [ - "error", - "any", - "Number", - "number", - "String", - "string", - "Boolean", - "boolean", - "Undefined", - "undefined" - ], - "id-match": "error", - "no-eval": "off", - "no-redeclare": "off", - "no-underscore-dangle": "off", - "no-var": "error", - "no-prototype-builtins": "off", - "@typescript-eslint/no-wrapper-object-types": "off", - "@typescript-eslint/no-unsafe-function-type": "off" - }, - "plugins": ["eslint-plugin-import", "@typescript-eslint"] - }, - { - "files": ["*.html"], - "rules": {} - } - ] -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..936417b846 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,110 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import nxEslintPlugin from '@nx/eslint-plugin'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + { plugins: { '@nx': nxEslintPlugin } }, + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + rules: { + '@nx/enforce-module-boundaries': [ + 'error', + { + allow: [], + depConstraints: [ + { + sourceTag: '*', + onlyDependOnLibsWithTags: ['*'], + }, + ], + }, + ], + '@typescript-eslint/member-ordering': 'off', + '@typescript-eslint/no-inferrable-types': 'warn', + }, + }, + ...compat + .config({ + extends: ['plugin:@nx/typescript'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'], + rules: { + ...config.rules, + 'no-extra-semi': 'off', + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/javascript'], + }) + .map((config) => ({ + ...config, + files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'], + rules: { + ...config.rules, + 'no-extra-semi': 'off', + }, + })), + ...compat + .config({ + plugins: ['eslint-plugin-import', '@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + caughtErrorsIgnorePattern: '^_', + }, + ], + '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@typescript-eslint/no-empty-function': 'warn', + '@typescript-eslint/no-empty-object-type': 'warn', + eqeqeq: ['off', 'smart'], + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'no-eval': 'off', + 'no-redeclare': 'off', + 'no-underscore-dangle': 'off', + 'no-var': 'error', + 'no-prototype-builtins': 'off', + '@typescript-eslint/no-wrapper-object-types': 'off', + '@typescript-eslint/no-unsafe-function-type': 'off', + }, + })), + { + files: ['**/*.html'], + // Override or add rules here + rules: {}, + }, +]; diff --git a/modules/component-store/.eslintrc.json b/modules/component-store/.eslintrc.json deleted file mode 100644 index 572e63364d..0000000000 --- a/modules/component-store/.eslintrc.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/component-store/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs new file mode 100644 index 0000000000..bc0629a8e8 --- /dev/null +++ b/modules/component-store/eslint.config.mjs @@ -0,0 +1,54 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/component-store/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/component-store/project.json b/modules/component-store/project.json index 02b4b56f09..46d998edfd 100644 --- a/modules/component-store/project.json +++ b/modules/component-store/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/component-store/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,7 +51,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/component-store"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/component/.eslintrc.json b/modules/component/.eslintrc.json deleted file mode 100644 index 99c25a5d03..0000000000 --- a/modules/component/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/component/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/no-input-rename": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs new file mode 100644 index 0000000000..125bde2289 --- /dev/null +++ b/modules/component/eslint.config.mjs @@ -0,0 +1,55 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/no-input-rename': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/component/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/component/project.json b/modules/component/project.json index 0505194987..dd07a81061 100644 --- a/modules/component/project.json +++ b/modules/component/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/component/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,7 +51,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/component"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/data/.eslintrc.json b/modules/data/.eslintrc.json deleted file mode 100644 index 96d8b04e33..0000000000 --- a/modules/data/.eslintrc.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/data/tsconfig.*?.json"] - }, - "rules": { - "@typescript-eslint/no-non-null-assertion": "off", - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "no-case-declarations": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/data/eslint.config.mjs b/modules/data/eslint.config.mjs new file mode 100644 index 0000000000..0a1c35fc50 --- /dev/null +++ b/modules/data/eslint.config.mjs @@ -0,0 +1,56 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@typescript-eslint/no-non-null-assertion': 'off', + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + 'no-case-declarations': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/data/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/data/project.json b/modules/data/project.json index d33d4d0850..2ff0e37ebe 100644 --- a/modules/data/project.json +++ b/modules/data/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/data/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,7 +51,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/data"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/effects/.eslintrc.json b/modules/effects/.eslintrc.json deleted file mode 100644 index 06fd2a60f1..0000000000 --- a/modules/effects/.eslintrc.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/effects/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["testing/**/*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/effects/testing/tsconfig.*?.json"] - }, - "rules": { - "@nx/enforce-module-boundaries": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs new file mode 100644 index 0000000000..0f916615c6 --- /dev/null +++ b/modules/effects/eslint.config.mjs @@ -0,0 +1,75 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/effects/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['testing/**/*.ts'], + rules: { + ...config.rules, + '@nx/enforce-module-boundaries': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/effects/testing/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/effects/project.json b/modules/effects/project.json index fe8551ff5b..410f0a6c48 100644 --- a/modules/effects/project.json +++ b/modules/effects/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/effects/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -61,7 +63,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/effects"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/entity/.eslintrc.json b/modules/entity/.eslintrc.json deleted file mode 100644 index f9b0395413..0000000000 --- a/modules/entity/.eslintrc.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/entity/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs new file mode 100644 index 0000000000..999824d82c --- /dev/null +++ b/modules/entity/eslint.config.mjs @@ -0,0 +1,54 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/entity/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/entity/project.json b/modules/entity/project.json index ff062da6d2..763966434d 100644 --- a/modules/entity/project.json +++ b/modules/entity/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/entity/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -61,7 +63,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/entity"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/eslint-plugin/.eslintrc.json b/modules/eslint-plugin/.eslintrc.json deleted file mode 100644 index 052a5874e6..0000000000 --- a/modules/eslint-plugin/.eslintrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"] -} diff --git a/modules/eslint-plugin/eslint.config.mjs b/modules/eslint-plugin/eslint.config.mjs new file mode 100644 index 0000000000..69686f6436 --- /dev/null +++ b/modules/eslint-plugin/eslint.config.mjs @@ -0,0 +1,8 @@ +import baseConfig from '../../eslint.config.mjs'; + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, +]; diff --git a/modules/eslint-plugin/project.json b/modules/eslint-plugin/project.json index f2b6fb354d..e3dd9987d6 100644 --- a/modules/eslint-plugin/project.json +++ b/modules/eslint-plugin/project.json @@ -3,6 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "library", "sourceRoot": "modules/eslint-plugin/src", + "tags": [], "targets": { "build-package": { "executor": "@nx/js:tsc", @@ -71,6 +72,5 @@ }, "outputs": ["{options.outputFile}"] } - }, - "tags": [] + } } diff --git a/modules/operators/.eslintrc.json b/modules/operators/.eslintrc.json deleted file mode 100644 index 49070f0862..0000000000 --- a/modules/operators/.eslintrc.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/operators/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/operators/eslint.config.mjs b/modules/operators/eslint.config.mjs new file mode 100644 index 0000000000..2fba3236ec --- /dev/null +++ b/modules/operators/eslint.config.mjs @@ -0,0 +1,53 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/operators/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/operators/project.json b/modules/operators/project.json index b303bb0512..9fa95323fd 100644 --- a/modules/operators/project.json +++ b/modules/operators/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/operators/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,7 +51,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/operators"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/router-store/.eslintrc.json b/modules/router-store/.eslintrc.json deleted file mode 100644 index 00c130ca82..0000000000 --- a/modules/router-store/.eslintrc.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": [ - "!**/*", - "schematics-core", - "data-persistence/src/public_api.ts", - "data-persistence/src/operators.ts", - "data-persistence/index.ts" - ], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/router-store/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs new file mode 100644 index 0000000000..b1012070de --- /dev/null +++ b/modules/router-store/eslint.config.mjs @@ -0,0 +1,59 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/router-store/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: [ + 'schematics-core', + 'data-persistence/src/public_api.ts', + 'data-persistence/src/operators.ts', + 'data-persistence/index.ts', + ], + }, +]; diff --git a/modules/router-store/project.json b/modules/router-store/project.json index 6188c6fd64..83a992e9a4 100644 --- a/modules/router-store/project.json +++ b/modules/router-store/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/router-store/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,7 +51,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/router-store"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/schematics-core/.eslintrc.json b/modules/schematics-core/.eslintrc.json deleted file mode 100644 index f51a445bf1..0000000000 --- a/modules/schematics-core/.eslintrc.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/schematics-core/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "no-prototype-builtins": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/schematics-core/eslint.config.mjs b/modules/schematics-core/eslint.config.mjs new file mode 100644 index 0000000000..3a04c798dc --- /dev/null +++ b/modules/schematics-core/eslint.config.mjs @@ -0,0 +1,51 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + 'no-prototype-builtins': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/schematics-core/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), +]; diff --git a/modules/schematics-core/project.json b/modules/schematics-core/project.json index 5e2b91d9e1..c5f071a0cf 100644 --- a/modules/schematics-core/project.json +++ b/modules/schematics-core/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/schematics-core", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "lint": { "executor": "@nx/eslint:lint", @@ -22,7 +24,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/schematics-core"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/modules/schematics/.eslintrc.json b/modules/schematics/.eslintrc.json deleted file mode 100644 index d8f150fac7..0000000000 --- a/modules/schematics/.eslintrc.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/schematics/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/schematics/eslint.config.mjs b/modules/schematics/eslint.config.mjs new file mode 100644 index 0000000000..3c41f8559d --- /dev/null +++ b/modules/schematics/eslint.config.mjs @@ -0,0 +1,53 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/schematics/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/schematics/project.json b/modules/schematics/project.json index 67be311edc..4790a3f45d 100644 --- a/modules/schematics/project.json +++ b/modules/schematics/project.json @@ -3,6 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "modules/schematics/src", "projectType": "library", + "tags": [], "generators": {}, "targets": { "lint": { @@ -83,6 +84,5 @@ }, "outputs": ["{workspaceRoot}/dist/modules/schematics"] } - }, - "tags": [] + } } diff --git a/modules/signals/.eslintrc.json b/modules/signals/.eslintrc.json deleted file mode 100644 index 8487095ac2..0000000000 --- a/modules/signals/.eslintrc.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": [ - "!**/*", - "schematics-core", - "**/vite.config.*.timestamp*", - "**/vitest.config.*.timestamp*" - ], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/signals/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@nx/enforce-module-boundaries": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/signals/eslint.config.mjs b/modules/signals/eslint.config.mjs new file mode 100644 index 0000000000..d1ea007e97 --- /dev/null +++ b/modules/signals/eslint.config.mjs @@ -0,0 +1,59 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@nx/enforce-module-boundaries': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/signals/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: [ + 'schematics-core', + '**/vite.config.*.timestamp*', + '**/vitest.config.*.timestamp*', + ], + }, +]; diff --git a/modules/store-devtools/.eslintrc.json b/modules/store-devtools/.eslintrc.json deleted file mode 100644 index 87b7d95b0b..0000000000 --- a/modules/store-devtools/.eslintrc.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/store-devtools/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/store-devtools/eslint.config.mjs b/modules/store-devtools/eslint.config.mjs new file mode 100644 index 0000000000..841136f097 --- /dev/null +++ b/modules/store-devtools/eslint.config.mjs @@ -0,0 +1,54 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/store-devtools/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/store-devtools/project.json b/modules/store-devtools/project.json index f7d55c93fb..b57848b9a7 100644 --- a/modules/store-devtools/project.json +++ b/modules/store-devtools/project.json @@ -4,6 +4,15 @@ "projectType": "library", "sourceRoot": "modules/store-devtools/src", "prefix": "ngrx", + "tags": [], + "generators": { + "@angular-eslint/schematics:application": { + "setParserOptionsProject": true + }, + "@angular-eslint/schematics:library": { + "setParserOptionsProject": true + } + }, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -49,14 +58,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/store-devtools"] } - }, - "generators": { - "@angular-eslint/schematics:application": { - "setParserOptionsProject": true - }, - "@angular-eslint/schematics:library": { - "setParserOptionsProject": true - } - }, - "tags": [] + } } diff --git a/modules/store/.eslintrc.json b/modules/store/.eslintrc.json deleted file mode 100644 index 5afb708cd6..0000000000 --- a/modules/store/.eslintrc.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/store/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": "off", - "@angular-eslint/component-selector": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["testing/**/*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["modules/store/testing/tsconfig.*?.json"] - }, - "rules": { - "@nx/enforce-module-boundaries": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs new file mode 100644 index 0000000000..2054f5c2e8 --- /dev/null +++ b/modules/store/eslint.config.mjs @@ -0,0 +1,75 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': 'off', + '@angular-eslint/component-selector': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/store/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['testing/**/*.ts'], + rules: { + ...config.rules, + '@nx/enforce-module-boundaries': 'off', + }, + languageOptions: { + parserOptions: { + project: ['modules/store/testing/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/modules/store/project.json b/modules/store/project.json index 7664a1b7af..6d52c9abf6 100644 --- a/modules/store/project.json +++ b/modules/store/project.json @@ -4,6 +4,8 @@ "projectType": "library", "sourceRoot": "modules/store/src", "prefix": "ngrx", + "tags": [], + "generators": {}, "targets": { "build-package": { "executor": "@angular-devkit/build-angular:ng-packagr", @@ -61,7 +63,5 @@ }, "outputs": ["{workspaceRoot}/coverage/modules/store"] } - }, - "generators": {}, - "tags": [] + } } diff --git a/nx.json b/nx.json index 19bf23e8ba..5b08de61d6 100644 --- a/nx.json +++ b/nx.json @@ -58,7 +58,11 @@ "cache": true }, "lint": { - "inputs": ["default", "{workspaceRoot}/.eslintrc.json"], + "inputs": [ + "default", + "{workspaceRoot}/.eslintrc.json", + "{workspaceRoot}/eslint.config.mjs" + ], "cache": true }, "build-package": { @@ -92,7 +96,8 @@ "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/jest.config.[jt]s", "!{projectRoot}/.eslintrc.json", - "!{projectRoot}/src/test-setup.[jt]s" + "!{projectRoot}/src/test-setup.[jt]s", + "!{projectRoot}/eslint.config.mjs" ] }, "nxCloudAccessToken": "NTlmOGIxYmItZjM0OC00YzAxLTgzZTgtZDNiZmExMzcwZTA4fHJlYWQ=", diff --git a/package.json b/package.json index 198e64956f..91c9cc0396 100644 --- a/package.json +++ b/package.json @@ -137,6 +137,8 @@ "@angular/cli": "~20.0.0", "@angular/compiler-cli": "20.0.0", "@angular/language-service": "20.0.0", + "@eslint/eslintrc": "^2.1.1", + "@eslint/js": "~8.57.0", "@nx/cypress": "21.1.2", "@nx/eslint": "21.1.2", "@nx/eslint-plugin": "21.1.2", @@ -174,7 +176,7 @@ "cpy-cli": "^1.0.1", "cypress": "14.2.1", "deep-freeze": "^0.0.1", - "eslint": "8.57.0", + "eslint": "^9.8.0", "eslint-config-prettier": "10.0.0", "eslint-plugin-cypress": "2.14.0", "eslint-plugin-import": "2.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2fd29a41a..5d4e40cf84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,7 +94,7 @@ importers: version: 0.15.1 '@nx/angular': specifier: 21.1.2 - version: 21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3) + version: 21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3) '@typescript/vfs': specifier: ^1.5.3 version: 1.6.1(typescript@5.8.2) @@ -106,7 +106,7 @@ importers: version: 2.6.12 eslint-etc: specifier: ^5.1.0 - version: 5.2.1(eslint@8.57.0)(typescript@5.8.2) + version: 5.2.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) fast-glob: specifier: ^3.3.3 version: 3.3.3 @@ -170,7 +170,7 @@ importers: devDependencies: '@analogjs/platform': specifier: 1.15.1 - version: 1.15.1(insyzxkdg34uvrwxq7tl6oclqy) + version: 1.15.1(zh7nvxef3tyfpgbnkrlz525p54) '@analogjs/vite-plugin-angular': specifier: 1.14.1 version: 1.14.1(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular/build@20.0.0(x5m5af2eprbqlieavjhnsz7fh4)) @@ -188,22 +188,22 @@ importers: version: 20.0.0(chokidar@3.6.0) '@angular-eslint/builder': specifier: 19.6.0 - version: 19.6.0(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/eslint-plugin': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/eslint-plugin-template': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/schematics': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/template-parser': specifier: 19.6.0 - version: 19.6.0(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/test-utils': specifier: 19.6.0 - version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular/build': specifier: 20.0.0 version: 20.0.0(x5m5af2eprbqlieavjhnsz7fh4) @@ -216,21 +216,27 @@ importers: '@angular/language-service': specifier: 20.0.0 version: 20.0.0 + '@eslint/eslintrc': + specifier: ^2.1.1 + version: 2.1.4 + '@eslint/js': + specifier: ~8.57.0 + version: 8.57.0 '@nx/cypress': specifier: 21.1.2 - version: 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(cypress@14.2.1)(eslint@8.57.0)(nx@21.1.2)(typescript@5.8.2) + version: 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(cypress@14.2.1)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2) '@nx/eslint': specifier: 21.1.2 - version: 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@21.1.2) + version: 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2) '@nx/eslint-plugin': specifier: 21.1.2 - version: 21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@8.57.0))(eslint@8.57.0)(nx@21.1.2)(typescript@5.8.2) + version: 21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2) '@nx/jest': specifier: 21.1.2 version: 21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2) '@nx/node': specifier: 21.1.2 - version: 21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@8.57.0)(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2) + version: 21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2) '@nx/vite': specifier: 21.1.2 version: 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2)(typescript@5.8.2)(vite@6.3.0(@types/node@18.19.70)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.85.1)(sass@1.88.0)(stylus@0.64.0)(terser@5.39.1)(tsx@4.19.3)(yaml@2.7.0))(vitest@2.1.9(@types/node@18.19.70)(jsdom@22.1.0)(less@4.1.3)(sass-embedded@1.85.1)(sass@1.88.0)(stylus@0.64.0)(terser@5.39.1)) @@ -296,13 +302,13 @@ importers: version: 0.8.15 '@typescript-eslint/rule-tester': specifier: 8.10.0 - version: 8.10.0(eslint@8.57.0)(typescript@5.8.2) + version: 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': specifier: 8.10.0 version: 8.10.0 '@typescript-eslint/utils': specifier: 8.10.0 - version: 8.10.0(eslint@8.57.0)(typescript@5.8.2) + version: 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) chokidar: specifier: ^3.5.3 version: 3.6.0 @@ -328,17 +334,17 @@ importers: specifier: ^0.0.1 version: 0.0.1 eslint: - specifier: 8.57.0 - version: 8.57.0 + specifier: ^9.8.0 + version: 9.31.0(jiti@2.4.2) eslint-config-prettier: specifier: 10.0.0 - version: 10.0.0(eslint@8.57.0) + version: 10.0.0(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-cypress: specifier: 2.14.0 - version: 2.14.0(eslint@8.57.0) + version: 2.14.0(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-import: specifier: 2.26.0 - version: 2.26.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) + version: 2.26.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)) express: specifier: 4.21.2 version: 4.21.2 @@ -482,7 +488,7 @@ importers: version: 5.8.2 typescript-eslint: specifier: 8.19.0 - version: 8.19.0(eslint@8.57.0)(typescript@5.8.2) + version: 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) uglify-js: specifier: ^3.1.9 version: 3.19.3 @@ -2639,14 +2645,42 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.3.0': + resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + 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/js@9.31.0': + resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.3': + resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fastify/busboy@3.1.1': resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} @@ -2706,18 +2740,25 @@ packages: engines: {node: '>=6'} hasBin: true - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@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.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} '@inquirer/checkbox@4.1.8': resolution: {integrity: sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==} @@ -4787,9 +4828,6 @@ packages: peerDependencies: typescript: '*' - '@ungap/structured-clone@1.2.1': - resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} - '@vercel/nft@0.27.7': resolution: {integrity: sha512-FG6H5YkP4bdw9Ll1qhmbxuE8KwW2E/g8fJpM183fWQLeVDGqzeywMIeJ9h2txdWZ03psgWMn6QymTxaDLmdwUg==} engines: {node: '>=16'} @@ -4967,6 +5005,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} @@ -6798,10 +6841,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -7149,14 +7188,14 @@ 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.2.0: resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + 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} @@ -7165,11 +7204,23 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.31.0: + resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -7406,9 +7457,9 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - 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==} @@ -7495,9 +7546,9 @@ packages: peerDependencies: firebase-admin: ^11.10.0 || ^12.0.0 - 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@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -7823,6 +7874,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + globals@15.14.0: resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} @@ -8176,10 +8231,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.3: - resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} - engines: {node: '>= 4'} - ignore@7.0.4: resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} @@ -12396,9 +12447,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -13668,11 +13716,11 @@ snapshots: rxjs: 7.8.0 tslib: 2.8.1 - '@analogjs/platform@1.15.1(insyzxkdg34uvrwxq7tl6oclqy)': + '@analogjs/platform@1.15.1(zh7nvxef3tyfpgbnkrlz525p54)': dependencies: '@analogjs/vite-plugin-angular': 1.15.1(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular/build@20.0.0(x5m5af2eprbqlieavjhnsz7fh4)) '@analogjs/vite-plugin-nitro': 1.15.1(@netlify/blobs@8.2.0)(encoding@0.1.13) - '@nx/angular': 21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3) + '@nx/angular': 21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3) '@nx/devkit': 21.1.2(nx@21.1.2) '@nx/vite': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2)(typescript@5.8.2)(vite@6.3.0(@types/node@18.19.70)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.85.1)(sass@1.88.0)(stylus@0.64.0)(terser@5.39.1)(tsx@4.19.3)(yaml@2.7.0))(vitest@2.1.9(@types/node@18.19.70)(jsdom@22.1.0)(less@4.1.3)(sass-embedded@1.85.1)(sass@1.88.0)(stylus@0.64.0)(terser@5.39.1)) marked: 15.0.8 @@ -13798,7 +13846,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0(chokidar@3.6.0) - '@angular-devkit/build-webpack': 0.2000.0(chokidar@3.6.0)(webpack-dev-server@5.2.1(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)))(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + '@angular-devkit/build-webpack': 0.2000.0(chokidar@3.6.0)(webpack-dev-server@5.2.1(webpack@5.99.8(uglify-js@3.19.3)))(webpack@5.99.8(uglify-js@3.19.3)) '@angular-devkit/core': 20.0.0(chokidar@3.6.0) '@angular/build': 20.0.0(wi6xkcvxvoppkumf6eg2gyv46y) '@angular/compiler-cli': 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2) @@ -13812,14 +13860,14 @@ snapshots: '@babel/preset-env': 7.27.2(@babel/core@7.27.1) '@babel/runtime': 7.27.1 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + '@ngtools/webpack': 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)) '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.0(@types/node@18.19.70)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.85.1)(sass@1.88.0)(stylus@0.64.0)(terser@5.39.1)(tsx@4.19.3)(yaml@2.7.0)) ansi-colors: 4.1.3 autoprefixer: 10.4.21(postcss@8.5.3) - babel-loader: 10.0.0(@babel/core@7.27.1)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + babel-loader: 10.0.0(@babel/core@7.27.1)(webpack@5.99.8(uglify-js@3.19.3)) browserslist: 4.24.4 - copy-webpack-plugin: 13.0.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) - css-loader: 7.1.2(@rspack/core@1.3.12(@swc/helpers@0.5.15))(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + copy-webpack-plugin: 13.0.0(webpack@5.99.8(uglify-js@3.19.3)) + css-loader: 7.1.2(@rspack/core@1.3.12(@swc/helpers@0.5.15))(webpack@5.99.8(uglify-js@3.19.3)) esbuild-wasm: 0.25.5 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -13827,32 +13875,32 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.3.0 - less-loader: 12.3.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(less@4.3.0)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) - license-webpack-plugin: 4.0.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + less-loader: 12.3.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(less@4.3.0)(webpack@5.99.8(uglify-js@3.19.3)) + license-webpack-plugin: 4.0.2(webpack@5.99.8(uglify-js@3.19.3)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + mini-css-extract-plugin: 2.9.2(webpack@5.99.8(uglify-js@3.19.3)) open: 10.1.2 ora: 8.2.0 picomatch: 4.0.2 piscina: 5.0.0 postcss: 8.5.3 - postcss-loader: 8.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(postcss@8.5.3)(typescript@5.8.2)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + postcss-loader: 8.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(postcss@8.5.3)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.88.0 - sass-loader: 16.0.5(@rspack/core@1.3.12(@swc/helpers@0.5.15))(sass-embedded@1.85.1)(sass@1.88.0)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + sass-loader: 16.0.5(@rspack/core@1.3.12(@swc/helpers@0.5.15))(sass-embedded@1.85.1)(sass@1.88.0)(webpack@5.99.8(uglify-js@3.19.3)) semver: 7.7.2 - source-map-loader: 5.0.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + source-map-loader: 5.0.0(webpack@5.99.8(uglify-js@3.19.3)) source-map-support: 0.5.21 terser: 5.39.1 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.2 webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - webpack-dev-middleware: 7.4.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) - webpack-dev-server: 5.2.1(webpack@5.98.0(uglify-js@3.19.3)) + webpack-dev-middleware: 7.4.2(webpack@5.99.8(uglify-js@3.19.3)) + webpack-dev-server: 5.2.1(webpack@5.99.8(uglify-js@3.19.3)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) + webpack-subresource-integrity: 5.1.0(webpack@5.99.8(uglify-js@3.19.3)) optionalDependencies: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0) '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))(rxjs@7.8.0))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))(rxjs@7.8.0))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0)) @@ -13887,12 +13935,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2000.0(chokidar@3.6.0)(webpack-dev-server@5.2.1(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)))(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3))': + '@angular-devkit/build-webpack@0.2000.0(chokidar@3.6.0)(webpack-dev-server@5.2.1(webpack@5.99.8(uglify-js@3.19.3)))(webpack@5.99.8(uglify-js@3.19.3))': dependencies: '@angular-devkit/architect': 0.2000.0(chokidar@3.6.0) rxjs: 7.8.2 webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - webpack-dev-server: 5.2.1(webpack@5.98.0(uglify-js@3.19.3)) + webpack-dev-server: 5.2.1(webpack@5.99.8(uglify-js@3.19.3)) transitivePeerDependencies: - chokidar @@ -13938,42 +13986,42 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@19.6.0(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/builder@19.6.0(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-devkit/architect': 0.1902.4(chokidar@3.6.0) '@angular-devkit/core': 19.2.4(chokidar@3.6.0) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - chokidar '@angular-eslint/bundled-angular-compiler@19.6.0': {} - '@angular-eslint/eslint-plugin-template@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/eslint-plugin-template@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) aria-query: 5.3.2 axobject-query: 4.1.0 - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 - '@angular-eslint/eslint-plugin@19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/eslint-plugin@19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 - '@angular-eslint/schematics@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/schematics@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-devkit/core': 19.2.4(chokidar@3.6.0) '@angular-devkit/schematics': 19.2.4(chokidar@3.6.0) - '@angular-eslint/eslint-plugin': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - '@angular-eslint/eslint-plugin-template': 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@angular-eslint/eslint-plugin': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@angular-eslint/eslint-plugin-template': 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) ignore: 7.0.4 semver: 7.7.2 strip-json-comments: 3.1.1 @@ -13984,28 +14032,28 @@ snapshots: - eslint - typescript - '@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) eslint-scope: 8.2.0 typescript: 5.8.2 - '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/rule-tester': 8.10.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/rule-tester': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 optionalDependencies: - '@angular-eslint/template-parser': 19.6.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@angular-eslint/template-parser': 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@angular-eslint/utils@19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + '@angular-eslint/utils@19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 '@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))(rxjs@7.8.0))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))': @@ -15941,13 +15989,27 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.31.0(jiti@2.4.2))': dependencies: - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} + '@eslint/config-array@0.21.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.3.0': {} + + '@eslint/core@0.15.1': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -15962,8 +16024,31 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.0(supports-color@8.1.1) + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/js@8.57.0': {} + '@eslint/js@9.31.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.3.3': + dependencies: + '@eslint/core': 0.15.1 + levn: 0.4.1 + '@fastify/busboy@3.1.1': {} '@firebase/app-check-interop-types@0.3.2': {} @@ -16069,17 +16154,18 @@ snapshots: yargs: 17.7.2 optional: true - '@humanwhocodes/config-array@0.11.14': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} '@inquirer/checkbox@4.1.8(@types/node@18.19.70)': dependencies: @@ -16646,32 +16732,6 @@ snapshots: - supports-color - utf-8-validate - '@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3))': - dependencies: - '@module-federation/bridge-react-webpack-plugin': 0.11.1 - '@module-federation/data-prefetch': 0.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@module-federation/dts-plugin': 0.11.1(typescript@5.8.2) - '@module-federation/error-codes': 0.11.1 - '@module-federation/inject-external-runtime-core-plugin': 0.11.1(@module-federation/runtime-tools@0.11.1) - '@module-federation/managers': 0.11.1 - '@module-federation/manifest': 0.11.1(typescript@5.8.2) - '@module-federation/rspack': 0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(typescript@5.8.2) - '@module-federation/runtime-tools': 0.11.1 - '@module-federation/sdk': 0.11.1 - btoa: 1.2.1 - upath: 2.0.1 - optionalDependencies: - typescript: 5.8.2 - webpack: 5.98.0(uglify-js@3.19.3) - transitivePeerDependencies: - - '@rspack/core' - - bufferutil - - debug - - react - - react-dom - - supports-color - - utf-8-validate - '@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.11.1 @@ -16688,7 +16748,7 @@ snapshots: upath: 2.0.1 optionalDependencies: typescript: 5.8.2 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -16714,7 +16774,7 @@ snapshots: upath: 2.0.1 optionalDependencies: typescript: 5.8.2 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -16780,28 +16840,6 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3))': - dependencies: - '@module-federation/enhanced': 0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)) - '@module-federation/runtime': 0.11.1 - '@module-federation/sdk': 0.11.1 - '@module-federation/utilities': 3.1.48(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.98.0(uglify-js@3.19.3)) - btoa: 1.2.1 - encoding: 0.1.13 - node-fetch: 2.7.0(encoding@0.1.13) - webpack: 5.98.0(uglify-js@3.19.3) - optionalDependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - transitivePeerDependencies: - - '@rspack/core' - - bufferutil - - debug - - supports-color - - typescript - - utf-8-validate - - vue-tsc - '@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3))': dependencies: '@module-federation/enhanced': 0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)) @@ -16811,7 +16849,7 @@ snapshots: btoa: 1.2.1 encoding: 0.1.13 node-fetch: 2.7.0(encoding@0.1.13) - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) optionalDependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -16927,18 +16965,10 @@ snapshots: fs-extra: 9.1.0 resolve: 1.22.8 - '@module-federation/utilities@3.1.48(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.98.0(uglify-js@3.19.3))': - dependencies: - '@module-federation/sdk': 0.11.1 - webpack: 5.98.0(uglify-js@3.19.3) - optionalDependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - '@module-federation/utilities@3.1.48(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.99.8(uglify-js@3.19.3))': dependencies: '@module-federation/sdk': 0.11.1 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) optionalDependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -17143,7 +17173,7 @@ snapshots: - rollup - supports-color - '@ngtools/webpack@20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3))': + '@ngtools/webpack@20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3))': dependencies: '@angular/compiler-cli': 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.2) typescript: 5.8.2 @@ -17228,22 +17258,22 @@ snapshots: - bluebird - supports-color - '@nx/angular@21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3)': + '@nx/angular@21.1.2(@angular-devkit/build-angular@20.0.0(4nvwp2sskuarcmcou5yjtwpbve))(@angular-devkit/core@20.0.0(chokidar@3.6.0))(@angular-devkit/schematics@20.0.0(chokidar@3.6.0))(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@schematics/angular@20.0.0(chokidar@3.6.0))(@swc/helpers@0.5.15)(@types/express@4.17.21)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rxjs@7.8.0)(typescript@5.8.2)(uglify-js@3.19.3)': dependencies: '@angular-devkit/build-angular': 20.0.0(4nvwp2sskuarcmcou5yjtwpbve) '@angular-devkit/core': 20.0.0(chokidar@3.6.0) '@angular-devkit/schematics': 20.0.0(chokidar@3.6.0) '@nx/devkit': 21.1.2(nx@21.1.2) - '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@21.1.2) + '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) '@nx/module-federation': 21.1.2(@babel/traverse@7.27.3)(@swc/helpers@0.5.15)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3) - '@nx/rspack': 21.1.2(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@swc/helpers@0.5.15)(@types/express@4.17.21)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3) + '@nx/rspack': 21.1.2(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@swc/helpers@0.5.15)(@types/express@4.17.21)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3) '@nx/web': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) '@nx/webpack': 21.1.2(@babel/traverse@7.27.3)(@rspack/core@1.3.12(@swc/helpers@0.5.15))(nx@21.1.2)(typescript@5.8.2)(uglify-js@3.19.3) '@nx/workspace': 21.1.2 '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.2) '@schematics/angular': 20.0.0(chokidar@3.6.0) - '@typescript-eslint/type-utils': 8.19.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) enquirer: 2.3.6 magic-string: 0.30.17 picocolors: 1.1.1 @@ -17289,10 +17319,10 @@ snapshots: - vue-tsc - webpack-cli - '@nx/cypress@21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(cypress@14.2.1)(eslint@8.57.0)(nx@21.1.2)(typescript@5.8.2)': + '@nx/cypress@21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(cypress@14.2.1)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2)': dependencies: '@nx/devkit': 21.1.2(nx@21.1.2) - '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@21.1.2) + '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.2) detect-port: 1.6.1 @@ -17325,13 +17355,13 @@ snapshots: tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/eslint-plugin@21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@8.57.0))(eslint@8.57.0)(nx@21.1.2)(typescript@5.8.2)': + '@nx/eslint-plugin@21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2)': dependencies: '@nx/devkit': 21.1.2(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/type-utils': 8.19.1(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.14.0 @@ -17339,7 +17369,7 @@ snapshots: semver: 7.7.2 tslib: 2.8.1 optionalDependencies: - eslint-config-prettier: 10.0.0(eslint@8.57.0) + eslint-config-prettier: 10.0.0(eslint@9.31.0(jiti@2.4.2)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -17351,11 +17381,11 @@ snapshots: - typescript - verdaccio - '@nx/eslint@21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@21.1.2)': + '@nx/eslint@21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)': dependencies: '@nx/devkit': 21.1.2(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) semver: 7.7.2 tslib: 2.8.1 typescript: 5.7.3 @@ -17453,7 +17483,7 @@ snapshots: http-proxy-middleware: 3.0.5 picocolors: 1.1.1 tslib: 2.8.1 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -17474,10 +17504,10 @@ snapshots: - vue-tsc - webpack-cli - '@nx/node@21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@8.57.0)(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2)': + '@nx/node@21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2)': dependencies: '@nx/devkit': 21.1.2(nx@21.1.2) - '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@21.1.2) + '@nx/eslint': 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2) '@nx/jest': 21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) kill-port: 1.6.1 @@ -17529,10 +17559,10 @@ snapshots: '@nx/nx-win32-x64-msvc@21.1.2': optional: true - '@nx/rspack@21.1.2(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)))(@swc/helpers@0.5.15)(@types/express@4.17.21)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3)': + '@nx/rspack@21.1.2(@babel/traverse@7.27.3)(@module-federation/enhanced@0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@module-federation/node@2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)))(@swc/helpers@0.5.15)(@types/express@4.17.21)(less@4.1.3)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3)': dependencies: - '@module-federation/enhanced': 0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)) - '@module-federation/node': 2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.98.0(uglify-js@3.19.3)) + '@module-federation/enhanced': 0.11.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)) + '@module-federation/node': 2.6.30(@rspack/core@1.3.12(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)) '@nx/devkit': 21.1.2(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) '@nx/module-federation': 21.1.2(@babel/traverse@7.27.3)(@swc/helpers@0.5.15)(nx@21.1.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)(uglify-js@3.19.3) @@ -17562,7 +17592,7 @@ snapshots: style-loader: 3.3.4(webpack@5.99.8(uglify-js@3.19.3)) ts-checker-rspack-plugin: 1.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(typescript@5.8.2) tslib: 2.8.1 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) webpack-node-externals: 3.0.0 transitivePeerDependencies: - '@babel/traverse' @@ -18640,15 +18670,15 @@ snapshots: '@types/node': 18.19.70 optional: true - '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.19.0 - '@typescript-eslint/type-utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.19.0 - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -18657,32 +18687,32 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.19.0 '@typescript-eslint/types': 8.19.0 '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.19.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) ajv: 6.12.6 - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.1 @@ -18710,23 +18740,23 @@ snapshots: '@typescript-eslint/types': 8.19.1 '@typescript-eslint/visitor-keys': 8.19.1 - '@typescript-eslint/type-utils@8.19.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) ts-api-utils: 1.4.3(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.19.1(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) ts-api-utils: 2.0.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -18797,50 +18827,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/utils@5.62.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.2) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) eslint-scope: 5.1.1 semver: 7.7.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.8.2) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.19.0(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.19.0 '@typescript-eslint/types': 8.19.0 '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.1(eslint@8.57.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.19.1 '@typescript-eslint/types': 8.19.1 '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.8.2) - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -18872,8 +18902,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.2.1': {} - '@vercel/nft@0.27.7(encoding@0.1.13)(rollup@4.40.0)': dependencies: '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) @@ -18897,8 +18925,8 @@ snapshots: dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) '@rollup/pluginutils': 5.1.4(rollup@4.40.0) - acorn: 8.14.0 - acorn-import-attributes: 1.9.5(acorn@8.14.0) + acorn: 8.14.1 + acorn-import-attributes: 1.9.5(acorn@8.14.1) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -19105,29 +19133,31 @@ snapshots: acorn-globals@7.0.1: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 acorn-walk: 8.3.4 - acorn-import-attributes@1.9.5(acorn@8.14.0): + acorn-import-attributes@1.9.5(acorn@8.14.1): dependencies: - acorn: 8.14.0 + acorn: 8.14.1 - acorn-import-attributes@1.9.5(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 acorn@8.14.0: {} acorn@8.14.1: {} + acorn@8.15.0: {} + add-stream@1.0.0: {} address@1.2.2: {} @@ -19454,7 +19484,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.27.1)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + babel-loader@10.0.0(@babel/core@7.27.1)(webpack@5.99.8(uglify-js@3.19.3)): dependencies: '@babel/core': 7.27.1 find-up: 5.0.0 @@ -20372,7 +20402,7 @@ snapshots: serialize-javascript: 6.0.2 webpack: 5.98.0(uglify-js@3.19.3) - copy-webpack-plugin@13.0.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + copy-webpack-plugin@13.0.0(webpack@5.99.8(uglify-js@3.19.3)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 @@ -20548,9 +20578,9 @@ snapshots: semver: 7.7.2 optionalDependencies: '@rspack/core': 1.3.12(@swc/helpers@0.5.15) - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - css-loader@7.1.2(@rspack/core@1.3.12(@swc/helpers@0.5.15))(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + css-loader@7.1.2(@rspack/core@1.3.12(@swc/helpers@0.5.15))(webpack@5.99.8(uglify-js@3.19.3)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -21182,10 +21212,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} dom-serialize@2.2.1: @@ -21660,14 +21686,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.0.0(eslint@8.57.0): + eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)): dependencies: - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) - eslint-etc@5.2.1(eslint@8.57.0)(typescript@5.8.2): + eslint-etc@5.2.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) tsutils: 3.21.0(typescript@5.8.2) tsutils-etc: 1.4.2(tsutils@3.21.0(typescript@5.8.2))(typescript@5.8.2) typescript: 5.8.2 @@ -21682,30 +21708,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-cypress@2.14.0(eslint@8.57.0): + eslint-plugin-cypress@2.14.0(eslint@9.31.0(jiti@2.4.2)): dependencies: - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) globals: 13.24.0 - eslint-plugin-import@2.26.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0): + eslint-plugin-import@2.26.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.3 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 9.31.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)) has: 1.0.4 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -21714,7 +21740,7 @@ snapshots: resolve: 1.22.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -21725,12 +21751,12 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.2.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -21739,53 +21765,60 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@8.57.0: + eslint-visitor-keys@4.2.1: {} + + eslint@9.31.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.3.0 + '@eslint/core': 0.15.1 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.31.0 + '@eslint/plugin-kit': 0.3.3 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.0(supports-color@8.1.1) - 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.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.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.2 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 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 3.4.3 esprima@2.7.3: {} @@ -22088,9 +22121,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - 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: {} @@ -22219,11 +22252,10 @@ snapshots: transitivePeerDependencies: - supports-color - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.2 keyv: 4.5.4 - rimraf: 3.0.2 flat@5.0.2: {} @@ -22615,6 +22647,8 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@14.0.0: {} + globals@15.14.0: {} globalthis@1.0.4: @@ -22644,7 +22678,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.3 - ignore: 7.0.3 + ignore: 7.0.4 path-type: 6.0.0 slash: 5.1.0 unicorn-magic: 0.3.0 @@ -23061,8 +23095,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.3: {} - ignore@7.0.4: {} image-size@0.5.5: @@ -23384,7 +23416,7 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 is-regex@1.2.1: dependencies: @@ -24002,7 +24034,7 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.14.0 + acorn: 8.14.1 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -24363,9 +24395,9 @@ snapshots: dependencies: klona: 2.0.6 less: 4.1.3 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - less-loader@12.3.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(less@4.3.0)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + less-loader@12.3.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(less@4.3.0)(webpack@5.99.8(uglify-js@3.19.3)): dependencies: less: 4.3.0 optionalDependencies: @@ -24427,17 +24459,11 @@ snapshots: optionalDependencies: webpack: 5.98.0(uglify-js@3.19.3) - license-webpack-plugin@4.0.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): - dependencies: - webpack-sources: 3.2.3 - optionalDependencies: - webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - license-webpack-plugin@4.0.2(webpack@5.99.8(uglify-js@3.19.3)): dependencies: webpack-sources: 3.2.3 optionalDependencies: - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) lie@3.3.0: dependencies: @@ -25162,7 +25188,7 @@ snapshots: schema-utils: 4.3.2 webpack: 5.98.0(uglify-js@3.19.3) - mini-css-extract-plugin@2.9.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + mini-css-extract-plugin@2.9.2(webpack@5.99.8(uglify-js@3.19.3)): dependencies: schema-utils: 4.3.0 tapable: 2.2.1 @@ -25256,7 +25282,7 @@ snapshots: mlly@1.7.4: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.1 @@ -26272,18 +26298,6 @@ snapshots: semver: 7.7.2 webpack: 5.98.0(uglify-js@3.19.3) - postcss-loader@8.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(postcss@8.5.3)(typescript@5.8.2)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): - dependencies: - cosmiconfig: 9.0.0(typescript@5.8.2) - jiti: 1.21.7 - postcss: 8.5.3 - semver: 7.7.2 - optionalDependencies: - '@rspack/core': 1.3.12(@swc/helpers@0.5.15) - webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - transitivePeerDependencies: - - typescript - postcss-loader@8.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(postcss@8.5.3)(typescript@5.8.2)(webpack@5.99.8(uglify-js@3.19.3)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.2) @@ -26292,7 +26306,7 @@ snapshots: semver: 7.7.2 optionalDependencies: '@rspack/core': 1.3.12(@swc/helpers@0.5.15) - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) transitivePeerDependencies: - typescript @@ -27299,15 +27313,6 @@ snapshots: sass-embedded: 1.85.1 webpack: 5.98.0(uglify-js@3.19.3) - sass-loader@16.0.5(@rspack/core@1.3.12(@swc/helpers@0.5.15))(sass-embedded@1.85.1)(sass@1.88.0)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): - dependencies: - neo-async: 2.6.2 - optionalDependencies: - '@rspack/core': 1.3.12(@swc/helpers@0.5.15) - sass: 1.88.0 - sass-embedded: 1.85.1 - webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - sass-loader@16.0.5(@rspack/core@1.3.12(@swc/helpers@0.5.15))(sass-embedded@1.85.1)(sass@1.88.0)(webpack@5.99.8(uglify-js@3.19.3)): dependencies: neo-async: 2.6.2 @@ -27315,7 +27320,7 @@ snapshots: '@rspack/core': 1.3.12(@swc/helpers@0.5.15) sass: 1.88.0 sass-embedded: 1.85.1 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) sass@1.85.1: dependencies: @@ -27718,17 +27723,11 @@ snapshots: source-map-js: 1.2.1 webpack: 5.98.0(uglify-js@3.19.3) - source-map-loader@5.0.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.1 - webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - source-map-loader@5.0.0(webpack@5.99.8(uglify-js@3.19.3)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) source-map-resolve@0.5.3: dependencies: @@ -28042,7 +28041,7 @@ snapshots: style-loader@3.3.4(webpack@5.99.8(uglify-js@3.19.3)): dependencies: - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) style-mod@4.1.2: {} @@ -28173,7 +28172,7 @@ snapshots: os-tmpdir: 1.0.2 uuid: 2.0.3 - terser-webpack-plugin@5.3.11(esbuild@0.25.5)(uglify-js@3.19.3)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + terser-webpack-plugin@5.3.11(esbuild@0.25.5)(uglify-js@3.19.3)(webpack@5.99.8(uglify-js@3.19.3)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 @@ -28196,17 +28195,6 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - terser-webpack-plugin@5.3.11(uglify-js@3.19.3)(webpack@5.99.8(uglify-js@3.19.3)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - terser: 5.39.0 - webpack: 5.99.8(uglify-js@3.19.3) - optionalDependencies: - uglify-js: 3.19.3 - terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -28235,8 +28223,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - thingies@1.21.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -28578,12 +28564,12 @@ snapshots: typed-assert@1.0.9: {} - typescript-eslint@8.19.0(eslint@8.57.0)(typescript@5.8.2): + typescript-eslint@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - eslint: 8.57.0 + '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -28611,7 +28597,7 @@ snapshots: unctx@2.4.1: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 estree-walker: 3.0.3 magic-string: 0.30.17 unplugin: 2.3.2 @@ -29066,17 +29052,6 @@ snapshots: optionalDependencies: webpack: 5.98.0(uglify-js@3.19.3) - webpack-dev-middleware@7.4.2(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): - dependencies: - colorette: 2.0.20 - memfs: 4.16.0 - mime-types: 2.1.35 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.0 - optionalDependencies: - webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) - webpack-dev-middleware@7.4.2(webpack@5.99.8(uglify-js@3.19.3)): dependencies: colorette: 2.0.20 @@ -29086,7 +29061,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) webpack-dev-server@5.2.0(webpack@5.99.8(uglify-js@3.19.3)): dependencies: @@ -29118,7 +29093,7 @@ snapshots: webpack-dev-middleware: 7.4.2(webpack@5.99.8(uglify-js@3.19.3)) ws: 8.18.0 optionalDependencies: - webpack: 5.99.8(uglify-js@3.19.3) + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) transitivePeerDependencies: - bufferutil - debug @@ -29163,6 +29138,44 @@ snapshots: - supports-color - utf-8-validate + webpack-dev-server@5.2.1(webpack@5.99.8(uglify-js@3.19.3)): + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.6 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.7 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.13 + ansi-html-community: 0.0.8 + bonjour-service: 1.3.0 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.5 + connect-history-api-fallback: 2.0.0 + express: 4.21.2 + graceful-fs: 4.2.11 + http-proxy-middleware: 2.0.7(@types/express@4.17.21) + ipaddr.js: 2.2.0 + launch-editor: 2.9.1 + open: 10.1.2 + p-retry: 6.2.1 + schema-utils: 4.3.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack-dev-middleware: 7.4.2(webpack@5.99.8(uglify-js@3.19.3)) + ws: 8.18.0 + optionalDependencies: + webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + webpack-merge@5.10.0: dependencies: clone-deep: 4.0.1 @@ -29184,7 +29197,7 @@ snapshots: typed-assert: 1.0.9 webpack: 5.98.0(uglify-js@3.19.3) - webpack-subresource-integrity@5.1.0(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)): + webpack-subresource-integrity@5.1.0(webpack@5.99.8(uglify-js@3.19.3)): dependencies: typed-assert: 1.0.9 webpack: 5.99.8(esbuild@0.25.5)(uglify-js@3.19.3) @@ -29244,38 +29257,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.25.5)(uglify-js@3.19.3)(webpack@5.99.8(esbuild@0.25.5)(uglify-js@3.19.3)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.99.8(uglify-js@3.19.3): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 - browserslist: 4.24.4 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.0 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(uglify-js@3.19.3)(webpack@5.99.8(uglify-js@3.19.3)) + terser-webpack-plugin: 5.3.11(esbuild@0.25.5)(uglify-js@3.19.3)(webpack@5.99.8(uglify-js@3.19.3)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/projects/example-app-e2e/.eslintrc.json b/projects/example-app-e2e/.eslintrc.json deleted file mode 100644 index ddc08a01a8..0000000000 --- a/projects/example-app-e2e/.eslintrc.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "parserOptions": { - "project": "projects/example-app-e2e/tsconfig.*?.json" - }, - "rules": {} - }, - { - "files": ["src/plugins/index.js"], - "rules": { - "@typescript-eslint/no-var-requires": "off", - "no-undef": "off" - } - } - ], - "plugins": ["@typescript-eslint"], - "rules": {} -} diff --git a/projects/example-app-e2e/eslint.config.mjs b/projects/example-app-e2e/eslint.config.mjs new file mode 100644 index 0000000000..c1af79cd56 --- /dev/null +++ b/projects/example-app-e2e/eslint.config.mjs @@ -0,0 +1,43 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; +import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat.extends('plugin:cypress/recommended'), + { plugins: { '@typescript-eslint': typescriptEslintEslintPlugin } }, + { + rules: {}, + }, + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + languageOptions: { + parserOptions: { + project: 'projects/example-app-e2e/tsconfig.*?.json', + }, + }, + }, + { + files: ['src/plugins/index.js'], + rules: { + '@typescript-eslint/no-var-requires': 'off', + 'no-undef': 'off', + }, + }, + { + ignores: ['schematics-core'], + }, +]; diff --git a/projects/example-app-e2e/project.json b/projects/example-app-e2e/project.json index cdb317c174..24780e14b3 100644 --- a/projects/example-app-e2e/project.json +++ b/projects/example-app-e2e/project.json @@ -3,6 +3,8 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "projects/example-app-e2e/src", "projectType": "application", + "tags": [], + "implicitDependencies": ["example-app"], "targets": { "e2e": { "executor": "@nx/cypress:cypress", @@ -27,7 +29,5 @@ }, "outputs": ["{options.outputFile}"] } - }, - "tags": [], - "implicitDependencies": ["example-app"] + } } diff --git a/projects/example-app/.eslintrc.json b/projects/example-app/.eslintrc.json deleted file mode 100644 index 4c0aa0c0bd..0000000000 --- a/projects/example-app/.eslintrc.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "**/environment.prod.ts"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["projects/example-app/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "bc", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "bc", - "style": "kebab-case" - } - ], - "@typescript-eslint/prefer-namespace-keyword": "error", - "@nx/enforce-module-boundaries": "off", - "eqeqeq": ["off", "smart"], - "id-blacklist": [ - "error", - "any", - "Number", - "number", - "String", - "string", - "Boolean", - "boolean", - "Undefined", - "undefined" - ], - "id-match": "error", - "no-eval": "off", - "no-redeclare": "error", - "no-underscore-dangle": "error", - "no-var": "error", - "no-case-declarations": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": ["@typescript-eslint"] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/projects/example-app/eslint.config.mjs b/projects/example-app/eslint.config.mjs new file mode 100644 index 0000000000..c7f0bf93ee --- /dev/null +++ b/projects/example-app/eslint.config.mjs @@ -0,0 +1,89 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'bc', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'bc', + style: 'kebab-case', + }, + ], + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@nx/enforce-module-boundaries': 'off', + eqeqeq: ['off', 'smart'], + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'no-eval': 'off', + 'no-redeclare': 'error', + 'no-underscore-dangle': 'error', + 'no-var': 'error', + 'no-case-declarations': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['projects/example-app/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['**/environment.prod.ts'], + }, +]; diff --git a/projects/ngrx.io/.eslintrc.json b/projects/ngrx.io/.eslintrc.json deleted file mode 100644 index de0a482819..0000000000 --- a/projects/ngrx.io/.eslintrc.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "schematics-core"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "parserOptions": { - "project": ["projects/ngrx.io/tsconfig.*?.json"] - }, - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": ["aio", "ngrx"], - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": ["aio", "ngrx"], - "style": "kebab-case" - } - ], - "@angular-eslint/component-class-suffix": "error", - "@angular-eslint/directive-class-suffix": "error", - "@angular-eslint/no-input-rename": "off", - "@angular-eslint/no-output-rename": "off", - "@angular-eslint/no-output-on-prefix": "off", - "@angular-eslint/no-output-native": "off", - "@angular-eslint/use-pipe-transform-interface": "error", - "@typescript-eslint/consistent-type-definitions": "error", - "@typescript-eslint/dot-notation": "off", - "@typescript-eslint/explicit-member-accessibility": [ - "off", - { - "accessibility": "explicit" - } - ], - "@typescript-eslint/member-delimiter-style": [ - "off", - { - "multiline": { - "delimiter": "none", - "requireLast": true - }, - "singleline": { - "delimiter": "semi", - "requireLast": false - } - } - ], - "@typescript-eslint/member-ordering": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-empty-interface": "error", - "@typescript-eslint/no-shadow": [ - "error", - { - "hoist": "all" - } - ], - "@typescript-eslint/no-unused-expressions": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/semi": ["off", null], - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/no-non-null-assertion": "off", - "brace-style": ["error", "1tbs"], - "curly": "error", - "eol-last": "error", - "eqeqeq": ["error", "smart"], - "guard-for-in": "error", - "id-blacklist": "off", - "id-match": "off", - "import/no-deprecated": "warn", - "max-len": [ - "error", - { - "code": 160 - } - ], - "no-bitwise": "error", - "no-caller": "error", - "no-console": [ - "error", - { - "allow": [ - "log", - "warn", - "dir", - "timeLog", - "assert", - "clear", - "count", - "countReset", - "group", - "groupEnd", - "table", - "dirxml", - "error", - "groupCollapsed", - "Console", - "profile", - "profileEnd", - "timeStamp", - "context" - ] - } - ], - "no-debugger": "error", - "no-empty": "off", - "no-eval": "error", - "no-fallthrough": "error", - "no-new-wrappers": "error", - "no-redeclare": "error", - "no-restricted-imports": "error", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-underscore-dangle": "off", - "no-unused-labels": "error", - "no-var": "error", - "prefer-const": "error", - "radix": "error", - "spaced-comment": [ - "error", - "always", - { - "markers": ["/"] - } - ], - "no-prototype-builtins": "off", - "@angular-eslint/prefer-standalone": "off" - }, - "plugins": [ - "eslint-plugin-import", - "@angular-eslint/eslint-plugin", - "@typescript-eslint" - ] - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/projects/ngrx.io/eslint.config.mjs b/projects/ngrx.io/eslint.config.mjs new file mode 100644 index 0000000000..b3d18a7ce3 --- /dev/null +++ b/projects/ngrx.io/eslint.config.mjs @@ -0,0 +1,178 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: [ + 'eslint-plugin-import', + '@angular-eslint/eslint-plugin', + '@typescript-eslint', + ], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: ['aio', 'ngrx'], + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: ['aio', 'ngrx'], + style: 'kebab-case', + }, + ], + '@angular-eslint/component-class-suffix': 'error', + '@angular-eslint/directive-class-suffix': 'error', + '@angular-eslint/no-input-rename': 'off', + '@angular-eslint/no-output-rename': 'off', + '@angular-eslint/no-output-on-prefix': 'off', + '@angular-eslint/no-output-native': 'off', + '@angular-eslint/use-pipe-transform-interface': 'error', + '@typescript-eslint/consistent-type-definitions': 'error', + '@typescript-eslint/dot-notation': 'off', + '@typescript-eslint/explicit-member-accessibility': [ + 'off', + { + accessibility: 'explicit', + }, + ], + '@typescript-eslint/member-delimiter-style': [ + 'off', + { + multiline: { + delimiter: 'none', + requireLast: true, + }, + singleline: { + delimiter: 'semi', + requireLast: false, + }, + }, + ], + '@typescript-eslint/member-ordering': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-empty-interface': 'error', + '@typescript-eslint/no-shadow': [ + 'error', + { + hoist: 'all', + }, + ], + '@typescript-eslint/no-unused-expressions': 'error', + '@typescript-eslint/prefer-function-type': 'error', + '@typescript-eslint/semi': ['off', null], + '@typescript-eslint/unified-signatures': 'error', + '@typescript-eslint/no-non-null-assertion': 'off', + 'brace-style': ['error', '1tbs'], + curly: 'error', + 'eol-last': 'error', + eqeqeq: ['error', 'smart'], + 'guard-for-in': 'error', + 'id-blacklist': 'off', + 'id-match': 'off', + 'import/no-deprecated': 'warn', + 'max-len': [ + 'error', + { + code: 160, + }, + ], + 'no-bitwise': 'error', + 'no-caller': 'error', + 'no-console': [ + 'error', + { + allow: [ + 'log', + 'warn', + 'dir', + 'timeLog', + 'assert', + 'clear', + 'count', + 'countReset', + 'group', + 'groupEnd', + 'table', + 'dirxml', + 'error', + 'groupCollapsed', + 'Console', + 'profile', + 'profileEnd', + 'timeStamp', + 'context', + ], + }, + ], + 'no-debugger': 'error', + 'no-empty': 'off', + 'no-eval': 'error', + 'no-fallthrough': 'error', + 'no-new-wrappers': 'error', + 'no-redeclare': 'error', + 'no-restricted-imports': 'error', + 'no-throw-literal': 'error', + 'no-trailing-spaces': 'error', + 'no-underscore-dangle': 'off', + 'no-unused-labels': 'error', + 'no-var': 'error', + 'prefer-const': 'error', + radix: 'error', + 'spaced-comment': [ + 'error', + 'always', + { + markers: ['/'], + }, + ], + 'no-prototype-builtins': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['projects/ngrx.io/tsconfig.*?.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['schematics-core'], + }, +]; diff --git a/projects/ngrx.io/project.json b/projects/ngrx.io/project.json index 22c5d28858..fbafc57e09 100644 --- a/projects/ngrx.io/project.json +++ b/projects/ngrx.io/project.json @@ -4,6 +4,18 @@ "sourceRoot": "projects/ngrx.io/src", "projectType": "application", "prefix": "aio", + "tags": [], + "implicitDependencies": [ + "store", + "effects", + "router-store", + "store-devtools", + "entity", + "data", + "schematics", + "component", + "component-store" + ], "generators": {}, "targets": { "build": { @@ -56,17 +68,5 @@ }, "outputs": ["{options.outputFile}"] } - }, - "tags": [], - "implicitDependencies": [ - "store", - "effects", - "router-store", - "store-devtools", - "entity", - "data", - "schematics", - "component", - "component-store" - ] + } } diff --git a/projects/standalone-app-e2e/.eslintrc.json b/projects/standalone-app-e2e/.eslintrc.json deleted file mode 100644 index 696cb8b121..0000000000 --- a/projects/standalone-app-e2e/.eslintrc.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/projects/standalone-app-e2e/eslint.config.mjs b/projects/standalone-app-e2e/eslint.config.mjs new file mode 100644 index 0000000000..1c62a3fd2f --- /dev/null +++ b/projects/standalone-app-e2e/eslint.config.mjs @@ -0,0 +1,23 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat.extends('plugin:cypress/recommended'), + { + files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], + // Override or add rules here + rules: {}, + }, +]; diff --git a/projects/standalone-app-e2e/project.json b/projects/standalone-app-e2e/project.json index 7f68d862f4..be2225fcde 100644 --- a/projects/standalone-app-e2e/project.json +++ b/projects/standalone-app-e2e/project.json @@ -3,6 +3,8 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "projects/standalone-app-e2e/src", "projectType": "application", + "tags": [], + "implicitDependencies": ["standalone-app"], "targets": { "e2e": { "executor": "@nx/cypress:cypress", @@ -24,7 +26,5 @@ "lintFilePatterns": ["projects/standalone-app-e2e/**/*.{js,ts}"] } } - }, - "tags": [], - "implicitDependencies": ["standalone-app"] + } } diff --git a/projects/standalone-app/.eslintrc.json b/projects/standalone-app/.eslintrc.json deleted file mode 100644 index 21321adab3..0000000000 --- a/projects/standalone-app/.eslintrc.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "ngrx", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "ngrx", - "style": "kebab-case" - } - ], - "@angular-eslint/prefer-standalone": "off" - } - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/angular-template"], - "rules": {} - } - ] -} diff --git a/projects/standalone-app/eslint.config.mjs b/projects/standalone-app/eslint.config.mjs new file mode 100644 index 0000000000..895b86aea2 --- /dev/null +++ b/projects/standalone-app/eslint.config.mjs @@ -0,0 +1,59 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'ngrx', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'ngrx', + style: 'kebab-case', + }, + ], + '@angular-eslint/prefer-standalone': 'off', + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), +]; From 5661c1e08bdd382545802dc1b64f0d0b72ff2cd4 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 15 Jul 2025 23:47:00 +0000 Subject: [PATCH 02/28] fix: remove reference to eslintrc.json in nx.json --- nx.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/nx.json b/nx.json index 5b08de61d6..9f34314721 100644 --- a/nx.json +++ b/nx.json @@ -58,11 +58,7 @@ "cache": true }, "lint": { - "inputs": [ - "default", - "{workspaceRoot}/.eslintrc.json", - "{workspaceRoot}/eslint.config.mjs" - ], + "inputs": ["default", "{workspaceRoot}/eslint.config.mjs"], "cache": true }, "build-package": { From 727cb962dbf3af580be8a31e33f88e92856f96a2 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Wed, 16 Jul 2025 18:08:59 +0000 Subject: [PATCH 03/28] feat(package.json): change lint command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 91c9cc0396..5e9ec2b39a 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "update:check": "ng update", "update:versions": "ts-node ./build/update-version-numbers.ts", "postupdate:versions": "npm run changelog", - "lint": "nx workspace-lint && ng lint", + "lint": "nx run-many --target=lint --all", "eslint-plugin:update": "ts-node ./build/generate-eslint-plugin.ts", "prepare": "husky install" }, From 6764780c9f0cffafa2690b6f538313982b6fb7f0 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:30:06 +0000 Subject: [PATCH 04/28] chore(eslint): add ts-check to config files --- eslint.config.mjs | 2 ++ modules/component-store/eslint.config.mjs | 2 ++ modules/component/eslint.config.mjs | 2 ++ modules/data/eslint.config.mjs | 2 ++ modules/effects/eslint.config.mjs | 2 ++ modules/entity/eslint.config.mjs | 2 ++ modules/operators/eslint.config.mjs | 2 ++ modules/router-store/eslint.config.mjs | 2 ++ modules/schematics-core/eslint.config.mjs | 2 ++ modules/schematics/eslint.config.mjs | 2 ++ modules/signals/eslint.config.mjs | 2 ++ modules/store-devtools/eslint.config.mjs | 2 ++ modules/store/eslint.config.mjs | 2 ++ 13 files changed, 26 insertions(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 936417b846..fe702997b2 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import nxEslintPlugin from '@nx/eslint-plugin'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-ignore recommendedConfig: js.configs.recommended, }); diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs index bc0629a8e8..1012aaa6a7 100644 --- a/modules/component-store/eslint.config.mjs +++ b/modules/component-store/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs index 125bde2289..09ec7d7c6a 100644 --- a/modules/component/eslint.config.mjs +++ b/modules/component/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/data/eslint.config.mjs b/modules/data/eslint.config.mjs index 0a1c35fc50..bbe728cca3 100644 --- a/modules/data/eslint.config.mjs +++ b/modules/data/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index 0f916615c6..ae72444a47 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs index 999824d82c..665162a5e5 100644 --- a/modules/entity/eslint.config.mjs +++ b/modules/entity/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/operators/eslint.config.mjs b/modules/operators/eslint.config.mjs index 2fba3236ec..3160d6ef39 100644 --- a/modules/operators/eslint.config.mjs +++ b/modules/operators/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs index b1012070de..ae47085fdc 100644 --- a/modules/router-store/eslint.config.mjs +++ b/modules/router-store/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/schematics-core/eslint.config.mjs b/modules/schematics-core/eslint.config.mjs index 3a04c798dc..150a373a17 100644 --- a/modules/schematics-core/eslint.config.mjs +++ b/modules/schematics-core/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/schematics/eslint.config.mjs b/modules/schematics/eslint.config.mjs index 3c41f8559d..a27998e34c 100644 --- a/modules/schematics/eslint.config.mjs +++ b/modules/schematics/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/signals/eslint.config.mjs b/modules/signals/eslint.config.mjs index d1ea007e97..dbd7869c4a 100644 --- a/modules/signals/eslint.config.mjs +++ b/modules/signals/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/store-devtools/eslint.config.mjs b/modules/store-devtools/eslint.config.mjs index 841136f097..5e7a968c37 100644 --- a/modules/store-devtools/eslint.config.mjs +++ b/modules/store-devtools/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs index 2054f5c2e8..40c8d194ed 100644 --- a/modules/store/eslint.config.mjs +++ b/modules/store/eslint.config.mjs @@ -1,3 +1,4 @@ +// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -6,6 +7,7 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), + // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); From e8d26e3fa2730406e6013803f52020c5f2fd30cf Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:54:19 +0000 Subject: [PATCH 05/28] Revert "chore(eslint): add ts-check to config files" This reverts commit 6764780c9f0cffafa2690b6f538313982b6fb7f0. --- eslint.config.mjs | 2 -- modules/component-store/eslint.config.mjs | 2 -- modules/component/eslint.config.mjs | 2 -- modules/data/eslint.config.mjs | 2 -- modules/effects/eslint.config.mjs | 2 -- modules/entity/eslint.config.mjs | 2 -- modules/operators/eslint.config.mjs | 2 -- modules/router-store/eslint.config.mjs | 2 -- modules/schematics-core/eslint.config.mjs | 2 -- modules/schematics/eslint.config.mjs | 2 -- modules/signals/eslint.config.mjs | 2 -- modules/store-devtools/eslint.config.mjs | 2 -- modules/store/eslint.config.mjs | 2 -- 13 files changed, 26 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index fe702997b2..936417b846 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import nxEslintPlugin from '@nx/eslint-plugin'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-ignore recommendedConfig: js.configs.recommended, }); diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs index 1012aaa6a7..bc0629a8e8 100644 --- a/modules/component-store/eslint.config.mjs +++ b/modules/component-store/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs index 09ec7d7c6a..125bde2289 100644 --- a/modules/component/eslint.config.mjs +++ b/modules/component/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/data/eslint.config.mjs b/modules/data/eslint.config.mjs index bbe728cca3..0a1c35fc50 100644 --- a/modules/data/eslint.config.mjs +++ b/modules/data/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index ae72444a47..0f916615c6 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs index 665162a5e5..999824d82c 100644 --- a/modules/entity/eslint.config.mjs +++ b/modules/entity/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/operators/eslint.config.mjs b/modules/operators/eslint.config.mjs index 3160d6ef39..2fba3236ec 100644 --- a/modules/operators/eslint.config.mjs +++ b/modules/operators/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs index ae47085fdc..b1012070de 100644 --- a/modules/router-store/eslint.config.mjs +++ b/modules/router-store/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/schematics-core/eslint.config.mjs b/modules/schematics-core/eslint.config.mjs index 150a373a17..3a04c798dc 100644 --- a/modules/schematics-core/eslint.config.mjs +++ b/modules/schematics-core/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/schematics/eslint.config.mjs b/modules/schematics/eslint.config.mjs index a27998e34c..3c41f8559d 100644 --- a/modules/schematics/eslint.config.mjs +++ b/modules/schematics/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/signals/eslint.config.mjs b/modules/signals/eslint.config.mjs index dbd7869c4a..d1ea007e97 100644 --- a/modules/signals/eslint.config.mjs +++ b/modules/signals/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/store-devtools/eslint.config.mjs b/modules/store-devtools/eslint.config.mjs index 5e7a968c37..841136f097 100644 --- a/modules/store-devtools/eslint.config.mjs +++ b/modules/store-devtools/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs index 40c8d194ed..2054f5c2e8 100644 --- a/modules/store/eslint.config.mjs +++ b/modules/store/eslint.config.mjs @@ -1,4 +1,3 @@ -// @ts-check import { FlatCompat } from '@eslint/eslintrc'; import { dirname } from 'path'; import { fileURLToPath } from 'url'; @@ -7,7 +6,6 @@ import baseConfig from '../../eslint.config.mjs'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), - // @ts-expect-error - can't use @ts-check without this recommendedConfig: js.configs.recommended, }); From 15a5c963a87605e21cc9cc039d56fff8263c91b9 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Mon, 4 Aug 2025 23:59:36 +0000 Subject: [PATCH 06/28] fix: change wildcard in parserOptions --- modules/component-store/eslint.config.mjs | 2 +- modules/component/eslint.config.mjs | 2 +- modules/data/eslint.config.mjs | 2 +- modules/effects/eslint.config.mjs | 4 +- modules/entity/eslint.config.mjs | 2 +- modules/operators/eslint.config.mjs | 2 +- modules/router-store/eslint.config.mjs | 2 +- modules/schematics-core/eslint.config.mjs | 2 +- modules/schematics/eslint.config.mjs | 2 +- modules/signals/eslint.config.mjs | 2 +- modules/store-devtools/eslint.config.mjs | 2 +- modules/store/eslint.config.mjs | 4 +- modules/store/tsconfig.build.json | 4 +- package.json | 2 +- pnpm-lock.yaml | 266 +++++++++++++--------- projects/example-app/eslint.config.mjs | 2 +- 16 files changed, 174 insertions(+), 128 deletions(-) diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs index bc0629a8e8..881f29dd42 100644 --- a/modules/component-store/eslint.config.mjs +++ b/modules/component-store/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/component-store/tsconfig.*?.json'], + project: ['modules/component-store/tsconfig.*.json'], }, }, })), diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs index 125bde2289..093aaf3446 100644 --- a/modules/component/eslint.config.mjs +++ b/modules/component/eslint.config.mjs @@ -34,7 +34,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/component/tsconfig.*?.json'], + project: ['modules/component/tsconfig.*.json'], }, }, })), diff --git a/modules/data/eslint.config.mjs b/modules/data/eslint.config.mjs index 0a1c35fc50..22900e9462 100644 --- a/modules/data/eslint.config.mjs +++ b/modules/data/eslint.config.mjs @@ -35,7 +35,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/data/tsconfig.*?.json'], + project: ['modules/data/tsconfig.*.json'], }, }, })), diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index 0f916615c6..a60e11402f 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/effects/tsconfig.*?.json'], + project: ['modules/store/tsconfig.*.json'], }, }, })), @@ -54,7 +54,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/effects/testing/tsconfig.*?.json'], + project: ['modules/effects/testing/tsconfig.*.json'], }, }, })), diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs index 999824d82c..5c2eb178d8 100644 --- a/modules/entity/eslint.config.mjs +++ b/modules/entity/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/entity/tsconfig.*?.json'], + project: ['modules/entity/tsconfig.*.json'], }, }, })), diff --git a/modules/operators/eslint.config.mjs b/modules/operators/eslint.config.mjs index 2fba3236ec..341921be4c 100644 --- a/modules/operators/eslint.config.mjs +++ b/modules/operators/eslint.config.mjs @@ -32,7 +32,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/operators/tsconfig.*?.json'], + project: ['modules/operators/tsconfig.*.json'], }, }, })), diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs index b1012070de..0e5f1aaab0 100644 --- a/modules/router-store/eslint.config.mjs +++ b/modules/router-store/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/router-store/tsconfig.*?.json'], + project: ['modules/router-store/tsconfig.*.json'], }, }, })), diff --git a/modules/schematics-core/eslint.config.mjs b/modules/schematics-core/eslint.config.mjs index 3a04c798dc..f8fe15a640 100644 --- a/modules/schematics-core/eslint.config.mjs +++ b/modules/schematics-core/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/schematics-core/tsconfig.*?.json'], + project: ['modules/schematics-core/tsconfig.*.json'], }, }, })), diff --git a/modules/schematics/eslint.config.mjs b/modules/schematics/eslint.config.mjs index 3c41f8559d..4e9ca6624a 100644 --- a/modules/schematics/eslint.config.mjs +++ b/modules/schematics/eslint.config.mjs @@ -32,7 +32,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/schematics/tsconfig.*?.json'], + project: ['modules/schematics/tsconfig.*.json'], }, }, })), diff --git a/modules/signals/eslint.config.mjs b/modules/signals/eslint.config.mjs index d1ea007e97..424ba60c55 100644 --- a/modules/signals/eslint.config.mjs +++ b/modules/signals/eslint.config.mjs @@ -34,7 +34,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/signals/tsconfig.*?.json'], + project: ['modules/signals/tsconfig.*.json'], }, }, })), diff --git a/modules/store-devtools/eslint.config.mjs b/modules/store-devtools/eslint.config.mjs index 841136f097..ec2f8cf1b1 100644 --- a/modules/store-devtools/eslint.config.mjs +++ b/modules/store-devtools/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store-devtools/tsconfig.*?.json'], + project: ['modules/store-devtools/tsconfig.*.json'], }, }, })), diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs index 2054f5c2e8..a245600658 100644 --- a/modules/store/eslint.config.mjs +++ b/modules/store/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store/tsconfig.*?.json'], + project: ['modules/store/tsconfig.*.json'], }, }, })), @@ -54,7 +54,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store/testing/tsconfig.*?.json'], + project: ['modules/store/testing/tsconfig.*.json'], }, }, })), diff --git a/modules/store/tsconfig.build.json b/modules/store/tsconfig.build.json index 94f1c9919c..b488819927 100644 --- a/modules/store/tsconfig.build.json +++ b/modules/store/tsconfig.build.json @@ -8,7 +8,9 @@ "module": "ES2022", "moduleResolution": "node", "outDir": "../../dist/modules/store", - "paths": {}, + "paths": { + "@ngrx/store": ["src"] + }, "rootDir": ".", "sourceMap": true, "inlineSources": true, diff --git a/package.json b/package.json index 5e9ec2b39a..ed21f4203a 100644 --- a/package.json +++ b/package.json @@ -227,7 +227,7 @@ "tsickle": "^0.37.0", "tsutils": "2.27.2", "typescript": "5.8.2", - "typescript-eslint": "8.19.0", + "typescript-eslint": "8.39.0", "uglify-js": "^3.1.9", "vite": "^6.3.0", "vite-tsconfig-paths": "^4.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d4e40cf84..9c437c9cf9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -203,7 +203,7 @@ importers: version: 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/test-utils': specifier: 19.6.0 - version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular/build': specifier: 20.0.0 version: 20.0.0(x5m5af2eprbqlieavjhnsz7fh4) @@ -230,7 +230,7 @@ importers: version: 21.1.2(@babel/traverse@7.27.3)(@zkochan/js-yaml@0.0.7)(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2) '@nx/eslint-plugin': specifier: 21.1.2 - version: 21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2) + version: 21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2) '@nx/jest': specifier: 21.1.2 version: 21.1.2(@babel/traverse@7.27.3)(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(nx@21.1.2)(ts-node@10.9.1(@types/node@18.19.70)(typescript@5.8.2))(typescript@5.8.2) @@ -344,7 +344,7 @@ importers: version: 2.14.0(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-import: specifier: 2.26.0 - version: 2.26.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)) + version: 2.26.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)) express: specifier: 4.21.2 version: 4.21.2 @@ -487,8 +487,8 @@ importers: specifier: 5.8.2 version: 5.8.2 typescript-eslint: - specifier: 8.19.0 - version: 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + specifier: 8.39.0 + version: 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) uglify-js: specifier: ^3.1.9 version: 3.19.3 @@ -2641,6 +2641,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -4678,13 +4684,13 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.19.0': - resolution: {integrity: sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==} + '@typescript-eslint/eslint-plugin@8.39.0': + resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.39.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/experimental-utils@5.62.0': resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} @@ -4692,12 +4698,18 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/parser@8.19.0': - resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==} + '@typescript-eslint/parser@8.39.0': + resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.39.0': + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/rule-tester@8.10.0': resolution: {integrity: sha512-/+Cms6eddJv4UW1wzxbRYeaZKJOlwWrfzuPQCGtzMsiZMTn5SaABS/wyCSZ+po+nUXc86OtP5QajUfsZGH/tSg==} @@ -4713,20 +4725,19 @@ packages: resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.19.0': - resolution: {integrity: sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.19.1': resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.19.0': - resolution: {integrity: sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==} + '@typescript-eslint/scope-manager@8.39.0': + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.39.0': + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/type-utils@8.19.1': resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} @@ -4735,6 +4746,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/type-utils@8.39.0': + resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4743,14 +4761,14 @@ packages: resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.19.0': - resolution: {integrity: sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.19.1': resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.39.0': + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4769,17 +4787,17 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.19.0': - resolution: {integrity: sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==} + '@typescript-eslint/typescript-estree@8.19.1': + resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.19.1': - resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} + '@typescript-eslint/typescript-estree@8.39.0': + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -4793,19 +4811,19 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.19.0': - resolution: {integrity: sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==} + '@typescript-eslint/utils@8.19.1': + resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.19.1': - resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} + '@typescript-eslint/utils@8.39.0': + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -4815,14 +4833,14 @@ packages: resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.19.0': - resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.19.1': resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.39.0': + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.6.1': resolution: {integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==} peerDependencies: @@ -7200,10 +7218,6 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.1: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -12607,6 +12621,12 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-checker-rspack-plugin@1.1.1: resolution: {integrity: sha512-BlpPqnfAmV0TcDg58H+1qV8Zb57ilv0x+ajjnxrVQ6BWgC8HzAdc+TycqDOJ4sZZYIV+hywQGozZFGklzbCR6A==} engines: {node: '>=16.0.0'} @@ -12792,12 +12812,12 @@ packages: typed-assert@1.0.9: resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} - typescript-eslint@8.19.0: - resolution: {integrity: sha512-Ni8sUkVWYK4KAcTtPjQ/UTiRk6jcsuDhPpxULapUDi8A/l8TSBk+t1GtJA1RsCzIJg0q6+J7bf35AwQigENWRQ==} + typescript-eslint@8.39.0: + resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} @@ -14039,7 +14059,7 @@ snapshots: eslint-scope: 8.2.0 typescript: 5.8.2 - '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/rule-tester': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) @@ -14047,7 +14067,7 @@ snapshots: typescript: 5.8.2 optionalDependencies: '@angular-eslint/template-parser': 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@angular-eslint/utils@19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: @@ -15994,6 +16014,11 @@ snapshots: eslint: 9.31.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.4.2))': + dependencies: + eslint: 9.31.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.21.0': @@ -17355,11 +17380,11 @@ snapshots: tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/eslint-plugin@21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2)': + '@nx/eslint-plugin@21.1.2(@babel/traverse@7.27.3)(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-config-prettier@10.0.0(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(nx@21.1.2)(typescript@5.8.2)': dependencies: '@nx/devkit': 21.1.2(nx@21.1.2) '@nx/js': 21.1.2(@babel/traverse@7.27.3)(nx@21.1.2) - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/type-utils': 8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) chalk: 4.1.2 @@ -18670,19 +18695,19 @@ snapshots: '@types/node': 18.19.70 optional: true - '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.19.0 - '@typescript-eslint/type-utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.19.0 + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.39.0 eslint: 9.31.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.4 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -18695,18 +18720,27 @@ snapshots: - supports-color - typescript - '@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.19.0 - '@typescript-eslint/types': 8.19.0 - '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.19.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.0(supports-color@8.1.1) eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.39.0(typescript@5.8.2)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.2) + '@typescript-eslint/types': 8.39.0 + debug: 4.4.0(supports-color@8.1.1) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.8.2) @@ -18730,26 +18764,19 @@ snapshots: '@typescript-eslint/types': 8.10.0 '@typescript-eslint/visitor-keys': 8.10.0 - '@typescript-eslint/scope-manager@8.19.0': - dependencies: - '@typescript-eslint/types': 8.19.0 - '@typescript-eslint/visitor-keys': 8.19.0 - '@typescript-eslint/scope-manager@8.19.1': dependencies: '@typescript-eslint/types': 8.19.1 '@typescript-eslint/visitor-keys': 8.19.1 - '@typescript-eslint/type-utils@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/scope-manager@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 + + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - debug: 4.4.0(supports-color@8.1.1) - eslint: 9.31.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.8.2) typescript: 5.8.2 - transitivePeerDependencies: - - supports-color '@typescript-eslint/type-utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: @@ -18762,14 +18789,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + debug: 4.4.0(supports-color@8.1.1) + eslint: 9.31.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@8.10.0': {} - '@typescript-eslint/types@8.19.0': {} - '@typescript-eslint/types@8.19.1': {} + '@typescript-eslint/types@8.39.0': {} + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -18799,30 +18838,32 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.19.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.19.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.19.0 - '@typescript-eslint/visitor-keys': 8.19.0 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/visitor-keys': 8.19.1 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 1.4.3(typescript@5.8.2) + ts-api-utils: 2.0.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.19.1(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.39.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/project-service': 8.39.0(typescript@5.8.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.8.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.0.0(typescript@5.8.2) + ts-api-utils: 2.1.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -18853,23 +18894,23 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.19.0 - '@typescript-eslint/types': 8.19.0 - '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.8.2) eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.31.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.8.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.2) eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: @@ -18885,15 +18926,15 @@ snapshots: '@typescript-eslint/types': 8.10.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.19.0': - dependencies: - '@typescript-eslint/types': 8.19.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.19.1': dependencies: '@typescript-eslint/types': 8.19.1 - eslint-visitor-keys: 4.2.0 + eslint-visitor-keys: 4.2.1 + + '@typescript-eslint/visitor-keys@8.39.0': + dependencies: + '@typescript-eslint/types': 8.39.0 + eslint-visitor-keys: 4.2.1 '@typescript/vfs@1.6.1(typescript@5.8.2)': dependencies: @@ -21708,11 +21749,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.31.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -21723,7 +21764,7 @@ snapshots: eslint: 9.31.0(jiti@2.4.2) globals: 13.24.0 - eslint-plugin-import@2.26.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)): + eslint-plugin-import@2.26.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.3 @@ -21731,7 +21772,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.31.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)) has: 1.0.4 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -21740,7 +21781,7 @@ snapshots: resolve: 1.22.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -21763,8 +21804,6 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - eslint-visitor-keys@4.2.1: {} eslint@9.31.0(jiti@2.4.2): @@ -28358,6 +28397,10 @@ snapshots: dependencies: typescript: 5.8.2 + ts-api-utils@2.1.0(typescript@5.8.2): + dependencies: + typescript: 5.8.2 + ts-checker-rspack-plugin@1.1.1(@rspack/core@1.3.12(@swc/helpers@0.5.15))(typescript@5.8.2): dependencies: '@babel/code-frame': 7.27.1 @@ -28564,11 +28607,12 @@ snapshots: typed-assert@1.0.9: {} - typescript-eslint@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.19.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) eslint: 9.31.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: diff --git a/projects/example-app/eslint.config.mjs b/projects/example-app/eslint.config.mjs index c7f0bf93ee..214ee22b53 100644 --- a/projects/example-app/eslint.config.mjs +++ b/projects/example-app/eslint.config.mjs @@ -68,7 +68,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['projects/example-app/tsconfig.*?.json'], + project: ['projects/example-app/tsconfig.*.json'], }, }, })), From 441378f7c64174745051892eb9a8c64fa9e6337b Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 00:42:57 +0000 Subject: [PATCH 07/28] fix: cypress config in example-app --- package.json | 2 +- pnpm-lock.yaml | 20 +++++++++------ projects/example-app-e2e/eslint.config.mjs | 29 +++++++++++++++++++--- 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index ed21f4203a..b9066ca3be 100644 --- a/package.json +++ b/package.json @@ -178,7 +178,7 @@ "deep-freeze": "^0.0.1", "eslint": "^9.8.0", "eslint-config-prettier": "10.0.0", - "eslint-plugin-cypress": "2.14.0", + "eslint-plugin-cypress": "5.1.0", "eslint-plugin-import": "2.26.0", "express": "4.21.2", "fs-extra": "^10.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c437c9cf9..6f844f718d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -340,8 +340,8 @@ importers: specifier: 10.0.0 version: 10.0.0(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-cypress: - specifier: 2.14.0 - version: 2.14.0(eslint@9.31.0(jiti@2.4.2)) + specifier: 5.1.0 + version: 5.1.0(eslint@9.31.0(jiti@2.4.2)) eslint-plugin-import: specifier: 2.26.0 version: 2.26.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)) @@ -7187,10 +7187,10 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-cypress@2.14.0: - resolution: {integrity: sha512-eW6tv7iIg7xujleAJX4Ujm649Bf5jweqa4ObPEIuueYRyLZt7qXGWhCY/n4bfeFW/j6nQZwbIBHKZt6EKcL/cg==} + eslint-plugin-cypress@5.1.0: + resolution: {integrity: sha512-tdLXm4aq9vX2hTtKJTUFD3gdNseMKqsf8+P6hI4TtOPdz1LU4xvTpQBd1++qPAsPZP2lyYh71B5mvzu2lBr4Ow==} peerDependencies: - eslint: '>= 3.2.1' + eslint: '>=9' eslint-plugin-import@2.26.0: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} @@ -7896,6 +7896,10 @@ packages: resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} + globals@16.3.0: + resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -21759,10 +21763,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-cypress@2.14.0(eslint@9.31.0(jiti@2.4.2)): + eslint-plugin-cypress@5.1.0(eslint@9.31.0(jiti@2.4.2)): dependencies: eslint: 9.31.0(jiti@2.4.2) - globals: 13.24.0 + globals: 16.3.0 eslint-plugin-import@2.26.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)): dependencies: @@ -22690,6 +22694,8 @@ snapshots: globals@15.14.0: {} + globals@16.3.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 diff --git a/projects/example-app-e2e/eslint.config.mjs b/projects/example-app-e2e/eslint.config.mjs index c1af79cd56..0814de514f 100644 --- a/projects/example-app-e2e/eslint.config.mjs +++ b/projects/example-app-e2e/eslint.config.mjs @@ -4,6 +4,7 @@ import { fileURLToPath } from 'url'; import js from '@eslint/js'; import baseConfig from '../../eslint.config.mjs'; import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; +import cypressPlugin from 'eslint-plugin-cypress'; const compat = new FlatCompat({ baseDirectory: dirname(fileURLToPath(import.meta.url)), @@ -15,14 +16,18 @@ export default [ ignores: ['**/dist'], }, ...baseConfig, - ...compat.extends('plugin:cypress/recommended'), - { plugins: { '@typescript-eslint': typescriptEslintEslintPlugin } }, + + { + plugins: { + '@typescript-eslint': typescriptEslintEslintPlugin, + cypress: cypressPlugin, + }, + }, { rules: {}, }, { files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - // Override or add rules here rules: {}, languageOptions: { parserOptions: { @@ -40,4 +45,22 @@ export default [ { ignores: ['schematics-core'], }, + + // ✅ Cypress E2E overrides + { + files: ['src/**/*.cy.{ts,tsx}'], + plugins: { + cypress: cypressPlugin, + }, + languageOptions: { + parserOptions: { + project: null, + }, + }, + rules: { + // Disable broken rule under ESLint v9 + 'cypress/no-async-tests': 'off', + // Add other Cypress rules manually if needed + }, + }, ]; From 30f9b8f4ee3072a4de37f63264cb4453f8da0fb9 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 01:50:44 +0000 Subject: [PATCH 08/28] refactor: cypress configs --- projects/example-app-e2e/eslint.config.mjs | 17 +----- .../src/integration/round-trip.cy.ts | 2 - projects/standalone-app-e2e/eslint.config.mjs | 52 +++++++++++++++---- 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/projects/example-app-e2e/eslint.config.mjs b/projects/example-app-e2e/eslint.config.mjs index 0814de514f..8a7d268b48 100644 --- a/projects/example-app-e2e/eslint.config.mjs +++ b/projects/example-app-e2e/eslint.config.mjs @@ -1,16 +1,7 @@ -import { FlatCompat } from '@eslint/eslintrc'; -import { dirname } from 'path'; -import { fileURLToPath } from 'url'; -import js from '@eslint/js'; import baseConfig from '../../eslint.config.mjs'; import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; import cypressPlugin from 'eslint-plugin-cypress'; -const compat = new FlatCompat({ - baseDirectory: dirname(fileURLToPath(import.meta.url)), - recommendedConfig: js.configs.recommended, -}); - export default [ { ignores: ['**/dist'], @@ -31,7 +22,7 @@ export default [ rules: {}, languageOptions: { parserOptions: { - project: 'projects/example-app-e2e/tsconfig.*?.json', + project: 'projects/example-app-e2e/tsconfig.*.json', }, }, }, @@ -57,10 +48,6 @@ export default [ project: null, }, }, - rules: { - // Disable broken rule under ESLint v9 - 'cypress/no-async-tests': 'off', - // Add other Cypress rules manually if needed - }, + rules: {}, }, ]; diff --git a/projects/example-app-e2e/src/integration/round-trip.cy.ts b/projects/example-app-e2e/src/integration/round-trip.cy.ts index 14897f8e16..ff6908e016 100644 --- a/projects/example-app-e2e/src/integration/round-trip.cy.ts +++ b/projects/example-app-e2e/src/integration/round-trip.cy.ts @@ -13,7 +13,6 @@ context('Full round trip', () => { }); it('shows a message when the credentials are wrong', () => { - // eslint-disable-next-line cypress/unsafe-to-chain-command cy.findByPlaceholderText(/username/i) .clear() .type('wronguser'); @@ -23,7 +22,6 @@ context('Full round trip', () => { }); it('is possible to login', () => { - // eslint-disable-next-line cypress/unsafe-to-chain-command cy.findByPlaceholderText(/username/i) .clear() .type('test{enter}'); diff --git a/projects/standalone-app-e2e/eslint.config.mjs b/projects/standalone-app-e2e/eslint.config.mjs index 1c62a3fd2f..efe59133fa 100644 --- a/projects/standalone-app-e2e/eslint.config.mjs +++ b/projects/standalone-app-e2e/eslint.config.mjs @@ -1,23 +1,53 @@ -import { FlatCompat } from '@eslint/eslintrc'; -import { dirname } from 'path'; -import { fileURLToPath } from 'url'; -import js from '@eslint/js'; import baseConfig from '../../eslint.config.mjs'; - -const compat = new FlatCompat({ - baseDirectory: dirname(fileURLToPath(import.meta.url)), - recommendedConfig: js.configs.recommended, -}); +import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; +import cypressPlugin from 'eslint-plugin-cypress'; export default [ { ignores: ['**/dist'], }, ...baseConfig, - ...compat.extends('plugin:cypress/recommended'), + + { + plugins: { + '@typescript-eslint': typescriptEslintEslintPlugin, + cypress: cypressPlugin, + }, + }, + { + rules: {}, + }, { files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - // Override or add rules here rules: {}, + languageOptions: { + parserOptions: { + project: 'projects/example-app-e2e/tsconfig.*.json', + }, + }, + }, + { + files: ['src/plugins/index.js'], + rules: { + '@typescript-eslint/no-var-requires': 'off', + 'no-undef': 'off', + }, + }, + { + ignores: ['schematics-core'], + }, + + // ✅ Cypress E2E overrides + { + files: ['src/**/*.cy.{ts,tsx}'], + plugins: { + cypress: cypressPlugin, + }, + languageOptions: { + parserOptions: { + project: null, + }, + }, + rules: {} }, ]; From 8671a5a37cb9de0ad03dff5e7738a555592cf35f Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 16:45:33 +0000 Subject: [PATCH 09/28] fix: effects config project file path --- modules/effects/eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index a60e11402f..4f15c8e038 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -33,7 +33,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store/tsconfig.*.json'], + project: ['modules/effects/tsconfig.*.json'], }, }, })), From 4fa1936e1e698e94495f9a44a761a25175128404 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 17:58:57 +0000 Subject: [PATCH 10/28] fix: exclude files for data config --- modules/data/eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/data/eslint.config.mjs b/modules/data/eslint.config.mjs index 22900e9462..af2cec910d 100644 --- a/modules/data/eslint.config.mjs +++ b/modules/data/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat From f20590cebb68d5b0ded28b2a5f2bbd363f66d6b7 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:07:31 +0000 Subject: [PATCH 11/28] fix: exclude jest in configs --- modules/component-store/eslint.config.mjs | 2 +- modules/component/eslint.config.mjs | 2 +- modules/entity/eslint.config.mjs | 2 +- modules/store-devtools/eslint.config.mjs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs index 881f29dd42..d2c62640f7 100644 --- a/modules/component-store/eslint.config.mjs +++ b/modules/component-store/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs index 093aaf3446..4b5886b8b1 100644 --- a/modules/component/eslint.config.mjs +++ b/modules/component/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs index 5c2eb178d8..75b2cad9c0 100644 --- a/modules/entity/eslint.config.mjs +++ b/modules/entity/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat diff --git a/modules/store-devtools/eslint.config.mjs b/modules/store-devtools/eslint.config.mjs index ec2f8cf1b1..e1ee6266dd 100644 --- a/modules/store-devtools/eslint.config.mjs +++ b/modules/store-devtools/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat From 3e5cb4076bee6830ee2cb52bcc969a219efc9763 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:12:40 +0000 Subject: [PATCH 12/28] fix(entity): exclude standalone --- modules/entity/eslint.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/entity/eslint.config.mjs b/modules/entity/eslint.config.mjs index 75b2cad9c0..738f8eed88 100644 --- a/modules/entity/eslint.config.mjs +++ b/modules/entity/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts', '**/schematics-core/utility/standalone.ts'], }, ...baseConfig, ...compat From 3595758aa46c238df68df7f043ef57794df1a629 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:18:46 +0000 Subject: [PATCH 13/28] fix: component-store, component, and potentially router-store --- modules/component-store/eslint.config.mjs | 2 +- modules/component/eslint.config.mjs | 2 +- modules/router-store/eslint.config.mjs | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/component-store/eslint.config.mjs b/modules/component-store/eslint.config.mjs index d2c62640f7..ca07afda5f 100644 --- a/modules/component-store/eslint.config.mjs +++ b/modules/component-store/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts', '**/schematics-core/utility/standalone.ts'], }, ...baseConfig, ...compat diff --git a/modules/component/eslint.config.mjs b/modules/component/eslint.config.mjs index 4b5886b8b1..baeedcddef 100644 --- a/modules/component/eslint.config.mjs +++ b/modules/component/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts', '**/schematics-core/utility/standalone.ts'], }, ...baseConfig, ...compat diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs index 0e5f1aaab0..cf0a3f8b9e 100644 --- a/modules/router-store/eslint.config.mjs +++ b/modules/router-store/eslint.config.mjs @@ -11,7 +11,13 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: [ + '**/dist', + '**/router-store/data-persistence/index.ts', + '**/router-store/data-persistence/src/operators.ts', + '**/router-store/data-persistence/src/public_api.ts', + '**/router-store/schematics-core/jest.config.ts' + ], }, ...baseConfig, ...compat From 89b5d538ad1c6ba3ea9b4f3a18368494bc5ad2d6 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:22:56 +0000 Subject: [PATCH 14/28] fix: exclude test-setup in router-store --- modules/router-store/eslint.config.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/router-store/eslint.config.mjs b/modules/router-store/eslint.config.mjs index cf0a3f8b9e..d34710bdc6 100644 --- a/modules/router-store/eslint.config.mjs +++ b/modules/router-store/eslint.config.mjs @@ -16,7 +16,8 @@ export default [ '**/router-store/data-persistence/index.ts', '**/router-store/data-persistence/src/operators.ts', '**/router-store/data-persistence/src/public_api.ts', - '**/router-store/schematics-core/jest.config.ts' + '**/router-store/schematics-core/jest.config.ts', + '**/router-store/schematics-core/test-setup.ts' ], }, ...baseConfig, From 0427dd60de59b4699209bdb2f69075ca96fb2492 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:36:41 +0000 Subject: [PATCH 15/28] fix: exclude jest in store config --- modules/effects/eslint.config.mjs | 2 +- modules/store/eslint.config.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index 4f15c8e038..c7836fff09 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs index a245600658..f0c62c212c 100644 --- a/modules/store/eslint.config.mjs +++ b/modules/store/eslint.config.mjs @@ -11,7 +11,7 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], }, ...baseConfig, ...compat From 9baba888db0b92c70dc3207b036c53c8eee75983 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 18:53:01 +0000 Subject: [PATCH 16/28] fix: exclude module boundaries --- modules/effects/eslint.config.mjs | 11 ++++++++--- modules/store/eslint.config.mjs | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index c7836fff09..8298da0852 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -11,7 +11,11 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], + ignores: [ + '**/dist', + '**/jest.config.ts', + '**/schematics-core/test-setup.ts', + ], }, ...baseConfig, ...compat @@ -30,10 +34,11 @@ export default [ '@angular-eslint/directive-selector': 'off', '@angular-eslint/component-selector': 'off', '@angular-eslint/prefer-standalone': 'off', + '@nx/enforce-module-boundaries': 'off', }, languageOptions: { parserOptions: { - project: ['modules/effects/tsconfig.*.json'], + project: ['modules/store/tsconfig.*.json'], }, }, })), @@ -54,7 +59,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/effects/testing/tsconfig.*.json'], + project: ['modules/store/testing/tsconfig.*.json'], }, }, })), diff --git a/modules/store/eslint.config.mjs b/modules/store/eslint.config.mjs index f0c62c212c..8298da0852 100644 --- a/modules/store/eslint.config.mjs +++ b/modules/store/eslint.config.mjs @@ -11,7 +11,11 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/jest.config.ts', '**/schematics-core/test-setup.ts'], + ignores: [ + '**/dist', + '**/jest.config.ts', + '**/schematics-core/test-setup.ts', + ], }, ...baseConfig, ...compat @@ -30,6 +34,7 @@ export default [ '@angular-eslint/directive-selector': 'off', '@angular-eslint/component-selector': 'off', '@angular-eslint/prefer-standalone': 'off', + '@nx/enforce-module-boundaries': 'off', }, languageOptions: { parserOptions: { From 59d187fdafebbf62cc77cec32dcf038e773cf29a Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 19:08:32 +0000 Subject: [PATCH 17/28] fix: remove references to store in effects config --- modules/effects/eslint.config.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/effects/eslint.config.mjs b/modules/effects/eslint.config.mjs index 8298da0852..b02fe323cf 100644 --- a/modules/effects/eslint.config.mjs +++ b/modules/effects/eslint.config.mjs @@ -38,7 +38,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store/tsconfig.*.json'], + project: ['modules/effects/tsconfig.*.json'], }, }, })), @@ -59,7 +59,7 @@ export default [ }, languageOptions: { parserOptions: { - project: ['modules/store/testing/tsconfig.*.json'], + project: ['modules/effects/tsconfig.*.json'], }, }, })), From 70c6a307166f8d82c6a89b822b9aac8658e5bf29 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 5 Aug 2025 23:20:56 +0000 Subject: [PATCH 18/28] fix: remove cypress plugin from configs --- projects/example-app-e2e/eslint.config.mjs | 129 +++++++++++++----- projects/standalone-app-e2e/eslint.config.mjs | 129 +++++++++++++----- 2 files changed, 186 insertions(+), 72 deletions(-) diff --git a/projects/example-app-e2e/eslint.config.mjs b/projects/example-app-e2e/eslint.config.mjs index 8a7d268b48..449b4e08e6 100644 --- a/projects/example-app-e2e/eslint.config.mjs +++ b/projects/example-app-e2e/eslint.config.mjs @@ -1,53 +1,110 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; import baseConfig from '../../eslint.config.mjs'; -import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; -import cypressPlugin from 'eslint-plugin-cypress'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/environment.prod.ts'], }, ...baseConfig, - { - plugins: { - '@typescript-eslint': typescriptEslintEslintPlugin, - cypress: cypressPlugin, - }, - }, - { - rules: {}, - }, - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - rules: {}, - languageOptions: { - parserOptions: { - project: 'projects/example-app-e2e/tsconfig.*.json', + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'bc', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'bc', + style: 'kebab-case', + }, + ], + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@nx/enforce-module-boundaries': 'off', + eqeqeq: ['off', 'smart'], + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'no-eval': 'off', + 'no-redeclare': 'error', + 'no-underscore-dangle': 'error', + 'no-var': 'error', + 'no-case-declarations': 'off', + '@angular-eslint/prefer-standalone': 'off', }, - }, - }, - { - files: ['src/plugins/index.js'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - 'no-undef': 'off', - }, - }, - { - ignores: ['schematics-core'], - }, + languageOptions: { + parserOptions: { + project: ['projects/example-app-e2e/tsconfig.*.json'], + }, + }, + })), - // ✅ Cypress E2E overrides + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), { files: ['src/**/*.cy.{ts,tsx}'], - plugins: { - cypress: cypressPlugin, - }, languageOptions: { parserOptions: { - project: null, + project: ['projects/example-app-e2e/tsconfig.*.json'], + }, + globals: { + cy: true, + describe: true, + it: true, + before: true, + beforeEach: true, + after: true, + afterEach: true, }, }, - rules: {}, + rules: { + // Add optional Cypress-safe tweaks + 'no-unused-expressions': 'off', // Allow Chai-style assertions + '@typescript-eslint/no-floating-promises': 'off', // Often triggered by cy.* commands + }, }, ]; diff --git a/projects/standalone-app-e2e/eslint.config.mjs b/projects/standalone-app-e2e/eslint.config.mjs index efe59133fa..6353202477 100644 --- a/projects/standalone-app-e2e/eslint.config.mjs +++ b/projects/standalone-app-e2e/eslint.config.mjs @@ -1,53 +1,110 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; import baseConfig from '../../eslint.config.mjs'; -import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; -import cypressPlugin from 'eslint-plugin-cypress'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); export default [ { - ignores: ['**/dist'], + ignores: ['**/dist', '**/environment.prod.ts'], }, ...baseConfig, - { - plugins: { - '@typescript-eslint': typescriptEslintEslintPlugin, - cypress: cypressPlugin, - }, - }, - { - rules: {}, - }, - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - rules: {}, - languageOptions: { - parserOptions: { - project: 'projects/example-app-e2e/tsconfig.*.json', + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'bc', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'bc', + style: 'kebab-case', + }, + ], + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@nx/enforce-module-boundaries': 'off', + eqeqeq: ['off', 'smart'], + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'no-eval': 'off', + 'no-redeclare': 'error', + 'no-underscore-dangle': 'error', + 'no-var': 'error', + 'no-case-declarations': 'off', + '@angular-eslint/prefer-standalone': 'off', }, - }, - }, - { - files: ['src/plugins/index.js'], - rules: { - '@typescript-eslint/no-var-requires': 'off', - 'no-undef': 'off', - }, - }, - { - ignores: ['schematics-core'], - }, + languageOptions: { + parserOptions: { + project: ['projects/standalone-app-e2e/tsconfig.*.json'], + }, + }, + })), - // ✅ Cypress E2E overrides + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), { files: ['src/**/*.cy.{ts,tsx}'], - plugins: { - cypress: cypressPlugin, - }, languageOptions: { parserOptions: { - project: null, + project: ['projects/standalone-app-e2e/tsconfig.*.json'], + }, + globals: { + cy: true, + describe: true, + it: true, + before: true, + beforeEach: true, + after: true, + afterEach: true, }, }, - rules: {} + rules: { + // Add optional Cypress-safe tweaks + 'no-unused-expressions': 'off', // Allow Chai-style assertions + '@typescript-eslint/no-floating-promises': 'off', // Often triggered by cy.* commands + }, }, ]; From 4b12129a9d3e9e497184fd0ac3e0889b84613d41 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Thu, 7 Aug 2025 01:35:56 +0000 Subject: [PATCH 19/28] fix: pnpm-lock --- package.json | 4 +- pnpm-lock.yaml | 287 +++++++++++++++++++------------------------------ 2 files changed, 112 insertions(+), 179 deletions(-) diff --git a/package.json b/package.json index 7250aa8d7d..301a1f7b65 100644 --- a/package.json +++ b/package.json @@ -117,8 +117,6 @@ "@angular/cli": "~20.0.0", "@angular/compiler-cli": "20.0.0", "@angular/language-service": "20.0.0", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "~8.57.0", "@nx/cypress": "21.1.2", "@nx/eslint": "21.1.2", "@nx/eslint-plugin": "21.1.2", @@ -206,4 +204,4 @@ "url": "https://opencollective.com/ngrx", "logo": "https://opencollective.com/opencollective/logo.txt" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9218430bbf..c30fa27660 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,22 +128,22 @@ importers: version: 20.0.0(chokidar@3.6.0) '@angular-eslint/builder': specifier: 19.6.0 - version: 19.6.0(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2) '@angular-eslint/eslint-plugin': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@angular-eslint/eslint-plugin-template': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@angular-eslint/schematics': specifier: 19.6.0 - version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2) '@angular-eslint/template-parser': specifier: 19.6.0 - version: 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(eslint@8.57.0)(typescript@5.8.2) '@angular-eslint/test-utils': specifier: 19.6.0 - version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 19.6.0(@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@angular/build': specifier: 20.0.0 version: 20.0.0(2sgo3ztbcl5v42nhklbsffiofq) @@ -156,12 +156,6 @@ importers: '@angular/language-service': specifier: 20.0.0 version: 20.0.0 - '@eslint/eslintrc': - specifier: ^2.1.1 - version: 2.1.4 - '@eslint/js': - specifier: ~8.57.0 - version: 8.57.0 '@nx/cypress': specifier: 21.1.2 version: 21.1.2(@babel/traverse@7.28.0)(@zkochan/js-yaml@0.0.7)(cypress@14.2.1)(eslint@8.57.0)(nx@21.1.2)(typescript@5.8.2) @@ -239,13 +233,13 @@ importers: version: 0.8.17 '@typescript-eslint/rule-tester': specifier: 8.10.0 - version: 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 8.10.0(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/types': specifier: 8.10.0 version: 8.10.0 '@typescript-eslint/utils': specifier: 8.10.0 - version: 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + version: 8.10.0(eslint@8.57.0)(typescript@5.8.2) chokidar: specifier: ^3.5.3 version: 3.6.0 @@ -272,7 +266,7 @@ importers: version: 8.57.0 eslint-plugin-import: specifier: 2.26.0 - version: 2.26.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2)) + version: 2.26.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) express: specifier: 4.21.2 version: 4.21.2 @@ -1990,42 +1984,14 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.3.0': - resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.15.1': - resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - 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/js@9.31.0': - resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/busboy@3.1.1': resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} @@ -2085,25 +2051,18 @@ packages: engines: {node: '>=6'} hasBin: true - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.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/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@inquirer/checkbox@4.1.9': resolution: {integrity: sha512-DBJBkzI5Wx4jFaYm221LHvAhpKYkhVS0k9plqHwaHhofGNxvYB7J3Bz8w+bFJ05zaMb0sZNHo4KdmENQFlNTuQ==} @@ -3884,13 +3843,13 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.39.0': - resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} + '@typescript-eslint/eslint-plugin@8.19.0': + resolution: {integrity: sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.39.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/parser@8.19.0': resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==} @@ -3933,7 +3892,8 @@ packages: resolution: {integrity: sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/type-utils@8.37.0': resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==} @@ -5810,6 +5770,10 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -6136,19 +6100,11 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.31.0: - resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -6368,9 +6324,9 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -6457,9 +6413,9 @@ packages: peerDependencies: firebase-admin: ^11.10.0 || ^12.0.0 - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -10974,6 +10930,9 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -11283,12 +11242,12 @@ packages: typed-assert@1.0.9: resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} - typescript-eslint@8.39.0: - resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} + typescript-eslint@8.19.0: + resolution: {integrity: sha512-Ni8sUkVWYK4KAcTtPjQ/UTiRk6jcsuDhPpxULapUDi8A/l8TSBk+t1GtJA1RsCzIJg0q6+J7bf35AwQigENWRQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.8.0' typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} @@ -12454,26 +12413,26 @@ snapshots: '@angular-eslint/bundled-angular-compiler@19.6.0': {} - '@angular-eslint/eslint-plugin-template@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/eslint-plugin-template@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) aria-query: 5.3.2 axobject-query: 4.1.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 8.57.0 typescript: 5.8.2 - '@angular-eslint/eslint-plugin@19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/eslint-plugin@19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + '@angular-eslint/utils': 19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + eslint: 8.57.0 typescript: 5.8.2 - '@angular-eslint/schematics@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(chokidar@3.6.0)(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/schematics@19.6.0(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(chokidar@3.6.0)(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@angular-devkit/core': 19.2.15(chokidar@3.6.0) '@angular-devkit/schematics': 19.2.15(chokidar@3.6.0) @@ -12489,28 +12448,28 @@ snapshots: - eslint - typescript - '@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 eslint: 8.57.0 eslint-scope: 8.4.0 typescript: 5.8.2 - '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/test-utils@19.6.0(@angular-eslint/template-parser@19.6.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2))(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/rule-tester': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/rule-tester': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + eslint: 8.57.0 typescript: 5.8.2 optionalDependencies: - '@angular-eslint/template-parser': 19.6.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@angular-eslint/template-parser': 19.6.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) - '@angular-eslint/utils@19.6.0(@typescript-eslint/utils@8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@angular-eslint/utils@19.6.0(@typescript-eslint/utils@8.10.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 19.6.0 - '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) + eslint: 8.57.0 typescript: 5.8.2 '@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))(rxjs@7.8.0))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.0)(zone.js@0.15.0))': @@ -14410,20 +14369,6 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.21.0': - dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.3.0': {} - - '@eslint/core@0.15.1': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -14440,15 +14385,6 @@ snapshots: '@eslint/js@8.57.0': {} - '@eslint/js@9.31.0': {} - - '@eslint/object-schema@2.1.6': {} - - '@eslint/plugin-kit@0.3.3': - dependencies: - '@eslint/core': 0.15.1 - levn: 0.4.1 - '@fastify/busboy@3.1.1': {} '@firebase/app-check-interop-types@0.3.2': {} @@ -14554,9 +14490,7 @@ snapshots: yargs: 17.7.2 optional: true - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.4.1(supports-color@8.1.1) @@ -16966,19 +16900,19 @@ snapshots: '@types/node': 18.19.120 optional: true - '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.39.0 - '@typescript-eslint/type-utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.39.0 - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.19.0 + '@typescript-eslint/type-utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.19.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 7.0.4 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.2) + ts-api-utils: 1.4.3(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -17007,9 +16941,9 @@ snapshots: '@typescript-eslint/rule-tester@8.10.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.10.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.10.0(eslint@8.57.0)(typescript@5.8.2) ajv: 6.12.6 - eslint: 9.31.0(jiti@2.4.2) + eslint: 8.57.0 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.2 @@ -17116,12 +17050,12 @@ snapshots: '@typescript-eslint/scope-manager': 8.10.0 '@typescript-eslint/types': 8.10.0 '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.19.1(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.19.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) '@typescript-eslint/scope-manager': 8.19.0 @@ -19232,6 +19166,10 @@ snapshots: dependencies: esutils: 2.0.3 + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} dom-serialize@2.2.1: @@ -19634,8 +19572,8 @@ snapshots: dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -19646,7 +19584,7 @@ snapshots: array.prototype.flat: 1.3.3 debug: 2.6.9 doctrine: 2.1.0 - eslint: 9.31.0(jiti@2.4.2) + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) has: 1.0.4 @@ -19657,7 +19595,7 @@ snapshots: resolve: 1.22.10 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -19668,7 +19606,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.2.0: + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -19682,17 +19620,13 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.31.0(jiti@2.4.2): + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.3.0 - '@eslint/core': 0.15.1 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.31.0 - '@eslint/plugin-kit': 0.3.3 - '@humanfs/node': 0.16.6 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.3.0 @@ -19702,34 +19636,33 @@ snapshots: debug: 4.4.1(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 + file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 ignore: 5.3.2 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 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - optionalDependencies: - jiti: 2.4.2 + strip-ansi: 6.0.1 + text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - espree@9.6.1: dependencies: acorn: 8.15.0 @@ -20022,9 +19955,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@8.0.0: + file-entry-cache@6.0.1: dependencies: - flat-cache: 4.0.1 + flat-cache: 3.2.0 file-uri-to-path@1.0.0: {} @@ -20153,10 +20086,11 @@ snapshots: transitivePeerDependencies: - supports-color - flat-cache@4.0.1: + flat-cache@3.2.0: dependencies: flatted: 3.3.3 keyv: 4.5.4 + rimraf: 3.0.2 flat@5.0.2: {} @@ -25670,6 +25604,8 @@ snapshots: text-hex@1.0.0: {} + text-table@0.2.0: {} + thingies@1.21.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -25979,13 +25915,12 @@ snapshots: typed-assert@1.0.9: {} - typescript-eslint@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.19.0(eslint@8.57.0)(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.39.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.31.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.19.0(eslint@8.57.0)(typescript@5.8.2) + eslint: 8.57.0 typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -26988,4 +26923,4 @@ snapshots: zod@3.25.76: {} - zone.js@0.15.0: {} + zone.js@0.15.0: {} \ No newline at end of file From 49757c019e7b3ce27d66e423057344ca28e9e777 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Sun, 10 Aug 2025 00:50:11 +0000 Subject: [PATCH 20/28] revert: md file --- projects/www/src/app/pages/guide/data/entity-metadata.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/projects/www/src/app/pages/guide/data/entity-metadata.md b/projects/www/src/app/pages/guide/data/entity-metadata.md index 6458ccef5d..73f8fdb118 100644 --- a/projects/www/src/app/pages/guide/data/entity-metadata.md +++ b/projects/www/src/app/pages/guide/data/entity-metadata.md @@ -155,10 +155,9 @@ export function nameAndSayingFilter( entities: Villain[], pattern: string ) { - return ( - PropsFilterFnFactory < - Villain > - [('name', 'saying')](entities, pattern) + return PropsFilterFnFactory[('name', 'saying')]( + entities, + pattern ); } ``` From 825948ec06688e9a58e595aa330bf70d8240ece0 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Sun, 10 Aug 2025 01:26:26 +0000 Subject: [PATCH 21/28] fix: tsconfig in store --- modules/store/tsconfig.build.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/store/tsconfig.build.json b/modules/store/tsconfig.build.json index b488819927..94f1c9919c 100644 --- a/modules/store/tsconfig.build.json +++ b/modules/store/tsconfig.build.json @@ -8,9 +8,7 @@ "module": "ES2022", "moduleResolution": "node", "outDir": "../../dist/modules/store", - "paths": { - "@ngrx/store": ["src"] - }, + "paths": {}, "rootDir": ".", "sourceMap": true, "inlineSources": true, From d0cc0bb1a577a6323f17d1d52abf9117df5ded0d Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 18:00:58 +0000 Subject: [PATCH 22/28] chore: convert to eslint config in www --- projects/www/.eslintrc.json | 36 -------------- projects/www/eslint.config.mjs | 89 ++++++++++++++++++++++++++++++++++ projects/www/project.json | 7 +++ 3 files changed, 96 insertions(+), 36 deletions(-) delete mode 100644 projects/www/.eslintrc.json create mode 100644 projects/www/eslint.config.mjs diff --git a/projects/www/.eslintrc.json b/projects/www/.eslintrc.json deleted file mode 100644 index 74fc7daec7..0000000000 --- a/projects/www/.eslintrc.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts"], - "extends": [ - "plugin:@nx/nx/angular", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "Www", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "www", - "style": "kebab-case" - } - ] - } - }, - { - "files": ["*.html"], - "extends": ["plugin:@nx/nx/angular-template"], - "rules": {} - } - ] -} diff --git a/projects/www/eslint.config.mjs b/projects/www/eslint.config.mjs new file mode 100644 index 0000000000..5b5e8bbf84 --- /dev/null +++ b/projects/www/eslint.config.mjs @@ -0,0 +1,89 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import js from '@eslint/js'; +import baseConfig from '../../eslint.config.mjs'; + +const compat = new FlatCompat({ + baseDirectory: dirname(fileURLToPath(import.meta.url)), + recommendedConfig: js.configs.recommended, +}); + +export default [ + { + ignores: ['**/dist', '**/node_modules'], + }, + ...baseConfig, + ...compat + .config({ + extends: [ + 'plugin:@nx/angular', + 'plugin:@angular-eslint/template/process-inline-templates', + ], + plugins: ['@typescript-eslint'], + }) + .map((config) => ({ + ...config, + files: ['**/*.ts'], + rules: { + ...config.rules, + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'ngrx', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'ngrx', + style: 'kebab-case', + }, + ], + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@nx/enforce-module-boundaries': 'off', + eqeqeq: ['off', 'smart'], + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'no-eval': 'off', + 'no-redeclare': 'error', + 'no-underscore-dangle': 'error', + 'no-var': 'error', + 'no-case-declarations': 'off', + '@angular-eslint/prefer-standalone': 'off', + }, + languageOptions: { + parserOptions: { + project: ['projects/www/tsconfig.*.json'], + }, + }, + })), + ...compat + .config({ + extends: ['plugin:@nx/angular-template'], + }) + .map((config) => ({ + ...config, + files: ['**/*.html'], + rules: { + ...config.rules, + }, + })), + { + ignores: ['**/environment.prod.ts'], + }, +]; \ No newline at end of file diff --git a/projects/www/project.json b/projects/www/project.json index 55b91e5a21..62310277ec 100644 --- a/projects/www/project.json +++ b/projects/www/project.json @@ -50,6 +50,13 @@ "executor": "@analogjs/vitest-angular:test", "outputs": ["{projectRoot}/coverage"] }, + "lint": { + "executor": "@nx/eslint:lint", + "options": { + "lintFilePatterns": ["projects/www/**/*.ts", "projects/www/**/*.html"], + "config": "eslint.config.mjs" + } + }, "collect-docs": { "executor": "nx:run-script", "options": { From abdadfa6638adfd8357306b29508dd323dc0f5ee Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 18:18:06 +0000 Subject: [PATCH 23/28] fix: lint errors and most warnings --- projects/www/src/app/app.component.ts | 2 +- .../src/app/components/banner-animation.component.ts | 2 +- .../src/app/components/docs/code-example.component.ts | 2 +- projects/www/src/app/components/docs/markdown.pipe.ts | 4 ++-- .../src/app/components/docs/stackblitz.component.ts | 4 ++-- .../src/app/components/docs/symbol-chip.component.ts | 3 +-- .../src/app/components/docs/symbol-link.component.ts | 11 +++++------ .../www/src/app/components/styled-box.component.ts | 4 ++-- .../www/src/app/examples/__base/src/app.component.ts | 5 ++--- .../src/app/examples/ngrx-start/src/app.component.ts | 5 ++--- .../src/app/examples/signals-01/src/app.component.ts | 5 ++--- .../www/src/app/examples/store/src/app.component.ts | 5 ++--- .../store/src/my-counter/my-counter.component.ts | 3 +-- projects/www/src/app/pages/guide.page.ts | 10 ++-------- projects/www/src/app/pages/workshops.page.ts | 3 +-- projects/www/src/app/reference/reference.service.ts | 2 +- projects/www/src/app/services/markdown.service.ts | 3 ++- projects/www/src/tools/extract-docs-content.ts | 4 ++-- 18 files changed, 32 insertions(+), 45 deletions(-) diff --git a/projects/www/src/app/app.component.ts b/projects/www/src/app/app.component.ts index fdaa46210c..9a6bf9ea00 100644 --- a/projects/www/src/app/app.component.ts +++ b/projects/www/src/app/app.component.ts @@ -9,7 +9,7 @@ import { StackblitzComponent } from './components/docs/stackblitz.component'; import { FooterComponent } from './components/footer.component'; @Component({ - selector: 'www-root', + selector: 'ngrx-root', standalone: true, imports: [ RouterOutlet, diff --git a/projects/www/src/app/components/banner-animation.component.ts b/projects/www/src/app/components/banner-animation.component.ts index 7efe0c7ada..86e20bab06 100644 --- a/projects/www/src/app/components/banner-animation.component.ts +++ b/projects/www/src/app/components/banner-animation.component.ts @@ -368,7 +368,7 @@ export class BannerAnimationComponent implements AfterViewInit, OnDestroy { const CIRCLE_ANIMATION_DURATION = 7_500; const CIRCLE_ANIMATION_DELAY = 2_500; - let circleAnimationStart = Date.now(); + const circleAnimationStart = Date.now(); for (const { circle, ellipse } of this.lineGroups()) { const [dark, light] = diff --git a/projects/www/src/app/components/docs/code-example.component.ts b/projects/www/src/app/components/docs/code-example.component.ts index 9d0f097b06..f5495d6858 100644 --- a/projects/www/src/app/components/docs/code-example.component.ts +++ b/projects/www/src/app/components/docs/code-example.component.ts @@ -34,5 +34,5 @@ import { Component, Input } from '@angular/core'; ], }) export class CodeExampleComponent { - @Input() header: string = ''; + @Input() header = ''; } diff --git a/projects/www/src/app/components/docs/markdown.pipe.ts b/projects/www/src/app/components/docs/markdown.pipe.ts index 58e5dd09c8..948855cdfc 100644 --- a/projects/www/src/app/components/docs/markdown.pipe.ts +++ b/projects/www/src/app/components/docs/markdown.pipe.ts @@ -9,7 +9,7 @@ export const CanonicalReferenceExtension = { name: 'canonicalReference', level: 'inline', tokenizer(src: string): any { - const rule = /@?[\w\/]+![\w]+:[\w]+/; + const rule = /@?[\w/]+![\w]+:[\w]+/; const match = rule.exec(src); console.log({ src, match }); if (match) { @@ -43,7 +43,7 @@ export class MarkdownPipe implements PipeTransform { marked = new Marked( markedHighlight({ langPrefix: 'hljs language-', - highlight(code, lang, info) { + highlight(code, lang, _info) { const language = hljs.getLanguage(lang) ? lang : 'plaintext'; return hljs.highlight(code, { language }).value; }, diff --git a/projects/www/src/app/components/docs/stackblitz.component.ts b/projects/www/src/app/components/docs/stackblitz.component.ts index 094cc62aba..7b56e44b0d 100644 --- a/projects/www/src/app/components/docs/stackblitz.component.ts +++ b/projects/www/src/app/components/docs/stackblitz.component.ts @@ -38,8 +38,8 @@ import { ExamplesService } from '@ngrx-io/app/examples/examples.service'; export class StackblitzComponent implements AfterViewInit { examplesService = inject(ExamplesService); platformId = inject(PLATFORM_ID); - @Input() name: string = '__base'; - @Input() embedded: string = 'false'; + @Input() name = '__base'; + @Input() embedded = 'false'; exampleRef = viewChild.required>('example'); diff --git a/projects/www/src/app/components/docs/symbol-chip.component.ts b/projects/www/src/app/components/docs/symbol-chip.component.ts index a269917000..9c7358d3e2 100644 --- a/projects/www/src/app/components/docs/symbol-chip.component.ts +++ b/projects/www/src/app/components/docs/symbol-chip.component.ts @@ -8,7 +8,6 @@ import { @Component({ selector: 'ngrx-symbol-chip', - standalone: true, template: ` {{ firstLetterOfKind() }} @@ -97,7 +96,7 @@ export class SymbolChipComponent { () => new ParsedCanonicalReference(this.symbol().canonicalReference) ); url = computed(() => { - const [ngrx, ...rest] = this.parsedReference().package.split('/'); + const [_ngrx, ...rest] = this.parsedReference().package.split('/'); return `/api/${rest.join('/')}/${this.parsedReference().name}`; }); } diff --git a/projects/www/src/app/components/docs/symbol-link.component.ts b/projects/www/src/app/components/docs/symbol-link.component.ts index c91852ed43..33e42a08bf 100644 --- a/projects/www/src/app/components/docs/symbol-link.component.ts +++ b/projects/www/src/app/components/docs/symbol-link.component.ts @@ -11,7 +11,7 @@ import { import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop'; import { RouterLink } from '@angular/router'; import { CanonicalReference, ParsedCanonicalReference } from '@ngrx-io/shared'; -import { EMPTY, Observable, fromEvent, switchMap, takeUntil, tap } from 'rxjs'; +import { EMPTY, Observable, fromEvent, switchMap, takeUntil } from 'rxjs'; import { SYMBOl_POPOVER_REF, SymbolPopoverComponent, @@ -20,7 +20,6 @@ import { ReferenceService } from '@ngrx-io/app/reference/reference.service'; @Component({ selector: 'ngrx-symbol-link', - standalone: true, imports: [RouterLink, SymbolPopoverComponent], // Spacing is intentional to avoid unnecessary whitespace in the output template: `@if (isPrivate) {{{ name }}} @else if (shouldUseExternalLink) {>('internalSymbolLink'); - url: string = ''; - isPrivate: boolean = true; + url = ''; + isPrivate = true; parsedReference: ParsedCanonicalReference = new ParsedCanonicalReference( '@ngrx/store!Store:class' ); - shouldUseExternalLink: boolean = false; + shouldUseExternalLink = false; /** * Signal inputs aren't supported by @angular/elements, so we need @@ -65,7 +64,7 @@ export class SymbolLinkComponent { if (parsed.isPrivate) { this.url = ''; } else if (parsed.package.startsWith('@ngrx')) { - const [ngrx, ...rest] = parsed.package.split('/'); + const [_ngrx, ...rest] = parsed.package.split('/'); this.url = `/api/${rest.join('/')}/${parsed.name}`; } else if (parsed.package.startsWith('@angular')) { const [, packageName] = parsed.package.split('/'); diff --git a/projects/www/src/app/components/styled-box.component.ts b/projects/www/src/app/components/styled-box.component.ts index 14945a88e0..e6df5c6718 100644 --- a/projects/www/src/app/components/styled-box.component.ts +++ b/projects/www/src/app/components/styled-box.component.ts @@ -1,5 +1,6 @@ import { isPlatformServer } from '@angular/common'; import { + AfterViewInit, Component, ElementRef, HostBinding, @@ -11,7 +12,6 @@ import { @Component({ selector: 'ngrx-styled-box', - standalone: true, template: ` Hello from {{ name }}! @@ -10,6 +9,6 @@ import { Component } from '@angular/core'; `, }) -export class App { +export class AppComponent { name = 'Angular'; } diff --git a/projects/www/src/app/examples/ngrx-start/src/app.component.ts b/projects/www/src/app/examples/ngrx-start/src/app.component.ts index ebe15bc39c..880ae3d79d 100644 --- a/projects/www/src/app/examples/ngrx-start/src/app.component.ts +++ b/projects/www/src/app/examples/ngrx-start/src/app.component.ts @@ -1,8 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-root', - standalone: true, + selector: 'ngrx-app-root', template: `

NgRx base

`, }) -export class App {} +export class AppComponent {} diff --git a/projects/www/src/app/examples/signals-01/src/app.component.ts b/projects/www/src/app/examples/signals-01/src/app.component.ts index 15a9c3e129..6346931f79 100644 --- a/projects/www/src/app/examples/signals-01/src/app.component.ts +++ b/projects/www/src/app/examples/signals-01/src/app.component.ts @@ -14,8 +14,7 @@ const Store = signalStore( ); @Component({ - selector: 'app-root', - standalone: true, + selector: 'ngrx-app-root', template: `

Count: {{ store.count() }}

@@ -23,6 +22,6 @@ const Store = signalStore( `, providers: [Store], }) -export class App { +export class AppComponent { store = inject(Store); } diff --git a/projects/www/src/app/examples/store/src/app.component.ts b/projects/www/src/app/examples/store/src/app.component.ts index 9f83f46d7e..9bbee35325 100644 --- a/projects/www/src/app/examples/store/src/app.component.ts +++ b/projects/www/src/app/examples/store/src/app.component.ts @@ -2,8 +2,7 @@ import { Component } from '@angular/core'; import { MyCounterComponent } from './my-counter/my-counter.component'; @Component({ - selector: 'app-root', - standalone: true, + selector: 'ngrx-app-root', imports: [MyCounterComponent], template: `

NgRx Tutorial

@@ -11,4 +10,4 @@ import { MyCounterComponent } from './my-counter/my-counter.component'; `, }) -export class App {} +export class AppComponent {} diff --git a/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts b/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts index a12864a5c6..b3896afe86 100644 --- a/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts +++ b/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts @@ -3,8 +3,7 @@ import { Store } from '@ngrx/store'; import { increment, decrement, reset } from '../counter.actions'; @Component({ - selector: 'app-my-counter', - standalone: true, + selector: 'ngrx-app-my-counter', template: ` diff --git a/projects/www/src/app/pages/guide.page.ts b/projects/www/src/app/pages/guide.page.ts index 1b8f752447..cf7ff14d61 100644 --- a/projects/www/src/app/pages/guide.page.ts +++ b/projects/www/src/app/pages/guide.page.ts @@ -1,20 +1,14 @@ import { Component, computed, inject } from '@angular/core'; -import { - NavigationEnd, - Router, - RouterLink, - RouterOutlet, -} from '@angular/router'; +import { NavigationEnd, Router, RouterOutlet } from '@angular/router'; import { MarkdownArticleComponent } from '../components/docs/markdown-article.component'; import { toSignal } from '@angular/core/rxjs-interop'; -import { filter, tap, map, startWith } from 'rxjs'; +import { filter, map, startWith } from 'rxjs'; import { Location } from '@angular/common'; import { GuideMenuService } from '../services/guide-menu.service'; import { GuideFooterComponent } from '../components/guide-footer.component'; @Component({ selector: 'ngrx-guide-page', - standalone: true, imports: [RouterOutlet, MarkdownArticleComponent, GuideFooterComponent], template: ` diff --git a/projects/www/src/app/pages/workshops.page.ts b/projects/www/src/app/pages/workshops.page.ts index f5e350b50e..d907b1a6b7 100644 --- a/projects/www/src/app/pages/workshops.page.ts +++ b/projects/www/src/app/pages/workshops.page.ts @@ -3,7 +3,6 @@ import { StyledBoxComponent } from '../components/styled-box.component'; @Component({ selector: 'ngrx-workshops-page', - standalone: true, imports: [StyledBoxComponent], template: ` @@ -199,4 +198,4 @@ import { StyledBoxComponent } from '../components/styled-box.component'; `, ], }) -export default class WorkshopsPage {} +export default class WorkshopsPageComponent {} diff --git a/projects/www/src/app/reference/reference.service.ts b/projects/www/src/app/reference/reference.service.ts index 289d53cf67..261a4db75c 100644 --- a/projects/www/src/app/reference/reference.service.ts +++ b/projects/www/src/app/reference/reference.service.ts @@ -40,7 +40,7 @@ export class ReferenceService { canonicalReference: CanonicalReference ): Promise { const parsed = new ParsedCanonicalReference(canonicalReference); - const [ngrx, ...rest] = parsed.package.split('/'); + const [_ngrx, ...rest] = parsed.package.split('/'); return this.loadReferenceData(rest.join('/'), parsed.name); } diff --git a/projects/www/src/app/services/markdown.service.ts b/projects/www/src/app/services/markdown.service.ts index 7946ab6c39..2d0b87a474 100644 --- a/projects/www/src/app/services/markdown.service.ts +++ b/projects/www/src/app/services/markdown.service.ts @@ -9,7 +9,7 @@ export const CanonicalReferenceExtension = { name: 'canonicalReference', level: 'inline', tokenizer(this: any, src: string): any { - const rule = /@?[\w\/-]+![\w]+:[\w]+/; + const rule = /@?[\w/-]+![\w]+:[\w]+/; const match = rule.exec(src); if (match) { const parsed = new ParsedCanonicalReference( @@ -69,6 +69,7 @@ export class NgRxMarkedSetupService extends MarkedSetupService { } override getMarkedInstance(): typeof marked { + // eslint-disable-next-line no-underscore-dangle return this._marked as unknown as typeof marked; } } diff --git a/projects/www/src/tools/extract-docs-content.ts b/projects/www/src/tools/extract-docs-content.ts index 151368f106..3e59e2a1a9 100644 --- a/projects/www/src/tools/extract-docs-content.ts +++ b/projects/www/src/tools/extract-docs-content.ts @@ -246,7 +246,7 @@ function rollupApiReport(pkg: ApiPackage): ApiReport { } function renderDocNode(annotation: string, docNode?: DocNode): string { - let result: string = ''; + let result = ''; if (docNode) { if (docNode instanceof DocExcerpt) { result += docNode.content.toString(); @@ -364,7 +364,7 @@ function writeFinalizedApiReport() { for (const packageName of report.packageNames) { const packageReport = report.packages[packageName]; - const [ngrx, ...packagePath] = packageName.split('/'); + const [_ngrx, ...packagePath] = packageName.split('/'); for (const symbolName of packageReport.symbolNames) { const symbol = packageReport.symbols[symbolName]; From 3dd0f0fdc0b23501742d32f68bb772af5f6ed91b Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 18:47:58 +0000 Subject: [PATCH 24/28] fix: index.html --- projects/www/index.html | 2 +- projects/www/src/app/app.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/www/index.html b/projects/www/index.html index 81e83b57ac..f60d05d2db 100644 --- a/projects/www/index.html +++ b/projects/www/index.html @@ -34,7 +34,7 @@ - + diff --git a/projects/www/src/app/app.component.ts b/projects/www/src/app/app.component.ts index 9a6bf9ea00..9160ab249b 100644 --- a/projects/www/src/app/app.component.ts +++ b/projects/www/src/app/app.component.ts @@ -9,7 +9,7 @@ import { StackblitzComponent } from './components/docs/stackblitz.component'; import { FooterComponent } from './components/footer.component'; @Component({ - selector: 'ngrx-root', + selector: 'ngrx-www-root', standalone: true, imports: [ RouterOutlet, From 530c2d8bca2ae2a20b16724ea26cd95c9cb72b29 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 22:52:52 +0000 Subject: [PATCH 25/28] fix: update tags --- nx.json | 1 - projects/www/index.html | 2 +- projects/www/src/app/app.component.ts | 2 +- projects/www/src/app/examples/__base/index.html | 2 +- projects/www/src/app/examples/__base/src/app.component.ts | 2 +- projects/www/src/app/examples/ngrx-start/src/app.component.ts | 2 +- projects/www/src/app/examples/signals-01/src/app.component.ts | 2 +- projects/www/src/app/examples/store/src/app.component.ts | 2 +- .../app/examples/store/src/my-counter/my-counter.component.ts | 2 +- 9 files changed, 8 insertions(+), 9 deletions(-) diff --git a/nx.json b/nx.json index 9f34314721..f88b6244b7 100644 --- a/nx.json +++ b/nx.json @@ -91,7 +91,6 @@ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/jest.config.[jt]s", - "!{projectRoot}/.eslintrc.json", "!{projectRoot}/src/test-setup.[jt]s", "!{projectRoot}/eslint.config.mjs" ] diff --git a/projects/www/index.html b/projects/www/index.html index f60d05d2db..1dc9ca3ee9 100644 --- a/projects/www/index.html +++ b/projects/www/index.html @@ -34,7 +34,7 @@ - + diff --git a/projects/www/src/app/app.component.ts b/projects/www/src/app/app.component.ts index 9160ab249b..9a6bf9ea00 100644 --- a/projects/www/src/app/app.component.ts +++ b/projects/www/src/app/app.component.ts @@ -9,7 +9,7 @@ import { StackblitzComponent } from './components/docs/stackblitz.component'; import { FooterComponent } from './components/footer.component'; @Component({ - selector: 'ngrx-www-root', + selector: 'ngrx-root', standalone: true, imports: [ RouterOutlet, diff --git a/projects/www/src/app/examples/__base/index.html b/projects/www/src/app/examples/__base/index.html index 17d565af7f..668d931247 100644 --- a/projects/www/src/app/examples/__base/index.html +++ b/projects/www/src/app/examples/__base/index.html @@ -8,7 +8,7 @@ - Loading... + Loading... diff --git a/projects/www/src/app/examples/__base/src/app.component.ts b/projects/www/src/app/examples/__base/src/app.component.ts index cc583f1f96..7993da0b9f 100644 --- a/projects/www/src/app/examples/__base/src/app.component.ts +++ b/projects/www/src/app/examples/__base/src/app.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'ngrx-app-root', + selector: 'ngrx-root', template: `

Hello from {{ name }}!

diff --git a/projects/www/src/app/examples/ngrx-start/src/app.component.ts b/projects/www/src/app/examples/ngrx-start/src/app.component.ts index 880ae3d79d..9c1ddc23d8 100644 --- a/projects/www/src/app/examples/ngrx-start/src/app.component.ts +++ b/projects/www/src/app/examples/ngrx-start/src/app.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'ngrx-app-root', + selector: 'ngrx-root', template: `

NgRx base

`, }) export class AppComponent {} diff --git a/projects/www/src/app/examples/signals-01/src/app.component.ts b/projects/www/src/app/examples/signals-01/src/app.component.ts index 6346931f79..cd712a0385 100644 --- a/projects/www/src/app/examples/signals-01/src/app.component.ts +++ b/projects/www/src/app/examples/signals-01/src/app.component.ts @@ -14,7 +14,7 @@ const Store = signalStore( ); @Component({ - selector: 'ngrx-app-root', + selector: 'ngrx-root', template: `

Count: {{ store.count() }}

diff --git a/projects/www/src/app/examples/store/src/app.component.ts b/projects/www/src/app/examples/store/src/app.component.ts index 9bbee35325..241a4544d9 100644 --- a/projects/www/src/app/examples/store/src/app.component.ts +++ b/projects/www/src/app/examples/store/src/app.component.ts @@ -2,7 +2,7 @@ import { Component } from '@angular/core'; import { MyCounterComponent } from './my-counter/my-counter.component'; @Component({ - selector: 'ngrx-app-root', + selector: 'ngrx-root', imports: [MyCounterComponent], template: `

NgRx Tutorial

diff --git a/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts b/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts index b3896afe86..15f6672f24 100644 --- a/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts +++ b/projects/www/src/app/examples/store/src/my-counter/my-counter.component.ts @@ -3,7 +3,7 @@ import { Store } from '@ngrx/store'; import { increment, decrement, reset } from '../counter.actions'; @Component({ - selector: 'ngrx-app-my-counter', + selector: 'ngrx-my-counter', template: ` From f6ed7de28e7ae22506d3fe16883abb124fc6ddf4 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 22:59:59 +0000 Subject: [PATCH 26/28] fix: my-counter tags --- .../content/examples/store/src/app/app.component.html | 2 +- .../store/src/app/my-counter/my-counter.component.ts | 3 ++- projects/ngrx.io/content/guide/store/index.md | 2 +- projects/www/src/app/examples/store/src/app.component.ts | 2 +- projects/www/src/app/pages/guide/store/index.md | 6 +++--- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/projects/ngrx.io/content/examples/store/src/app/app.component.html b/projects/ngrx.io/content/examples/store/src/app/app.component.html index 1bdd5533a8..eebe97e6ce 100644 --- a/projects/ngrx.io/content/examples/store/src/app/app.component.html +++ b/projects/ngrx.io/content/examples/store/src/app/app.component.html @@ -1,5 +1,5 @@

NgRx Tutorial

- + \ No newline at end of file diff --git a/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts b/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts index eed089ddf0..88d2e6a69f 100644 --- a/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts +++ b/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts @@ -1,10 +1,11 @@ +/* eslint-disable import/no-deprecated */ import { Component } from '@angular/core'; import { Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { increment, decrement, reset } from '../counter.actions'; @Component({ - selector: 'app-my-counter', + selector: 'ngrx-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent { diff --git a/projects/ngrx.io/content/guide/store/index.md b/projects/ngrx.io/content/guide/store/index.md index 6dd1dc72d5..e48a4cd51b 100644 --- a/projects/ngrx.io/content/guide/store/index.md +++ b/projects/ngrx.io/content/guide/store/index.md @@ -64,7 +64,7 @@ import { Component } from '@angular/core'; import { Observable } from 'rxjs'; @Component({ - selector: 'app-my-counter', + selector: 'ngrx-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent { diff --git a/projects/www/src/app/examples/store/src/app.component.ts b/projects/www/src/app/examples/store/src/app.component.ts index 241a4544d9..6988d9db8a 100644 --- a/projects/www/src/app/examples/store/src/app.component.ts +++ b/projects/www/src/app/examples/store/src/app.component.ts @@ -7,7 +7,7 @@ import { MyCounterComponent } from './my-counter/my-counter.component'; template: `

NgRx Tutorial

- + `, }) export class AppComponent {} diff --git a/projects/www/src/app/pages/guide/store/index.md b/projects/www/src/app/pages/guide/store/index.md index bee15234fc..1ab005cf00 100644 --- a/projects/www/src/app/pages/guide/store/index.md +++ b/projects/www/src/app/pages/guide/store/index.md @@ -124,7 +124,7 @@ import { Component } from '@angular/core'; import { Observable } from 'rxjs'; @Component({ - selector: 'app-my-counter', + selector: 'ngrx-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent { @@ -169,7 +169,7 @@ export class MyCounterComponent { ```html - + ``` @@ -211,7 +211,7 @@ import { Observable } from 'rxjs'; import { increment, decrement, reset } from '../counter.actions'; @Component({ - selector: 'app-my-counter', + selector: 'ngrx-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent { From e6e1cdaa30c57451b90cd16b5936ebde1a0676b1 Mon Sep 17 00:00:00 2001 From: "J. Degand" <70610011+jdegand@users.noreply.github.com> Date: Tue, 12 Aug 2025 23:15:01 +0000 Subject: [PATCH 27/28] fix: import AppComponent --- projects/www/src/app/examples/__base/src/main.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/www/src/app/examples/__base/src/main.ts b/projects/www/src/app/examples/__base/src/main.ts index 7357a20037..0797e7462c 100644 --- a/projects/www/src/app/examples/__base/src/main.ts +++ b/projects/www/src/app/examples/__base/src/main.ts @@ -4,11 +4,11 @@ import { mergeApplicationConfig, provideZonelessChangeDetection, } from '@angular/core'; -import { App } from './app.component'; +import { AppComponent } from './app.component'; import { appConfig } from './app.config'; const config = mergeApplicationConfig(appConfig, { providers: [provideZonelessChangeDetection()], }); -bootstrapApplication(App, config); +bootstrapApplication(AppComponent, config); From 776b53d2d3e5d60114d0bd4c57ac59b438a69312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Stanimirovi=C4=87?= Date: Wed, 13 Aug 2025 10:36:24 +0200 Subject: [PATCH 28/28] chore: revert selector changes from legacy docs --- package.json | 2 +- .../ngrx.io/content/examples/store/src/app/app.component.html | 4 ++-- .../examples/store/src/app/my-counter/my-counter.component.ts | 2 +- projects/ngrx.io/content/guide/store/index.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f19e5c60c2..12e53d0601 100644 --- a/package.json +++ b/package.json @@ -205,4 +205,4 @@ "url": "https://opencollective.com/ngrx", "logo": "https://opencollective.com/opencollective/logo.txt" } -} \ No newline at end of file +} diff --git a/projects/ngrx.io/content/examples/store/src/app/app.component.html b/projects/ngrx.io/content/examples/store/src/app/app.component.html index eebe97e6ce..a9e25e616e 100644 --- a/projects/ngrx.io/content/examples/store/src/app/app.component.html +++ b/projects/ngrx.io/content/examples/store/src/app/app.component.html @@ -1,5 +1,5 @@

NgRx Tutorial

- - \ No newline at end of file + + diff --git a/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts b/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts index 88d2e6a69f..e2ee8d429d 100644 --- a/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts +++ b/projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.ts @@ -5,7 +5,7 @@ import { Observable } from 'rxjs'; import { increment, decrement, reset } from '../counter.actions'; @Component({ - selector: 'ngrx-my-counter', + selector: 'app-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent { diff --git a/projects/ngrx.io/content/guide/store/index.md b/projects/ngrx.io/content/guide/store/index.md index e48a4cd51b..6dd1dc72d5 100644 --- a/projects/ngrx.io/content/guide/store/index.md +++ b/projects/ngrx.io/content/guide/store/index.md @@ -64,7 +64,7 @@ import { Component } from '@angular/core'; import { Observable } from 'rxjs'; @Component({ - selector: 'ngrx-my-counter', + selector: 'app-my-counter', templateUrl: './my-counter.component.html', }) export class MyCounterComponent {