Skip to content

chore(deps-dev): Bump typescript from 6.0.3 to 7.0.2 - #139

Merged
lukaso merged 1 commit into
mainfrom
dependabot/npm_and_yarn/typescript-7.0.2
Aug 21, 2026
Merged

chore(deps-dev): Bump typescript from 6.0.3 to 7.0.2#139
lukaso merged 1 commit into
mainfrom
dependabot/npm_and_yarn/typescript-7.0.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 7, 2026

Copy link
Copy Markdown
Contributor

Bumps typescript from 6.0.3 to 7.0.2.

Commits
Maintainer changes

This version was pushed to npm by microsoft1es, a new releaser for typescript since your current version.


Dependabot compatibility score

Dependabot 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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 7, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
released-web c4897d4 Aug 07 2026, 10:41 PM

@lukaso-bot

Copy link
Copy Markdown
Collaborator

liveapp adoption pass @ 85709a0: blocked: osv fails on 2 pre-existing High CVEs in main's pinned deps (undici 7.28.0, js-yaml 4.3.0) — NOT introduced by this typescript 6-to-7 bump. This bump's own changes are clean (typecheck/test/build all pass). Resolves once #137 — which carries the undici 7.29.0 / js-yaml 4.3.1 pin bump — reaches main and this PR rebases. Land #137 first. (Workers Builds: released-web fails identically on all open PRs — repo-level config issue, not this bump, not a required check.)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

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 INTERNAL_SECRET/GITHUB_TOKEN are set on the preview env.

@lukaso-bot

Copy link
Copy Markdown
Collaborator

liveapp follow-up @ c4897d4: unblocked — fix-forwarded the same 2 High CVEs onto this branch (override floors undici>=7.29.0, js-yaml@4^4.3.1), mirroring the fix on #137. These CVEs are pre-existing in main's pinned deps — not introduced by the typescript 6→7 bump.

Local gate green: osv (the gate that was red) + typecheck + build + test; the repo pre-push osv hook also passed on push.

Not gated on #137 anymore. Merge order: #137 first is still cleanest; #138/#139 now carry the same CVE fix so they're not blocked on it — but all three rewrite pnpm-lock.yaml, so expect a rebase between sequential merges. (Workers Builds: released-web still fails 0s on every PR — redundant dashboard git-integration, non-required, unrelated.)

@lukaso-bot

Copy link
Copy Markdown
Collaborator

liveapp adoption pass @ c4897d4: adopted — typescript 6.0.3→7.0.2 (dev-dep); typecheck+build+tests green. Fix-forwarded the 2 pre-existing High CVEs in main's pinned deps (undici→7.29.0, js-yaml→4.3.1); those pre-date this bump and were what failed the osv gate. GA gate green at this head (tests ×4 platforms, osv, deploy-config dry-run, preview deploy, a11y, secret/shell lints). Only remaining red = Workers Builds: released-web — a pre-existing, non-required Cloudflare dashboard config issue that fails 0s on every PR; not from this bump. Mergeable.

lukaso pushed a commit that referenced this pull request Aug 12, 2026
…h CVEs

The osv gate fails on this branch for CVEs inherited from main, not from
this PR's diff:

- undici 7.28.0 -> 7.29.0  (GHSA-4cwx-7wf7-3272, High 7.4, +4 more)
- js-yaml 4.3.0 -> 4.3.1   (GHSA-5p4m-2wfm-xmqj, High 7.5)
- nanoid  3.3.16 -> 3.3.18 (GHSA-2v37-7h3g-55p8, High 8.2)

undici and js-yaml match the floors PRs #137/#138/#139 already carry.
nanoid is a newer advisory that none of them cover, so this is currently
the only open PR that takes main to zero High.

Lockfile-only resolution changes; all transitive.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lukaso
lukaso force-pushed the dependabot/npm_and_yarn/typescript-7.0.2 branch from c4897d4 to 7dc6f6e Compare August 12, 2026 23:25
@lukaso-bot

Copy link
Copy Markdown
Collaborator

liveapp: re-pushed this branch to retire a dead check, no content change.

