root - chore: upgrade TypeScript and build tooling (breaking)#134
Conversation
- typescript 6.0.2 → 6.0.3 - tsdown 0.21.7 → 0.22.2 - @types/node 25.6.0 → 25.9.2 https://claude.ai/code/session_01BzzQwgrJ6ujMSmfSEA2Wrv
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 78cebba379
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "tsd": "^0.33.0", | ||
| "tsdown": "^0.21.7", | ||
| "typescript": "^6.0.2", | ||
| "tsdown": "^0.22.2", |
There was a problem hiding this comment.
Align the declared Node engine with tsdown
This upgrade makes the build tool require a newer runtime: the locked tsdown@0.22.2 declares engines: {node: ^22.18.0 || >=24.0.0} in pnpm-lock.yaml, while package.json still advertises Node >=20.12.0. Since pnpm build invokes tsdown and prepublishOnly runs the build, installs/builds from source on Node 20/21 or early Node 22 can now fail under engine-strict or at build time despite satisfying the package's declared engine; either keep a Node-20-compatible tsdown or raise the declared engine range.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Good catch — addressed in 45d8439. I raised engines.node from >=20.12.0 to ^22.18.0 || >=24.0.0 to match tsdown@0.22.2's declared engine.
Verified the regression was real and introduced here: tsdown@0.21.7 declared engines.node: >=20.19.0, while 0.22.2 moves to ^22.18.0 || >=24.0.0, dropping Node 20/21 and early 22. Since the published package ships pre-built dist/ (tsdown is dev-only), this primarily affects building from source; aligning the declared engine keeps the contract honest. CI builds on Node 22/24/26 (and release.yaml on 22) — all satisfy the new range — and the tsdown build target now resolves to node22.18.0. Marked the PR (breaking) since this drops Node 20/21 support.
Generated by Claude Code
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #134 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 8 8
Lines 477 477
Branches 95 99 +4
=========================================
Hits 477 477 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Align the package's declared Node engine with tsdown@0.22.2, which requires ^22.18.0 || >=24.0.0. The prior tsdown (0.21.7) ran on Node >=20.19.0; 0.22.2 drops Node 20/21 and early 22, so the published package now declares the same floor. CI exercises Node 22/24/26, all of which satisfy the new range. https://claude.ai/code/session_01BzzQwgrJ6ujMSmfSEA2Wrv
Summary
Upgrade TypeScript and build tooling to the latest versions allowed by the repo's
minimumReleaseAgegate, and alignengines.nodewith the new build tool.Versions
typescript6.0.2 → 6.0.3tsdown0.21.7 → 0.22.2@types/node25.6.0 → 25.9.2Tests
pnpm buildpasses (target nownode22.18.0)Breaking notes
engines.noderaised>=20.12.0→^22.18.0 || >=24.0.0to matchtsdown@0.22.2(the priortsdown@0.21.7ran on>=20.19.0). This drops Node 20/21 build/runtime support. CI exercises Node 22/24/26, all of which satisfy the new range.@types/nodestays on major 25 — within the Node majors CI exercises (22/24/26).@types/node@25.9.3exists but is younger than the 48hminimumReleaseAgegate, so 25.9.2 is the correct target.