Skip to content

feat: bump typescript 5.9.3 → 6.0.3#25

Merged
theagenticguy merged 1 commit into
mainfrom
feat/typescript-6
Apr 23, 2026
Merged

feat: bump typescript 5.9.3 → 6.0.3#25
theagenticguy merged 1 commit into
mainfrom
feat/typescript-6

Conversation

@theagenticguy
Copy link
Copy Markdown
Owner

Summary

Closes #20.

  • typescript6.0.3 across all 11 workspace package.jsons
  • tsconfig.base.json: add "types": ["node"]

The one mandatory fix

TypeScript 6.0 flipped the default of compilerOptions.types from "every package under node_modules/@types" to []. Without an explicit entry, @types/node is no longer auto-loaded and node:* module specifiers fail to resolve — surfacing as the misleading error:

error TS2591: Cannot find name 'node:assert/strict'.

Adding "types": ["node"] once in tsconfig.base.json flows through every workspace via extends. If any package later needs extras (e.g. vitest/globals), it overrides types locally — types doesn't merge across extends.

Peer-compat sweep

The issue flagged tree-sitter grammars, @apidevtools/swagger-parser, @modelcontextprotocol/sdk, zod, piscina, etc. as possible peer-range risks. Checked with npm view <pkg> peerDependencies.typescript:

  • tree-sitter, tree-sitter-typescript, tree-sitter-python, tree-sitter-c, tree-sitter-java, tree-sitter-rust, web-tree-sitternone declare typescript as a peer. They're runtime parsers, not language-service plugins.
  • Other flagged packages likewise declare no typescript peer.

No peer overrides needed.

Test plan

  • pnpm -r build clean
  • pnpm -r exec tsc --noEmit clean
  • pnpm -r test952 pass / 0 fail
  • biome ci . clean (52 warnings / 485 infos are pre-existing)
  • bash scripts/check-banned-strings.sh clean
  • license-checker-rseidelsohn clean
  • CI: all jobs green on the PR

Closes #20.

- typescript: 5.9.3 → 6.0.3 across all 11 workspace package.jsons
- tsconfig.base.json: add `"types": ["node"]`

The `types` addition is the one mandatory fix for TS 6. Starting in
6.0, the default `types` value flipped from "every package under
node_modules/@types" to `[]`. Without an explicit entry, `@types/node`
is no longer auto-loaded and `node:*` module specifiers fail to resolve
(surfacing as the misleading `TS2591: Cannot find name 'node:assert/strict'`).

Peer-compat sweep: the issue flagged tree-sitter grammars as a risk for
`typescript@^5` peer-range violations. None of them declare typescript
as a peer dependency — they're runtime parsers, not language-service
plugins. No peer overrides needed.

Verified locally:
- pnpm -r build: clean
- pnpm -r exec tsc --noEmit: clean
- pnpm -r test: 952 pass / 0 fail
- biome ci, banned-strings, license-checker: green
@theagenticguy theagenticguy merged commit c3bcb1a into main Apr 23, 2026
14 checks passed
@theagenticguy theagenticguy deleted the feat/typescript-6 branch April 23, 2026 03:07
@github-actions github-actions Bot mentioned this pull request Apr 23, 2026
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.9.3 → 6.x

1 participant