The only red here was Workers Builds: released-web — a check run from the Cloudflare
dashboard git-integration that was removed on 2026-08-10 (Proposal #140, closed "Done").
That run is dated 2026-08-07 and can never re-run, so the X was permanent and cosmetic:
it would have sat red until merge, on a PR that was otherwise fully green.

Fix: amended the head commit (--amend --no-edit) so a fresh check suite is computed.
The tree is byte-identical — verified before and after the amend — so nothing about
the dependency update changed. The new head gets no Workers Builds check at all, which is
the same clean 10-check suite #141's head has had since the integration was removed.

While here, re-verified the CVE position on this branch with osv-scanner against the
current advisory set: 0 Critical, 0 High. Note that origin/main today scans
3 High (undici / js-yaml / nanoid) — this branch already carries the undici→7.29.0 and
js-yaml→4.3.1 override floors from the 2026-08-07 fix-forward, and resolves nanoid at
3.3.17+, so it is clean where main is not. Merging any of the four open PRs is what clears
main's three Highs.

@lukaso-bot

Copy link
Copy Markdown
Collaborator

Pushed a fix: this PR's green osv check was stale

osv dependency scan last ran on this PR 2026-08-12 and passed. It would
not pass today. Merging as-is would have landed a High advisory on main
and re-red the dependency gate for every open PR (#145).

What changed underneath it: GHSA-2v37-7h3g-55p8 (CVSS 8.2, High) was
published against nanoid < 3.3.18 after this branch's check ran. The earlier
commit here (e89fe7e) pinned undici>=7.29.0 and js-yaml>=4.3.1 to clear the
two Highs that existed at that time — nanoid's did not exist yet, and this
lockfile resolved nanoid to 3.3.17, inside the affected range.

The fix (6357601) adds one override floor, matching #146:

   "js-yaml@4": "^4.3.1",
+  "nanoid@3": "^3.3.18",

Verified, not assumed — queried api.osv.dev directly per package:

package advisories High/Critical
nanoid@3.3.17 (before) 1 GHSA-2v37-7h3g-55p8
nanoid@3.3.18 (after) 0
undici@7.29.0 0
js-yaml@4.3.1 0

And the actual gate script, run locally on this branch via the pre-push hook:

✓ osv: no High/Critical vulnerabilities.

Gate green: 585 tests (core 230, cli 45, web 277 + 6 skipped, web-og 27 + 6).

One incidental lockfile line: tsup gains a (postcss@8.5.25) peer-resolution
tag. postcss@8.5.25 was already in the tree before this change (it is nanoid's
parent) — that line is resolution metadata, not a new dependency.

The remaining Mediums on hono 4.12.32 → 4.12.34 are not gated by policy
(scripts/osv-check.sh gates High/Critical only) and are Dependabot's to bump.

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@lukaso
lukaso force-pushed the dependabot/npm_and_yarn/typescript-7.0.2 branch from 6357601 to b9ac2ac Compare August 20, 2026 17:09
@lukaso-bot

Copy link
Copy Markdown
Collaborator

liveapp adoption pass @ 6357601: adopted — rebased onto origin/main (1a717ce) at new head b9ac2ac. The two osv-floor commits I had pushed onto this branch (7dc6f6e, 6357601) were dropped as redundant: #138 merged the same pnpm.overrides block to main, so this PR is back to what Dependabot intended — a single commit bumping typescript 6.0.3 → 7.0.2. The conflict in packages/web-og/package.json was resolved keeping main's @cloudflare/workers-types@^5.20260708.1 alongside typescript@^7.0.2. Verified locally on the rebased head: pnpm -r typecheck clean in all 4 packages (this is a TS major, so typecheck is the real test), pnpm test 585 passed, pre-push osv ✓ no High/Critical. Nothing left blocked.

@lukaso
lukaso merged commit c562e4a into main Aug 21, 2026
10 checks passed
@lukaso
lukaso deleted the dependabot/npm_and_yarn/typescript-7.0.2 branch August 21, 2026 23:54
lukaso pushed a commit that referenced this pull request Aug 21, 2026
… cache-control (#141)

## The bug

Every OG image in production ships a **merged** `cache-control` header.
Live right now:

```
$ GET https://og.released.blabberate.com/placeholder.png
cache-control: public, immutable, no-transform, max-age=31536000, public, max-age=60
```

`workers-og` builds its response headers as

```js
headers: { 'Content-Type': …, 'Cache-Control': 'public, immutable, no-transform, max-age=31536000', ...opts.headers }
```

Object spread is **case-sensitive**, so `renderImage`'s lowercase
`'cache-control'` never
replaced the library's capitalized `'Cache-Control'` default. Both keys
reached
`new Response`, where `Headers` merged them into one comma-joined value
— and caches honor
the **first** `max-age`.

## Why it matters

The damage is on the **short**-cached cards. A placeholder render — cold
lookup, upstream
rate-limit, service-binding miss, or the `notFound` path hit during the
`web`→`web-og`
deploy window — is deliberately `max-age=60` so the unfurl refreshes
once the real answer
exists. Instead it went out `immutable` for a year, so one transient
failure froze a wrong
social card in every downstream cache that honors it.

This is a concrete mechanism for the "sustained placeholder on a
stably-released MR"
behaviour previously observed on the federated PR OG route: once a
placeholder was cached,
nothing could dislodge it.

Front door stayed green throughout — status 200, valid PNG, correct
content-type. Only the
header was wrong.

## Fix

Set `cache-control` on the Response after construction. `Headers.set` is
case-insensitive,
so it replaces the library default whatever casing the library uses
(rather than relying on
matching its casing in the spread, which would re-break on a library
change).

## Why the tests didn't catch it

`test/routing.test.ts` mocked `ImageResponse` with a stub that passed
the caller's headers
straight through, so it never reproduced the library default. All 11
`cache-control`
assertions were **unfalsifiable** — they read back exactly what the
caller passed. They were
also substring matches (`toMatch(/max-age=60/)`), which pass on the
merged value even with a
faithful mock. Both were fixed:

- the mock now mirrors `workers-og`'s real header construction
(capitalized default +
  case-sensitive spread of the caller's headers);
- the 11 assertions are exact-match (`toBe`);
- `test/cards.render.test.ts` gets two assertions against the **real**
library under
  workerd — no mock fidelity required.

## Mutation proof

Reverting the one-line fix (passing `'cache-control'` back through
`ImageResponse`'s
`headers` option) while keeping the tests:

```
Failed Tests 10
 FAIL  test/routing.test.ts > returns a placeholder PNG with SHORT cache when the service binding misses
   Expected: "public, max-age=60"
   Received: "public, immutable, no-transform, max-age=31536000, public, max-age=60"
 FAIL  test/cards.render.test.ts > placeholder card: cache-control is EXACTLY the short cache
   Expected: "public, max-age=60"
   Received: "public, immutable, no-transform, max-age=31536000, public, max-age=60"
 …8 more
```

The `Received:` values are byte-identical to what production serves
today. Restored → 35/35 pass
(27 routing + 8 render).

## Second commit: `fix(deps)` — clearing the red `osv dependency scan`

This branch was based on `main`, which carries 3 High CVEs, so the osv
gate was red for a
reason unrelated to the OG fix. Rather than leave the PR unmergeable,
the floors are raised
here (root `pnpm.overrides`, lockfile-only resolution changes):

| package | main | this PR | advisory |
|---|---|---|---|
| `undici` | 7.28.0 | 7.29.0 | GHSA-4cwx-7wf7-3272 (High 7.4) + 4 more |
| `js-yaml` | 4.3.0 | 4.3.1 | GHSA-5p4m-2wfm-xmqj (High 7.5) |
| `nanoid` | 3.3.16 | 3.3.18 | GHSA-2v37-7h3g-55p8 (High 8.2) |

The `undici` and `js-yaml` floors are byte-identical to the ones
#137/#138/#139 already
carry. **`nanoid` is a newer advisory that none of those three cover** —
their osv checks
last ran 2026-08-07 and passed, which is now stale. So merging #137,
#138 or #139 alone
leaves main at 1 High; **this is currently the only open PR that takes
main to zero High.**

Verified locally on this exact tree — the gate goes red → green:

```
before:  Total 4 packages affected by 11 known vulnerabilities (0 Critical, 3 High, …)
         ✗ osv: 0 Critical + 3 High vulnerability(ies) — must be resolved before merge.
after:   Total 1 package affected by 4 known vulnerabilities (0 Critical, 0 High, 3 Medium, 1 Low)
         ✓ osv: no High/Critical vulnerabilities.
```

`pnpm lint`, `pnpm -r typecheck`, `pnpm -r test` (357 tests) all green
on the merged branch.

**Deliberately not fixed here:** the 4 remaining `hono` mediums (4.12.32
→ 4.12.34,
GHSA-54fx / -79qm / -8j4g / -f23p). `hono` is the production runtime
framework and a direct
dependency; the osv gate does not block on Medium, and Dependabot's
weekly `npm-minor-patch`
group already has it in range (`^4.12.32`). Left to that PR so this one
stays reviewable.

---------

Co-authored-by: liveapp-bot <liveapp-bot@liveapp.local>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants