Skip to content

fix(deps): resolve all frontend npm audit vulnerabilities - #58

Merged
ynixt merged 2 commits into
mainfrom
claude/frontend-security-vulnerabilities-1e7053
Oct 10, 2026
Merged

ynixt merged 2 commits into
mainfrom
claude/frontend-security-vulnerabilities-1e7053

Conversation

@ynixt

@ynixt ynixt commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Clears 31 findings (2 critical, 22 high, 4 moderate, 3 low) reported by Dependabot on frontend/package-lock.json, bringing npm audit to zero.

npm audit fix could not resolve the Angular packages: they peer-pin each other at an exact version, and incremental updates kept failing with ERESOLVE against the stale tree. Regenerating package-lock.json resolved everything within the existing package.json ranges, so no dependency ranges needed loosening.

Notable bumps:
@angular/{core,common,compiler,forms,router,...} 21.2.7 -> 21.2.20
@angular/build 21.2.6 -> 21.2.21
vite 7.3.1 -> 7.3.6
vitest 4.0.18 -> 4.1.10
postcss 8.5.10 -> 8.5.26
immutable 5.1.5 -> 5.1.9
piscina 5.1.4 -> 5.2.0
undici 7.24.4 -> 7.29.0
js-yaml 4.1.1 -> 4.3.1
fast-uri 3.1.2 -> 3.1.5
ip-address 10.2.0 -> 10.5.0
tar 7.5.13 -> 7.5.22
brace-expansion, ws, nanoid, hono, sigstore, qs, esbuild patched

Duplicate nested copies of vite, esbuild and @angular/build under @angular-builders/custom-esbuild are now deduped.

Also pins eslint to ^9.39.1 in devDependencies. It was never declared and only arrived transitively via the eslint plugins, which happened to hold it at 9.39.1. On regeneration it floated to 10.8.1, which drops the bundled @eslint/eslintrc and broke npm run lint outright. Migrating to ESLint 10 is a separate change, not part of a security patch.

Verified: build succeeds, 158 tests across 43 files pass, eslint and prettier clean.

ynixt and others added 2 commits August 15, 2026 00:27
Clears 31 findings (2 critical, 22 high, 4 moderate, 3 low) reported by
Dependabot on frontend/package-lock.json, bringing `npm audit` to zero.

`npm audit fix` could not resolve the Angular packages: they peer-pin each
other at an exact version, and incremental updates kept failing with
ERESOLVE against the stale tree. Regenerating package-lock.json resolved
everything within the existing package.json ranges, so no dependency
ranges needed loosening.

Notable bumps:
  @angular/{core,common,compiler,forms,router,...} 21.2.7  -> 21.2.20
  @angular/build                                   21.2.6  -> 21.2.21
  vite                                             7.3.1   -> 7.3.6
  vitest                                           4.0.18  -> 4.1.10
  postcss                                          8.5.10  -> 8.5.26
  immutable                                        5.1.5   -> 5.1.9
  piscina                                          5.1.4   -> 5.2.0
  undici                                           7.24.4  -> 7.29.0
  js-yaml                                          4.1.1   -> 4.3.1
  fast-uri                                         3.1.2   -> 3.1.5
  ip-address                                       10.2.0  -> 10.5.0
  tar                                              7.5.13  -> 7.5.22
  brace-expansion, ws, nanoid, hono, sigstore, qs, esbuild patched

Duplicate nested copies of vite, esbuild and @angular/build under
@angular-builders/custom-esbuild are now deduped.

Also pins eslint to ^9.39.1 in devDependencies. It was never declared and
only arrived transitively via the eslint plugins, which happened to hold
it at 9.39.1. On regeneration it floated to 10.8.1, which drops the
bundled @eslint/eslintrc and broke `npm run lint` outright. Migrating to
ESLint 10 is a separate change, not part of a security patch.

Verified: build succeeds, 158 tests across 43 files pass, eslint and
prettier clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… tests

Integration test classes without @DirtiesContext stay in Spring's context
cache for the whole run, and every cached context keeps its JetStream
listeners and schedulers running against the shared NATS/Postgres
containers. All of them pull from the same durable import consumer, so a
batch dispatched by ImportControllerIntegrationTest could be processed by
a leftover context from another class, one without TestClockConfig (real
clock instead of 2026-08-10) and without the test's spy beans. The import
then materialized extra installments (e.g. 6 wallet events instead of 4)
and different import tests failed on different runs.

Capping the context cache at 1 closes the previous context before the
next one starts, so only the running test's context consumes jobs.

Verified locally: without the change the full integrationTest suite failed
in ImportControllerIntegrationTest on both runs (2/2); with it, 3/3 runs
passed all 40 tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CNbEVXm1GKzwUXw211aK1d
@ynixt
ynixt merged commit a0ac577 into main Oct 10, 2026
1 check passed
@ynixt
ynixt deleted the claude/frontend-security-vulnerabilities-1e7053 branch October 10, 2026 04:41
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.

2 participants