fix(ci): bump TypeScript to 5.x and jest toolchain to 29 to unbreak the build - #32
Merged
Merged
Conversation
…uild compiles again The Build workflow runs `npm install` (package-lock.json is gitignored), so every run re-resolves transitive dependencies from scratch. `@types/node` has since floated to 26.x, whose .d.ts files use syntax TypeScript 4.9 cannot parse, and ts-loader fails with 50 TS1005/TS1109/TS1128 errors in @types/node/ffi.d.ts. Bumping typescript to ^5.9.3 fixes it, which in turn requires jest/ts-jest/@types/jest 29 because ts-jest 27 peer-caps typescript at <5.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bump
typescript^4.3.5→^5.9.3, andjest/ts-jest/@types/jest27 → 29.How it manifested
The
Buildcheck fails on every PR and would fail onmaintoo — 50 errors, all insidenode_modules:Not caused by any PR's code. Reproduced on a clean checkout of
origin/main(4461bf3) — identical failure.Why now
package-lock.jsonis gitignored and CI runsnpm install, so every run re-resolves transitive deps from scratch.@types/nodehas floated to 26.3.0, whose.d.tsfiles use syntax TypeScript 4.9.5 cannot parse. The last greenmainbuild was 2026-04-03, before that bump landed.Why the jest bump comes along
ts-jest@27.1.4peer-capstypescript@">=3.8 <5.0", so bumping TypeScript alone makesnpm installfail withERESOLVE. jest 29 + ts-jest 29 lifts the cap.Also refreshed the stale
@ts-jest/dist/typesJSDoc type import injest.config.js(moved tots-jestin v29).Verification
On this branch, from a clean
node_modules:npm install— resolves cleanly, noERESOLVEnpm run build— compiles, emitsdist/index.js+dist/index.d.tsnpm test— 53/53 passing, no deprecation warningsFollow-up worth considering (not in this PR)
The root cause is unpinned CI installs. Committing
package-lock.jsonand switching the workflows tonpm ciwould make builds reproducible and stop this recurring.