chore(8.0): ES2023 target + drop DOM lib + downlevelIteration (config truth-up)

Make the compiler config honestly describe a Node 22 / Bun 1.1+ / Deno library:
target ES2020 -> ES2023, lib [DOM, ESNext, DOM.Asynciterable] -> [ES2023], drop
the now-inert downlevelIteration. 8.0 dropped the browser path, so the DOM lib
was misleading (it implied web APIs the package no longer supports). No
ES2021-2023 syntax is used anywhere, so .js emit is effectively unchanged — this
is hygiene, not a perf/behavior change.

The one real consequence of dropping DOM: the Cloudflare-Workers edge probe read
globalThis.caches from the DOM lib — declared `caches?: unknown` locally on the
runtime-globals intersection alongside Deno/Bun/HTMLRewriter.

.d.ts is shape-stable (TS-5.x-parseable preserved — no cor coordination). Gates:
typecheck 0, cli-tsconfig 0, typecheck-tsconfig (the .d.ts contract surface) 0,
build 0, test:unit 1753/1753, test:bun 8/8.
This commit is contained in:
David Snelling 2026-07-01 10:58:04 -07:00
parent b5bc73fb17
commit cf74c25d90
2 changed files with 6 additions and 5 deletions

View file

@ -83,6 +83,10 @@ export function detectEnvironment(): RuntimeEnvironment {
Deno?: unknown
Bun?: unknown
HTMLRewriter?: unknown
// `caches` (Cloudflare Workers / ServiceWorker global) is no longer in `lib`
// now that DOM is dropped (8.0 is Node/Bun/Deno-only) — declare it locally so
// the edge-runtime probe below still type-checks.
caches?: unknown
}
// Deno