From 789c3df9f0ed123b98ef4a199bcdb08a54b13c16 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 12 Jul 2026 22:03:52 +0000 Subject: [PATCH] ci: use node16 resolution for the latest-TypeScript typings gate TypeScript 7 removed the legacy 'node' (node10) moduleResolution (TS5108), which broke the package-boundary job's latest-TS step. node16 resolution is what modern Node consumers use anyway and additionally exercises the exports map's import/require type conditions. The pinned TS 3.4.5 floor gate keeps the legacy flags it needs. Reproduced locally against TS 7.0.2: old flags exit 1 (TS5108), node16 flags exit 0. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_013eq96Mbqa2dBCAN3YCyrDK --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7335aba..6b4064a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,9 @@ jobs: npm install --no-save typescript@3.4.5 ./node_modules/.bin/tsc --noEmit --strict --target es2017 --lib es2017 --moduleResolution node consumer.ts - name: Typings gate — latest TypeScript compiles the installed d.ts + # node16 resolution (not the removed-in-TS7 `node`/node10) — this also + # exercises the exports map's `import`/`require` type conditions. run: | cd /tmp/consumer npm install --no-save typescript@latest - ./node_modules/.bin/tsc --noEmit --strict --target es2017 --lib es2017 --moduleResolution node consumer.ts + ./node_modules/.bin/tsc --noEmit --strict --target es2017 --lib es2017 --module node16 --moduleResolution node16 consumer.ts