v25.9.0
📦 node-jsView on GitHub →
✨ 7 features🐛 7 fixes⚡ 1 deprecations🔧 6 symbols
Summary
This release introduces significant improvements to test runner mocking APIs by consolidating export options and adds new features like scoped usage for AsyncLocalStorage and new Web Crypto algorithms. It also deprecates `module.register()`.
Migration Steps
- For test runner mocking, replace usage of `MockModuleOptions.defaultExport` and `MockModuleOptions.namedExports` with the unified `MockModuleOptions.exports` option. Use the `default` property within `exports` for the default export and other enumerable properties for named exports.
- Run the codemod tool to automate migration for test runner mocking changes: `npx codemod @nodejs/mock-module-exports`.
✨ New Features
- Added support for using scopes to `AsyncLocalStorage` in `async_hooks`.
- Added `--max-heap-size` option to the CLI.
- Added `TurboSHAKE` and `KangarooTwelve` Web Cryptography algorithms to `crypto` module.
- Added customizable error handling to the REPL.
- Added stream/iter implementation to the `stream` module.
- Added support for code cache for ESM entrypoint in SEA.
- Added diagnostics channels for web locks to `diagnostics_channel`.
🐛 Bug Fixes
- Fixed destructuring in `dgram/single-buffer` benchmarks.
- Improved performance of multiple Buffer operations.
- Fixed timezone-update path references in build system.
- Fixed `--node-builtin-modules-path` handling in build system.
- Rejected ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto.
- Fixed handling of authentication tag in WebCrypto AEAD algorithms.
- Read algorithm name property only once in `normalizeAlgorithm` within `crypto`.
Affected Symbols
⚡ Deprecations
- The `module.register()` API is deprecated (DEP0205).