chore(deps-dev): Bump the npm-minor-patch group across 1 directory with 5 updates - #167
chore(deps-dev): Bump the npm-minor-patch group across 1 directory with 5 updates#167dependabot[bot] wants to merge 2 commits into
Conversation
…th 5 updates Bumps the npm-minor-patch group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.5.6` | `2.5.11` | | [publint](https://github.com/publint/publint/tree/HEAD/packages/publint) | `0.3.22` | `0.3.24` | | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.10` | `4.1.11` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.4.0` | | [tsx](https://github.com/privatenumber/tsx) | `4.23.1` | `4.23.13` | Updates `@biomejs/biome` from 2.5.6 to 2.5.11 - [Release notes](https://github.com/biomejs/biome/releases) - [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md) - [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.11/packages/@biomejs/biome) Updates `publint` from 0.3.22 to 0.3.24 - [Release notes](https://github.com/publint/publint/releases) - [Changelog](https://github.com/publint/publint/blob/master/packages/publint/CHANGELOG.md) - [Commits](https://github.com/publint/publint/commits/publint@0.3.24/packages/publint) Updates `vitest` from 4.1.10 to 4.1.11 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/vitest) Updates `@types/node` from 26.1.2 to 26.4.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `tsx` from 4.23.1 to 4.23.13 - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](privatenumber/tsx@v4.23.1...v4.23.13) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.5.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: publint dependency-version: 0.3.24 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: vitest dependency-version: 4.1.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: "@types/node" dependency-version: 26.4.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: tsx dependency-version: 4.23.13 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch ... Signed-off-by: dependabot[bot] <support@github.com>
`osv dependency scan` is the only failing check on this PR. It fails on `fflate@0.7.4` (GHSA-px8p-9vwx-vf98, CVSS 7.5 — counted as High by scripts/osv-check.sh). The vulnerability is already on `main`, so this is not something this bump introduced: every PR in the queue reds on re-run. `@shuding/opentype.js@1.4.0-beta.0` is the only consumer (satori → workers-og → web-og's PNG renderer) and declares `fflate: ^0.7.3`. `0.7.5` is the highest 0.7.x published, so the lockfile was simply holding a stale 2022 resolution. Parent-scoped rather than a bare `fflate` key: pnpm overrides are forcible replacements, so a workspace-global cap would silently force a future `^0.8.3` requirer down to 0.7.5. The `parent>child` form confines it to the one real consumer — same shape as the `jsdom>undici` override above it. Upper bound at <0.8.0 because the advisory has five vulnerable windows and 0.8.0–0.8.2 are vulnerable too (fixed at 0.8.3); a bare `>=0.7.5` would admit them. It also keeps resolution inside opentype.js's own ^0.7.3 range. Verified: osv red → green; mutant (pin back to 0.7.4) returns it to red; restored tree byte-identical to the vetted one (sha256); opentype.js links fflate 0.7.5 on disk; `pnpm install --frozen-lockfile` clean; `pnpm validate` and web-og's workerd render suite (8/8) pass.
Added a commit to green the
|
| check | result |
|---|---|
osv-check.sh before |
✗ 0 Critical + 1 High (fflate 0.7.4) |
osv-check.sh after |
✓ no High/Critical |
mutant — override forced back to 0.7.4 |
returns to ✗ ... 1 High |
| restore | package.json + pnpm-lock.yaml byte-identical (sha256) to the vetted tree |
| on-disk link | @shuding/opentype.js → fflate@0.7.5 |
pnpm install --frozen-lockfile |
clean (no CI drift) |
pnpm validate |
pass |
web-og workerd render suite |
8/8 pass (real PNGs, the path that actually loads fflate) |
The lockfile delta is 9 lines and touches nothing but fflate and the overrides: block — the five Dependabot bumps in fe4b816 are untouched.
The independent build review came back clean, no findings. It independently confirmed the gate goes green for the stated reason, that the override scope covers every fflate occurrence, and that every added lockfile resolution is a registry entry with a sha512 integrity hash.
Two things worth your attention
- This is a hand-authored commit on a Dependabot-owned branch. Dependabot recreates these — it closed chore(deps-dev): Bump the npm-minor-patch group across 1 directory with 4 updates #153 and opened this PR with the same group earlier today. If it recreates the branch before you merge,
ed5a84ais dropped and the gate reds again. Nothing breaks silently; the PR just goes red and gets re-applied. hono 4.12.32was left alone on purpose. Its four advisories are Medium/Low, so they do not gate, andhonois the runtime framework on both Workers — bumping it is a runtime-behaviour change that deserves its own PR and review surface, not a passenger on a dev-dependency bump. Tracked on Dependabot's weekly npm run wedges whenever a patch is 3-7 days old: cooldown default-days (7) exceeds semver-patch-days (3) #161.
After this merges
The other three open PRs (#144, #158, #163) each need a rebase onto main (or a re-run) to pick up the override; until then their next osv run reds on the same fflate finding.
Preview deployed
Federated GitLab lookups (freedesktop / GNOME) degrade to the "use the CLI" card — the Anubis relay is off in preview. GitHub lookups, permalinks, and OG render work once |
Preview exercised — the fflate override renders fine in deployed workerd
Three distinct byte sizes means text is actually being drawn, so the Sizes are below prod's (28899B / 35266B) because the preview og Worker renders Nothing else outstanding: 10/10 checks pass, MERGEABLE/CLEAN. |
Review of record for
|
| # | severity | finding | disposition |
|---|---|---|---|
| 1 | P1 | The mutant step doesn't go red — removing the override leaves fflate at 0.7.5 | withdrawn by the reviewer in the confirming round |
| 2 | P1 | pnpm install --lockfile-only doesn't link, so verification runs against the old fflate |
withdrawn by the reviewer in the confirming round |
| 3 | P1 | Step 5 mutates to the vulnerable pin but never re-runs the gate on the restored tree | withdrawn by the reviewer in the confirming round |
| 4 | P2 | "Mitigated structurally" overclaims — the cap does bind opentype.js itself |
declined, reason below |
Why #4 was declined. The finding is correct and the plan's wording overclaimed. It was
declined because every available fix is worse. pnpm overrides are forcible replacements,
not intersections, so widening to >=0.7.5 <0.8.0 || >=0.8.3 makes the resolver pick the
newest match (0.8.x), pushing opentype.js outside the ^0.7.3 it declares — the exact
cross-major jump the parent-scoped form exists to avoid. Dropping the cap re-admits the
vulnerable 0.8.0–0.8.2. The residual hazard needs a future opentype.js (pinned at
1.4.0-beta.0 under satori) to start requiring ^0.8.3. The override is short-lived by
design: 0.7.5 is the highest 0.7.x, so any routine lockfile refresh reaches it
naturally and the line can be deleted. That deletion is the recorded exit.
Two P3s were graded and dropped. One is worth repeating here because it is about the rest
of the queue, not this PR:
After this merges, #158 and #144 each need a branch update before their
osvcheck
clears. They branch from a pre-fixmainand carryfflate@0.7.4in their own
lockfiles; the osv job scans the PR branch'spnpm-lock.yamlwith no install, and GitHub
does not re-run a PR's checks when the base branch moves. #163 is github-actions-only and
touches no lockfile, so it is unaffected.
Bumps the npm-minor-patch group with 5 updates in the / directory:
2.5.62.5.110.3.220.3.244.1.104.1.1126.1.226.4.04.23.14.23.13Updates
@biomejs/biomefrom 2.5.6 to 2.5.11Release notes
Sourced from @biomejs/biome's releases.
... (truncated)
Changelog
Sourced from @biomejs/biome's changelog.
... (truncated)
Commits
4d9c1d5ci: release (#11457)18883b7fix(html): ignore punctuation in Vue attribute casing (#11462)5c353e6feat: adds the noAstroSetHtmlDirective rule for .astro (#11322)3e5367ffeat(lint): rule noUndeclaredCustomProperties (#11191)05797b1ci: release (#11450)5f1ed34chore: add CodSpeed and Cloudflare to sponsors (#11410)2081460ci: release (#11309)6559e6cfeat: adds theuseAstroClientOnlyDirectiveValuerule for .astro files (#11299)a8798eafeat: useNamedLayer (#11377)85aac73feat(lint): addnoUnsafeTypeAssertionrule (#11221)Updates
publintfrom 0.3.22 to 0.3.24Release notes
Sourced from publint's releases.
Changelog
Sourced from publint's changelog.
Commits
4dc880aRelease packages (#254)7c4d25aCheck repository.url when repository.type is omitted (#257)6ef01d5Update dependenciesd228c3cRelease packages (#247)9ff88acDetect nested test files inUSE_FILEScheck (#248)ad737a3Report which files triggeredUSE_FILES(#245)Updates
vitestfrom 4.1.10 to 4.1.11Release notes
Sourced from vitest's releases.
Commits
9bd8d46chore: release v4.1.11 (#10995)9851dbcfix(browser): trigger playwright/chromium gc on lower disk availability [back...Updates
@types/nodefrom 26.1.2 to 26.4.0Commits
Updates
tsxfrom 4.23.1 to 4.23.13Release notes
Sourced from tsx's releases.
... (truncated)
Commits
28e1f12fix(cache): bound shared transform cache memory (#835)ed9d330fix: shimimport.metawhen tokens are split by comments or newlines (#829)651f5betest: cover CommonJS TypeScript import.meta pathsbd3bc64test: cover CommonJS loader source fallback55cbecefix: preserve async ESM require fallback6c5ba85docs: document CommonJS default interopec1bcd5fix: support nyc coverage discovery (#710)b6e5b48docs: clarify CommonJS default imports2f55884fix: map Node test locationsde935d5docs: document Node source-map stack formattingDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions