[COVAL-5616] Bump dependencies to clear 15 Dependabot alerts - #14
Conversation
Bump diff to ^8.0.3 (direct runtime dependency) and add npm overrides pinning patched versions of ten transitive-only advisories: @babel/core, brace-expansion (1.x/2.x/5.x), esbuild, flatted, js-yaml (3.x/4.x) and picomatch (2.x/4.x). Overrides are scoped per major line so js-yaml stays on 3.x for @istanbuljs/load-nyc-config, which needs the v3 API. Drop @types/diff: diff v8 ships its own type definitions and the DefinitelyTyped package is now a stub. COVAL-5616
borgesius
left a comment
There was a problem hiding this comment.
Dependency remediation looks good; Node 20/22 checks are green and the changes are scoped to package metadata and lockfile updates.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe package manifest upgrades Merge Risk: 🔵 Low · up to The PR upgrades the runtime dependency and pins current transitive dependencies to patched versions, with installation, tests, builds, and audits passing. It is mergeable with owner awareness because future dependency changes could introduce an uncovered vulnerable range unless the override policy is maintained or automated. Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
Full details: Title checkExplanation The title accurately describes the dependency updates, but it does not follow the required format.
Warning Some tools did not complete. Review the errors below. 🔧 ESLint
ESLint install failed: one or more packages not found in the registry. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Clears all 15 open Dependabot alerts on this repo. Oneleet SLA breach was due 2026-09-03 (the eight HIGH alerts had 3.2 days left).
Only one advisory touches a direct dependency (
diff, the sole runtime package affected). The other ten are transitive-only and are pinned with npmoverrides.Direct dependency bump
diff@types/diff(^6.0.0) was removed:diffv8 ships its own type definitions and the DefinitelyTyped package is now a stub ("diff provides its own type definitions, so you do not need this installed"). The only API used iscreateTwoFilesPatchinsrc/files.ts, whose signature is unchanged in v8;npm run typecheckpasses against the bundled types.Transitive-only advisories (npm
overrides)brace-expansion(1.x)brace-expansion(2.x)brace-expansion(5.x)js-yaml(3.x)!!omapquadratic CPU), #22 (moderate — merge-key aliases)js-yaml(4.x)flattedparse())picomatch(2.x)picomatch(4.x)esbuild@babel/coresourceMappingURLcomment)All ten are
devscope;diffis the only advisory reaching the published package.Why the overrides are scoped per major line
brace-expansion,js-yamlandpicomatcheach have two or three major lines resolved simultaneously in this tree, and the advisories have separate patched versions per line. The overrides use thename@rangekey form so each line is bumped to its own patched version rather than being collapsed onto one major.This matters most for
js-yaml:@istanbuljs/load-nyc-config(Jest coverage) depends onjs-yaml@^3.13.1and uses the v3 API, whichsafeLoadremoval in v4 would break. Thejs-yaml@^3.0.0→^3.15.1override keeps it on the 3.x line whileeslint/@eslint/eslintrcindependently move to 4.3.2. Verified in the regenerated lockfile: 3.x resolves to 3.15.2, 4.x to 4.3.2.Note on
esbuildtsup@8.5.1declaresesbuild@^0.27.0, so the override deliberately moves it past its declared range (tsxalready wants~0.28.0, so this also collapses two esbuild copies into one).npm run buildand the CI smoke test were run explicitly to confirm tsup works against esbuild 0.28.2 — both pass.Nothing left unfixed
All 15 alerts have an upstream patched version available and all 15 are addressed. No advisory was force-suppressed, ignored, or dismissed, and no
npm auditexception was added.Verification
Run against a clean
node_moduleson Node v22.23.1 / npm 10.9.8:npm install(lockfile regenerated)found 0 vulnerabilitiesnpm cifound 0 vulnerabilitiesnpm run typechecktsc --noEmit, exit 0)npm run lintnpm run format:checknpm testnpm run buildtsup v8.5.1, ESM + DTS build successimport('./dist/index.js'))npm audit --omit=devfound 0 vulnerabilitiesnpm audit(including dev)found 0 vulnerabilitiesResolved versions were also read back out of the regenerated
package-lock.jsonto confirm every entry sits at or above its patched threshold, rather than relying on the audit summary alone.