build(deps): bump dependabot dependencies - #1176
Conversation
Ships the pending dependabot bumps in a single PR, since the individual dependabot PRs cannot merge (the claude-review check fails on dependabot PRs because repository secrets are not exposed to that context). Direct: - react-router 7.13.0 -> 7.15.1 - react-router-dom 7.13.0 -> 7.15.1 (kept in lockstep with react-router to avoid a duplicate/mismatched react-router copy and split Router context) Transitive / dev (resolved to latest compatible, >= dependabot proposals): - @babel/core 7.28.6 -> 7.29.7 (security/bug fixes; dev only) - esbuild 0.25.12 -> 0.28.1 (security: dev-server path traversal, Deno integrity) - markdown-it 14.1.1 -> 14.3.0 (security/perf; CommonMark fixes) - linkify-it 5.0.0 -> 5.0.2 (security: fuzzy-link ReDoS) - ws 8.20.1 -> 8.21.1 (security: remote memory-exhaustion DoS) All 513 tests pass and tsc build succeeds. Vulnerability count 5 -> 1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hello jeanmarcmilletscality,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
Advisories published after the first commit on this branch left 6 open vulnerabilities. Clears all of them that have a fix within the existing ranges. Direct: - react-router 7.15.1 -> 7.18.1 - react-router-dom 7.15.1 -> 7.18.1 (kept in lockstep, as before) Clears 4 high advisories: open redirect via backslash in Link and useNavigate, RSCErrorHandler missing protocol validation (XSS), arbitrary constructor injection in deserializeErrors(), and unauthenticated DoS via inefficient route matching. All fixed in 7.18.0. core-ui uses only MemoryRouter/BrowserRouter/useLocation/ useNavigate, unchanged across 7.x. Not taking react-router 8.3.0 (dependabot #1174): it peers on react >=19.2.7 while core-ui still supports react ^18, and react-router-dom has no 8.x release, so bumping react-router alone would reintroduce the duplicate-Router-context problem this branch fixes. The one remaining react-router advisory (RSC mode CSRF bypass, fixed only in 8.3.0) does not apply - core-ui does not use RSC mode. Transitive: - postcss 8.5.15 -> 8.5.24 (path traversal in source-map auto-loading) - fast-uri 3.1.2 -> 3.1.4 (host confusion via backslash authority delimiter and failed IDN canonicalization) - js-yaml 4.1.1 -> 4.3.0, 3.14.2 -> 3.15.0 (quadratic-complexity DoS via YAML merge-key chains) - brace-expansion nested copies -> latest in each line (1.1.16, 2.1.3, 5.0.8), clearing the exponential-expansion DoS advisories brace-expansion still reports one advisory whose range is <=5.0.7 with no 1.x/2.x backport, so the 1.1.16 and 2.1.3 copies stay flagged. It is reachable only from dev tooling (eslint, glob, jest, storybook, copyfiles) and never ships in dist; clearing it needs eslint 8->10, glob and jest majors, which is out of scope here. All 513 tests pass and tsc build succeeds. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ConflictThere is a conflict between your branch Please resolve the conflict on the feature branch ( git fetch && \
git checkout origin/improvement/dependabot-dependency-bumps && \
git merge origin/development/1.0Resolve merge conflicts and commit git push origin HEAD:improvement/dependabot-dependency-bumps |
…t/dependabot-dependency-bumps
Conflict was in package-lock.json only; package.json auto-merged (base's
0.226.0 version bump and valalint removal alongside this branch's
react-router pins).
Resolved by taking development/1.0's lockfile wholesale and re-applying
this branch's bumps through npm, rather than hand-merging lockfile hunks:
git checkout origin/development/1.0 -- package-lock.json
npm install
npm update @babel/core esbuild markdown-it linkify-it ws postcss \
fast-uri js-yaml brace-expansion nanoid
This keeps the base's own lockfile changes intact (including the
@typescript-eslint/parser and rule-tester removals that came with
dropping valalint). Verified the result changes exactly the same 66
package versions relative to the new base as it did before the merge,
with no packages added or removed.
All 43 suites / 428 tests pass, tsc build exits 0, lint clean. The test
count differs from the pre-merge 513 because development/1.0 deleted the
three valalint rule-tester suites and added three component suites; the
test files at this commit are identical to the base's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
damiengillesscality
left a comment
There was a problem hiding this comment.
Please handle the bump in the other applications and share with the team the info
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
|
/approve |
Build failedThe build for commit did not succeed in branch improvement/dependabot-dependency-bumps The following options are set: approve |
|
/bypass_build_status |
Not authorizedI'm afraid I cannot do that, @JeanMarcMilletScality:
You don't have enough credentials to use Please edit or delete the corresponding comment so I can move on. The following options are set: approve |
TL;DR
Consolidates the pending dependabot dependency bumps into one PR, plus the advisories that were published while those PRs sat open. Takes
npm auditfrom 9 root advisories ondevelopment/1.0down to 2, both of which have no in-range fix (details at the bottom).Context
Dependabot opened these as individual PRs, but none can merge: the
claude-reviewcheck fails on every dependabot PR because repository secrets aren't exposed to the dependabot Actions context. This PR ships the same bumps from a normal branch instead. (The CI gate itself is tracked for a separate fix.)Changes
react-routerreact-router-domreact-router— see Approach@babel/coreesbuildmarkdown-itlinkify-itwspostcssfast-urijs-yamlbrace-expansionApproach
Why
react-router-dommoves withreact-router. Dependabot's PR bumped onlyreact-router. Butreact-router-dom@7.13.0hard-pinsreact-router@7.13.0, so bumping react-router alone leaves a second, nested copy of react-router in the tree — two separate Router contexts, which breaksuseNavigate/useLocationfor consumers whose provider comes from the other copy.Before — react-router bumped alone (dependabot #1131):
After — pair bumped together (this PR):
Verified the built lockfile contains exactly one
node_modules/react-routerentry.Why 7.18.1 and not 8.3.0. Dependabot #1174 proposes
react-router@8.3.0. That isn't viable here:react-router@8.3.0declares peersreact >=19.2.7, but core-ui'speerDependenciesstill allowreact ^18.0.0. Taking it would silently drop React 18 support for every consumer.react-router-domhas no 8.x release at all — it stops at 7.18.1. So bumpingreact-routerto 8 recreates exactly the duplicate-Router-context problem described above.7.18.1is a minor bump that clears 4 of the 5 open react-router advisories (open redirect via backslash in<Link>/useNavigate, RSCErrorHandler missing protocol validation, arbitrary constructor injection indeserializeErrors(), unauthenticated DoS via inefficient route matching — all fixed in 7.18.0).Review focus
package.json›react-router+react-router-dom— both pinned to exactly7.18.1; confirm they stay aligned (this is the shipped runtime dep). core-ui imports onlyMemoryRouter,BrowserRouter,useLocation,useNavigate— all unchanged across 7.x.package-lock.json— changes are scoped to the deps above plus their@babel/*/@esbuild/*sub-packages; no unrelated churn.How to test
Known remaining advisories (both unfixable in range)
npm auditstill reports two root advisories. Neither has a fix that fits this PR — noting them so they aren't mistaken for oversights. (The rawnpm auditcount looks much larger because npm lists every dependent of a vulnerable package as its own line.)react-router— RSC mode CSRF bypass (>=7.12.0 <8.3.0). Fixed only in 8.3.0, which is React-19-only per above. Does not apply: core-ui does not use RSC mode.brace-expansion— unbounded-expansion OOM DoS (<=5.0.7). Every copy in the tree is already at the latest release of its line (1.1.16, 2.1.3, 5.0.8), but the advisory range is a flat<=5.0.7with no 1.x/2.x backport, so the 1.x and 2.x copies stay flagged. Reachable only from dev tooling (eslint,glob,jest,storybook,copyfiles) and never shipped indist. Clearing it needseslint8→10 plusglob/jestmajors — out of scope for a security sweep.References
Supersedes these dependabot PRs (can be closed once this merges):
Should be closed as not viable rather than superseded:
react-router-dom8.x)Replaces #1157, which was opened from a branch with an invalid
build/prefix.🤖 Generated with Claude Code