Skip to content

chore: update dependencies - #602

Merged
timdeschryver merged 1 commit into
mainfrom
chore/update-deps
Sep 16, 2026
Merged

timdeschryver merged 1 commit into
mainfrom
chore/update-deps

Conversation

@timdeschryver

Copy link
Copy Markdown
Member

What changed

Dependency update round in package.json (no lockfile in this repo).

Minor/patch bumps: Angular 22.1.1 → 22.1.6, CDK/Material → 22.1.7, CLI/devkit/schematics → 22.1.8, angular-eslint 22.1 → 22.5, typescript-eslint 8.67 → 8.70, jest 30.4 → 30.5.1, vitest 4.1.10 → 4.1.11, plus small bumps to zone.js, user-event, dom, autoprefixer, ng-mocks, prettier, @types/node, karma-jasmine-html-reporter and @eslint/eslintrc.

Major bumps (all checked against their peer ranges):

  • eslint 9 → 10 — every plugin in the config already declares ^10 support
  • @ngrx/store 21 → 22 — peers on @angular/core ^22
  • @testing-library/jest-dom 6 → 7 — only breaking changes are Node ≥ 22 and @testing-library/dom as a required peer, both already satisfied
  • jsdom 27 → 29 (deliberately not 30, see below)
  • lint-staged 16 → 17, cpy-cli 6 → 7

New devDependency: @eslint/js. ESLint 10 dropped it from its own dependencies, so the existing import eslint from '@eslint/js' in eslint.config.mjs stopped resolving and ng lint failed until it was added explicitly.

Reviewer notes

  • jsdom 30 is skipped on purpose. With jsdom 30, the three toHaveFormValues tests in the vitest example app fail with 'escape' called on an object that is not a valid instance of CSS. jest-dom's css.escape polyfill grabs CSS.escape detached from CSS, and jsdom 30 enforces the receiver check. Verified 27.4 / 28.1 / 29.1.1 pass and 30.0.1 fails; jest-dom 6 vs 7 makes no difference. The fix belongs upstream in css.escape / jest-dom — worth rechecking next round.
  • Left as-is: typescript 6.0.x (Angular 22.1 + ng-packagr pin >=6.0 <6.1), vitest 4.x (@angular/build peers on ^4), jasmine-core / @types/jasmine 4 (karma-jasmine 5.1 bundles jasmine-core ^4).
  • The ^6.9.1 jest-dom version the ng-add schematic installs for users is untouched; that's a separate, user-facing decision.

Verification

Run locally on Node 24.15 with a clean npm install --force (same as CI):

  • npm run build
  • npm run lint ✅ (all four projects on ESLint 10)
  • npm run format:check
  • npm run test:testing-library ✅ 155/155
  • npm run test:example-app ✅ 55/55
  • npm run test:jest-app ✅ 53 passed, 3 skipped
  • npm run test:karma-app -- --watch=false ✅ 5/5

🤖 Generated with Claude Code

Bump Angular to 22.1.6 (CLI 22.1.8, CDK/Material 22.1.7), angular-eslint
to 22.5, typescript-eslint to 8.70, jest to 30.5.1, vitest to 4.1.11 and
the usual patch/minor bumps.

Major bumps: eslint 10, @ngrx/store 22, @testing-library/jest-dom 7,
jsdom 29, lint-staged 17, cpy-cli 7.

ESLint 10 no longer ships @eslint/js as a transitive dependency, so it is
added explicitly for the import in eslint.config.mjs.

jsdom is kept at 29 rather than 30: jsdom 30 enforces the receiver check on
CSS.escape, which breaks the detached reference held by jest-dom's
css.escape polyfill and fails the toHaveFormValues tests under vitest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@timdeschryver
timdeschryver merged commit aa6ee3a into main Sep 16, 2026
6 checks passed
@timdeschryver
timdeschryver deleted the chore/update-deps branch September 16, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant