Skip to content

chore(deps): bump TypeScript 5.8 → 6.0 (major)#184

Merged
williamzujkowski merged 2 commits into
mainfrom
chore/deps-typescript-6
May 13, 2026
Merged

chore(deps): bump TypeScript 5.8 → 6.0 (major)#184
williamzujkowski merged 2 commits into
mainfrom
chore/deps-typescript-6

Conversation

@williamzujkowski
Copy link
Copy Markdown
Collaborator

Summary

Closes #176. Earlier attempt (documented on the issue) hit two blockers; both now resolved:

Blocker 1 (resolved): svelte2tsx peer-dep

svelte2tsx@0.7.55 widened its TS peer dep to include ^6.0.0 (was ^4.9.4 || ^5.0.0). pnpm install now produces only a single peer-dep WARN from @astrojs/svelte@8.1.0 itself (still pins typescript: ^5.3.3) — that's a warning, not an error, and CI tooling (astro check, vitest, eslint) all pass against TS 6.

Blocker 2 (resolved): types resolution

TS 6 stopped auto-including @types/node for ambient globals (process, Buffer, etc.) under "moduleResolution": "NodeNext". Fix: add "types": ["node"] to root tsconfig.json. apps/web extends astro/tsconfigs/strict (NOT root), so its DOM-types resolution is unaffected — verified: all per-package type checks pass; the same 27 informational hints from prior TS 5.8 runs are preserved.

Verification (Node 22 + pnpm 11 from #175)

  • pnpm install — clean (single expected peer warning)
  • pnpm build — all 8 packages
  • pnpm test — 267 passing
  • pnpm typecheck — 0 errors, 27 hints (same as TS 5.8 baseline)
  • pnpm lint — clean
  • CI passes on this PR

🤖 Generated with Claude Code

Closes #176. Earlier attempt (documented on the issue) hit two
blockers; both now resolved:

1. svelte2tsx@0.7.55 widened its TS peer dep to include ^6.0.0
   (was ^4.9.4 || ^5.0.0). pnpm install now produces only a single
   peer-dep WARN from @astrojs/svelte@8.1.0 itself (still pins
   typescript: ^5.3.3) — that's a warning, not an error, and CI
   tooling (astro check, vitest, eslint) all pass against TS 6.

2. TS 6 stopped auto-including @types/node for ambient globals
   (`process`, `Buffer`, etc.) under "moduleResolution": "NodeNext".
   Added "types": ["node"] to root tsconfig.json. apps/web extends
   astro/tsconfigs/strict (NOT root) so its DOM-types resolution is
   unaffected. Verified: all per-package type checks pass; the same
   27 informational hints from prior TS 5.8 runs are preserved.

Verified locally on Node 22 + pnpm 11 (#175): pnpm install, build,
test (267 passing), typecheck, lint all green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@williamzujkowski williamzujkowski requested a review from a team as a code owner May 13, 2026 01:37
CI on PR #184 surfaced TS2688: \`Cannot find type definition file
for 'node'\` when building @civic-source/types. The package is pure
Zod schemas and has no @types/node devDep — but the root tsconfig
sets \`types: ["node"]\` (added in the same PR to unblock TS 6 in
the Node-side packages).

On CI's frozen-lockfile install, @types/node isn't hoisted into
packages/types/node_modules because nothing there imports it.

Fix: override \`types: []\` in packages/types' tsconfig.{json,build.json}.
The package legitimately needs zero type packages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@williamzujkowski williamzujkowski merged commit 8b8d420 into main May 13, 2026
3 checks passed
@williamzujkowski williamzujkowski deleted the chore/deps-typescript-6 branch May 13, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deps: bump TypeScript 5.8 → 6.0 (major)

1 participant