Change8

v24.15.0

📦 node-jsView on GitHub →
14 features🐛 10 fixes🔧 10 symbols

Summary

This release introduces several new features across CLI, crypto, fs, and stream modules, stabilizes ESM require and module caching, and includes numerous performance improvements and bug fixes across core modules.

Migration Steps

  1. If using fs.stat or fs.promises.stat, consider using the new `throwIfNoEntry` option if you need specific behavior when the entry does not exist.
  2. If using Duplex.toWeb(), rename the type option argument to `readableType`.

✨ New Features

  • Added --max-heap-size option to the CLI.
  • Added --require-module/--no-require-module options to the CLI.
  • Added raw key formats support to the KeyObject APIs in crypto.
  • Added throwIfNoEntry option for fs.stat and fs.promises.stat.
  • Added http1Options for HTTP/1 fallback configuration in http2.
  • Marked require(esm) as stable in module.
  • Marked module compile cache as stable in module.
  • Added setTOS and getTOS to net.Socket.
  • Added limits property to sqlite.DatabaseSync.
  • Added C++ support for diagnostics channels.
  • Renamed Duplex.toWeb() type option to readableType in stream.
  • Added exports option for module mocks in test_runner.
  • Exposed worker ID for concurrent test execution in test_runner.
  • Added showing interrupted test on SIGINT in test_runner.

🐛 Bug Fixes

  • Improved comparison performance in assert and util.
  • Fixed deep comparing invalid dates skipping properties in assert and util.
  • enabledHooksExist shall return if hooks are enabled in async_hooks.
  • Fixed destructuring in dgram/single-buffer benchmark.
  • Fixed timezone-update path references in build.
  • generate_config_gypi.py generates valid JSON in build.
  • Fixed --node-builtin-modules-path in build.
  • Fixed GN for new merve dependency in build.
  • Rejected ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto.
  • Refactored WebCrypto AEAD algorithms auth tag handling in crypto.

Affected Symbols