build(deps): upgrade ESLint 8→9, migrate to flat config (JDWLABS-4)#4
Merged
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…S-4)" This reverts commit 3e0a2d0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Also installs typescript-eslint (required peer for @nx/eslint-plugin flat/typescript config, was missing from devDependencies). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…BS-4) - Create eslint.config.ts for authui, container, rolesui, usersui - Delete old .eslintrc.json files for all 4 apps - Install angular-eslint (required peer dep for @nx/eslint-plugin flat/angular) - Add eslint.config.ts to global ignores in root config to prevent @nx/enforce-module-boundaries false positives on config-file imports Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…BS-4) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Root README: Nx 20→22, Angular 19→21, Cypress→Playwright 1.60, Node 22→24, Go 1.24→1.23 - Root README: add rolesui/ and platform-e2e/ to directory tree; remove nonexistent emailsender/ - tools/agents/README: Node 22→24, Go 1.24→1.26.2, add Playwright, add pnpm - servicediscovery/README: replace generic config example with real microfrontends Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… config (JDWLABS-4) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… ignores (JDWLABS-4) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…g (JDWLABS-4) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
|
View your CI Pipeline Execution ↗ for commit c2af193
☁️ Nx Cloud last updated this comment at |
Contributor
There was a problem hiding this comment.
✅ The fix from Nx Cloud was applied
We added tabindex="0" and a (keydown.enter) handler to the drop-zone <div> in icon.component.html to resolve the two @angular-eslint/template errors surfaced by the ESLint 9 flat config migration. These changes make the element keyboard-focusable and reachable via keyboard activation, satisfying both click-events-have-key-events and interactive-supports-focus without altering any existing behaviour.
Tip
✅ We verified this fix by re-running angular-usersui-feature-core:lint.
Suggested Fix changes
diff --git a/libs/angular/usersui/feature/core/src/lib/icon/icon.component.html b/libs/angular/usersui/feature/core/src/lib/icon/icon.component.html
index 573c27e..c8acbca 100644
--- a/libs/angular/usersui/feature/core/src/lib/icon/icon.component.html
+++ b/libs/angular/usersui/feature/core/src/lib/icon/icon.component.html
@@ -18,9 +18,11 @@
<div
(click)="fileInput.click()"
+ (keydown.enter)="fileInput.click()"
[class.drag-over]="isDragOver"
class="drop-zone"
data-cy="drop-zone"
+ tabindex="0"
>
@if (!selectedFile) {
<mat-icon class="upload-icon" data-cy="upload-icon"
diff --git a/tsconfig.base.json b/tsconfig.base.json
index aed747f..70fb388 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -10,7 +10,10 @@
"importHelpers": true,
"target": "es2015",
"module": "esnext",
- "lib": ["es2020", "dom"],
+ "lib": [
+ "es2020",
+ "dom"
+ ],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"baseUrl": ".",
@@ -18,7 +21,9 @@
"@jdw/angular-authui-feature-core": [
"libs/angular/authui/feature/core/src/index.ts"
],
- "@jdw/angular-authui-util": ["libs/angular/authui/util/src/index.ts"],
+ "@jdw/angular-authui-util": [
+ "libs/angular/authui/util/src/index.ts"
+ ],
"@jdw/angular-container-data-access": [
"libs/angular/container/data-access/src/index.ts"
],
@@ -31,19 +36,27 @@
"@jdw/angular-rolesui-feature-core": [
"libs/angular/rolesui/feature/core/src/index.ts"
],
- "@jdw/angular-rolesui-util": ["libs/angular/rolesui/util/src/index.ts"],
+ "@jdw/angular-rolesui-util": [
+ "libs/angular/rolesui/util/src/index.ts"
+ ],
"@jdw/angular-shared-data-access": [
"libs/angular/shared/data-access/src/index.ts"
],
- "@jdw/angular-shared-ui": ["libs/angular/shared/ui/src/index.ts"],
- "@jdw/angular-shared-util": ["libs/angular/shared/util/src/index.ts"],
+ "@jdw/angular-shared-ui": [
+ "libs/angular/shared/ui/src/index.ts"
+ ],
+ "@jdw/angular-shared-util": [
+ "libs/angular/shared/util/src/index.ts"
+ ],
"@jdw/angular-usersui-data-access": [
"libs/angular/usersui/data-access/src/index.ts"
],
"@jdw/angular-usersui-feature-core": [
"libs/angular/usersui/feature/core/src/index.ts"
],
- "@jdw/angular-usersui-util": ["libs/angular/usersui/util/src/index.ts"],
+ "@jdw/angular-usersui-util": [
+ "libs/angular/usersui/util/src/index.ts"
+ ],
"authui/Routes": [
"apps/angular/authui/authui/src/app/remote-entry/entry.routes.ts"
],
@@ -55,5 +68,8 @@
]
}
},
- "exclude": ["node_modules", "tmp"]
-}
+ "exclude": [
+ "node_modules",
+ "tmp"
+ ]
+}
\ No newline at end of file
➡️ This fix was applied by Jake Willmsen
🎓 Learn more about Self-Healing CI on nx.dev
Co-authored-by: jdwillmsen <jdwillmsen@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.eslintrc.jsonfiles toeslint.config.tsflat config formatglobalsandtypescript-eslintpackages required for flat configangular-eslintunified package required by@nx/eslint-pluginflat presets.eslintignore→ignoresin rooteslint.config.tsnx.jsonnamedInputs.productionandtargetDefaults["@nx/eslint:lint"].inputsConfig structure
Root
eslint.config.tsowns NX boundaries + TS/JS base + Jest globals. Each project imports and spreads root, then adds Angular selector rules. Four templates:@nx/dependency-checkson*.jsonTest plan
nx run-many -t lint— all 24 projects pass (1 pre-existing error in usersui-feature-core unrelated to migration)nx run-many -t lint --skip-nx-cache— no cache false-positivesnx format:check— clean.eslintrc.jsonfiles remaining outside node_modulesCloses JDWLABS-4
🤖 Generated with Claude Code