Context
Split out of #8588 (task 2 of 4) — the remaining npm audit findings after #8588's postcss+tar fix are all one
transitive chain: brace-expansion (high, DoS via unbounded expansion length, GHSA-mh99-v99m-4gvg)
pulled in via minimatch -> @eslint/config-array/@eslint/eslintrc -> eslint. npm audit fix --force resolves it
but bumps eslint 10.8.0 — a semver-major jump — so it needs real verification, not a blind force-fix.
Why this is its own issue
ESLint has a history of breaking flat-config changes across majors. A blind --force risks silently breaking
lint enforcement (either failing loudly in CI, or worse, silently linting less than before) across both the
root workspace and apps/loopover-ui.
Task
Not urgent/blocking.
Context
Split out of #8588 (task 2 of 4) — the remaining
npm auditfindings after #8588's postcss+tar fix are all onetransitive chain:
brace-expansion(high, DoS via unbounded expansion length, GHSA-mh99-v99m-4gvg)pulled in via
minimatch->@eslint/config-array/@eslint/eslintrc->eslint.npm audit fix --forceresolves itbut bumps
eslint10.8.0— a semver-major jump — so it needs real verification, not a blind force-fix.Why this is its own issue
ESLint has a history of breaking flat-config changes across majors. A blind
--forcerisks silently breakinglint enforcement (either failing loudly in CI, or worse, silently linting less than before) across both the
root workspace and
apps/loopover-ui.Task
npm audit fix --force(or a manualeslintbump + matching@typescript-eslint/*/plugin bumps) toeslint@10.8.0.eslint.config.*.ui:lint) and confirm it still catches what it caught before (spot-check afew known lint rules still fire, not just that the command exits 0 — a broken config can silently no-op).
npm audit --audit-level=moderateto confirm the brace-expansion/minimatch/eslint chain is gone.npm run test:cigreen.Not urgent/blocking.