chore: resolve npm audit vulnerabilities - #47
Conversation
- picomatch 2.3.1 -> 2.3.2 (high: ReDoS + glob method injection) - uuid ^10 -> ^11.1.1 (moderate: buffer bounds check); drop @types/uuid, v11 ships its own types - esbuild ^0.24 -> ^0.28.1 (moderate: dev-server request exposure), with an npm override forcing tsup's nested copy to 0.28.1 until tsup bumps - bump package version to 0.11.1
There was a problem hiding this comment.
Reviewed by Salty Hambot 🤖🧂 — rubric mode
Verdict:
| Dimension | Verdict | Notes |
|---|---|---|
| correctness | ✅ pass | uuid v4() API unchanged v10→v11; @types/uuid removal safe since v11 ships its own types; no logic changes. |
| security | ✅ pass | Addresses audit findings (picomatch, esbuild, uuid); no new attack surface introduced. |
| privacy | ✅ pass | Dependency bump only; no data handling changes. |
| reliability | ✅ pass | No runtime behavior changes; overrides is a standard npm mechanism. |
| scalability | ✅ pass | No algorithmic or resource usage changes. |
| observability | ✅ pass | No logging or instrumentation changes. |
| clarity/maintainability | npm-only overrides workaround lacks a TODO/tracking comment and won't apply under Yarn/pnpm. | |
| test quality | ✅ pass | Dependency-only change; existing suite passing against updated deps is sufficient. |
Tidy security-bump PR — the only nag is that the npm-only overrides pin will silently no-op under Yarn/pnpm, so leave a breadcrumb before Future You forgets why it's there.
2 finding(s) posted.
💰 Review cost: $0.0920 · 13.7k in / 256 out tokens · ⏱️ 34.7s
💬 To request a re-review, comment @salty-hambot review
| "zod": "^3.23.8" | ||
| }, | ||
| "overrides": { | ||
| "tsup": { |
There was a problem hiding this comment.
note: The overrides entry here is npm-only. If any contributors (or CI) use Yarn or pnpm, this won't apply and tsup will happily pull in the vulnerable esbuild again. Given the PR description acknowledges this is a temporary measure, worth a comment in the file (or just a note in the README/CHANGELOG) so whoever removes it later knows why it exists. Since the advisory only bites serve() mode, the blast radius is low — but "I'll remember to remove this later" is the most optimistic thing engineers ever say.
| "pino-pretty": "^11.2.2", | ||
| "uuid": "^10.0.0", | ||
| "uuid": "^11.1.1", | ||
| "ws": "^8.18.0", |
There was a problem hiding this comment.
praise: Clean dependency hygiene — the @types/uuid removal is the right call since uuid v11 ships its own types, and keeping both is just asking for a type-mismatch headache.
Summary
Resolves all 3 remaining
npm auditfindings (0 vulnerabilities after this change):^10→^11.1.1; dropped@types/uuid(v11 ships its own types). Only usage isuuid.v4(), API unchanged^0.28.1; added an npmoverridesentry forcing tsup's nested copy to 0.28.1 (tsup still pins^0.27.0)Also bumps the package version to 0.11.1.
Note: the esbuild advisories only affect its dev-server (
serve()) mode, which this repo never uses — exposure was effectively zero, but the picomatch high was a free fix. Remove theoverridesentry once tsup ships with esbuild ≥0.28.1.Related Issues
N/A — routine dependency hygiene.
Requester Checklist
Complete these before marking Ready for Review
Visual Proof
Size Justification (if L/XL)
Diff is almost entirely
package-lock.jsonchurn;package.jsonchanges are 5 lines.Reviewer Checklist
If these are not met, close the tab — this PR is not ready for review