Repository navigation
Raise minimum Node version to 22.19 - #38
Merged
Merged
Conversation
undici 8.12.3 calls zlib.createZstdDecompress at module load, which does not exist before Node 22.15, so jsdom-based tests crash on the Node 22.13 CI job. undici already declares engines >=22.19.0, so our ^22.13.0 floor was never actually supported by our dependency tree. Bump engines, the CI minimum-version job, .nvmrc, and docs to 22.19.
⊕ Entity-level changes.github/workflows/ci.yml
.nvmrc
- 22.13.0
+ 22.19.0CONTRIBUTING.md
README.md
apps/server/package.json
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"apps/web/package.json
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"package-lock.json
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"package.json
- "node": "^22.13.0 || >=24.0.0"
+ "node": "^22.19.0 || >=24.0.0"Summary: 10 modified across 8 files ⊕ entity-level diff by sem · add it to your repo in 2 minutes |
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.
Summary
Fixes the failing
Quality (Linux, Node 22.13)job onmain(run).The undici bump in #34 (8.11.2 → 8.12.3) added
createZstdDecompress.bind(...)at module load inlib/interceptor/decompress.js.zlib.createZstdDecompressonly exists in Node 22.15+, so on 22.13 loading undici throwsTypeError: Cannot read properties of undefined (reading 'bind'). jsdom depends on undici, so vitest couldn't start the worker forapps/web/src/navigation.dom.test.ts.The real problem is that we claimed support for Node versions our dependencies don't support: undici has declared
engines: >=22.19.0since at least 8.11.2 (it reaches runtime throughopenai), so our^22.13.0floor was only working by luck.Changes
engines→^22.19.0 || >=24.0.0in the root,apps/server, andapps/webpackage.json files (plus the lockfile).nvmrc→ 22.19.0Testing
require('undici')throws the same TypeError; on 22.19.0 it loads finenpm ci,npm test,npm run typecheck,npm run build), and it passes: server 151/151, web 66/66 (previously 55; the crashed DOM test file now runs)Note: jsdom 30 officially requires 22.22.2 or later. It's only used in tests and works on 22.19; if a future jsdom bump breaks this job, the CI pin can move to 22.22.x.