chore: combine 3 dependency updates - #42
Conversation
Merges the three open Dependabot PRs into one verified update: - @types/node ^25.9.1 -> ^26.0.1 (major, #36) - actions/setup-node v6 -> v7 (#40) - Lockfile-only refresh of @commitlint/cli 21.2.1, @commitlint/config-conventional 21.2.0, @vitest/coverage-v8 3.2.7, eslint 10.8.0, lefthook 2.1.10, prettier 3.9.6, typescript-eslint 8.65.0, vitest 3.2.7 (#41) typescript stays pinned at 6.0.3: tsup's rollup-plugin-dts and typescript-eslint both hard-block TypeScript 7 today. Reformatted tests/selector.test.ts to match prettier 3.9.6's updated union-type line-wrapping. Closes #36, #40, #41 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #42 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 61 61
Lines 1801 1801
Branches 268 268
=========================================
Hits 1801 1801 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Re-resolved pnpm-lock.yaml against the existing package.json specifiers (pnpm update --depth Infinity, then package.json reverted, then pnpm install --lockfile-only) so already-patched transitive versions that satisfy parent packages' semver ranges get picked up. pnpm normally preserves existing lockfile resolutions on install, so these patched versions were available but never selected. No manifest changes, no pnpm.overrides added, no scanner suppressions. pnpm audit --audit-level=high: before: 13 vulnerabilities (8 high, 2 moderate, 3 low) after: 2 vulnerabilities (1 high, 1 low) Cleared: - 7x undici advisories (release-it@20.2.0 -> undici 8.3.0 -> 8.9.0, now >=8.5.0): GHSA-vmh5-mc38-953g, GHSA-38rv-x7px-6hhq, GHSA-vxpw-j846-p89q, GHSA-p88m-4jfj-68fv, GHSA-pr7r-676h-xcf6, GHSA-35p6-xmwp-9g52, GHSA-g8m3-5g58-fq7m - brace-expansion GHSA-3jxr-9vmj-r5cp (both eslint and vitest coverage paths, resolved to 2.1.4 / 5.0.9) - postcss GHSA-r28c-9q8g-f849 (vitest -> vite -> postcss 8.5.15 -> 8.5.25) Remain (semver ceilings a lockfile refresh cannot cross; verified via node_modules package.json dependency ranges): - brace-expansion GHSA-mh99-v99m-4gvg (high): needs >=5.0.8, but @vitest/coverage-v8 -> test-exclude -> glob@10.5.0 pins minimatch@^9.0.4, which pins brace-expansion@^2.0.2 (max 2.x). - esbuild GHSA-g7r4-m6w7-qqqr (low): needs >=0.28.1, but tsup@8.5.1 pins esbuild@^0.27.0 directly and via bundle-require. typescript confirmed to stay at 6.0.3. Verified: pnpm install --frozen-lockfile succeeds, build/lint pass, and all 369 tests (46 files) still pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Transitive dependency refresh (lockfile-only)Unparked this PR by re-resolving pnpm update --depth Infinity # refreshes transitives, also rewrites package.json specifiers
git checkout -- package.json # revert manifest rewrites — lockfile-only
pnpm install --lockfile-only # re-resolve lockfile against original specifiersMost transitive advisories were already patched upstream and satisfied the parent packages' existing semver ranges — they just hadn't been picked up because No
|
| Total | High | Moderate | Low | |
|---|---|---|---|---|
| Before | 13 | 8 | 2 | 3 |
| After | 2 | 1 | 0 | 1 |
Cleared (11 advisories)
- 7x
undici(viarelease-it@20.2.0→undici@8.3.0→ now8.9.0, ≥8.5.0 required):GHSA-vmh5-mc38-953g,GHSA-38rv-x7px-6hhq,GHSA-vxpw-j846-p89q,GHSA-p88m-4jfj-68fv,GHSA-pr7r-676h-xcf6,GHSA-35p6-xmwp-9g52,GHSA-g8m3-5g58-fq7m brace-expansionGHSA-3jxr-9vmj-r5cp— both instances (via@eslint/js→eslint→config-array→minimatch and via@vitest/coverage-v8→test-exclude), now resolving to2.1.4/5.0.9postcssGHSA-r28c-9q8g-f849(via vitest→vite), now8.5.25(≥8.5.18 required)
Remain (2 advisories — genuine semver ceilings, not fixable by lockfile refresh)
brace-expansionGHSA-mh99-v99m-4gvg(high) — fix requires ≥5.0.8. Path:@vitest/coverage-v8→test-exclude→glob@10.5.0→minimatch@^9.0.4→brace-expansion@^2.0.2.glob@10.5.0's own manifest capsminimatchat^9.0.4, andminimatch@9.0.9capsbrace-expansionat^2.0.2— the fix landed in the5.xmajor line, unreachable withoutglob/minimatchthemselves bumping majors.esbuildGHSA-g7r4-m6w7-qqqr(low) — fix requires ≥0.28.1. Path:tsup@8.5.1→esbuild@^0.27.0(direct, and also viabundle-require).tsup@8.5.1's manifest capsesbuildat^0.27.0, so0.28.1is unreachable without atsupbump.
Both would need a direct-dependency bump (vitest's coverage chain / tsup) to clear — out of scope for this lockfile-only refresh.
Also checked per the parking note, not resolvable here
release-itstays at20.2.0as required (not bumped to 21.x). All 7 undici advisories tied to it are already clear via the transitive resolution above, so no major bump was needed for those.- Looked for the
taradvisories viarelease-it-pnpm→changelogithub→changelogen→c12→giget→tarmentioned when this was parked: in the current tree,release-it@20.2.0's only relevant chain isrelease-it→c12@3.3.3→giget@2.0.0, andgiget@2.0.0does not depend ontarat all (notarpackage appears anywhere inpnpm-lock.yamlornode_modules). Norelease-it-pnpm,changelogithub, orchangelogenpackages are present either.pnpm auditshows no tar-related findings before or after. Flagging the discrepancy in case that context was from a different snapshot — happy to double check if there's a reason to expecttarin the tree.
Verification
typescriptconfirmed to stay at 6.0.3 (pnpm ls typescript)pnpm install --frozen-lockfile— succeedspnpm run build— succeeds (ESM/CJS/DTS all build cleanly)pnpm run lint— clean (tsc + eslint)pnpm test— 369/369 tests passing (46 files), same count as before
Commit: 49e33ba — lockfile-only change (package.json untouched, verified via diff and checksum).
Not merging — leaving this for review/merge as usual.
Combines every open Dependabot PR into one verified update.
@types/node@commitlint/cli@commitlint/config-conventional@vitest/coverage-v8,vitesteslintlefthookprettiertypescript-eslintactions/setup-nodetypescriptunchanged (stays 6.0.3) — repo builds withtsup, and bothtsup@8.5.1(viarollup-plugin-dts) andtypescript-eslint@8.65.0hard-blockTypeScript 7 today. Dependabot did not propose a TypeScript bump here either.
tests/selector.test.tswas reformatted to matchprettier@3.9.6's updatedunion-type line-wrapping (real formatting regression from the bump, fixed by
running Prettier, not suppressed).
Verified locally:
build,lint(tsc x2 + eslint),format:check, andtest:coverage(369 tests, 46 files) all pass on a cleanpnpm install --frozen-lockfile.Security
pnpm audit --audit-level=high: 13 vulnerabilities (3 low, 2 moderate, 8 high),down from 17 (3 low, 3 moderate, 11 high) on
main. Thejs-yamlandfast-uriadvisories cleared via the
eslintbump. Thebrace-expansionadvisories(
GHSA-3jxr-9vmj-r5cp,GHSA-mh99-v99m-4gvg) that makemain's OSV-Scannercheck red remain —
eslint@10.8.0's ownminimatchdependency stillresolves
brace-expansion@5.0.6/2.1.1, below the patched5.0.7/5.0.8.No overrides or transitive pins were added per policy, so OSV-Scanner is
expected to stay red on this PR.
Closes #36, #40, #41
🤖 Generated Claude Code