Change8

v2.7.5

📦 denoView on GitHub →
6 features🐛 38 fixes🔧 37 symbols

Summary

This release introduces significant enhancements to coverage reporting, Node.js compatibility (especially around crypto and HTTP/2), and performance improvements across the npm subsystem. Numerous bug fixes address stability and correctness across various core and extension modules.

✨ New Features

  • Add function coverage to summary and HTML reports.
  • Support npm packages in `deno doc`.
  • Add `node_api_create_object_with_properties` API in `ext/node`.
  • Implement KeyObject.toCryptoKey() and KeyObject.from(CryptoKey) in `ext/node`.
  • Allow feeding permission audit data into OTEL.
  • --cpu-prof flags for CPU profiles.

🐛 Bug Fixes

  • Prevent multi-line object values in console.table.
  • Switch to V8 Explicit microtask policy for correct nextTick ordering.
  • Allow rejecting HTTP upgrades with non-101 status codes in `ext/http`.
  • Run async work execute callback on a worker thread in `ext/napi`.
  • Add `node_api_create_property_key_(latin1/utf8)` in `ext/node`.
  • Add missing http2 header constants in `ext/node`.
  • Emit DEP0198 warning for SHAKE digests without outputLength in `ext/node`.
  • Emit correct error codes for unsupported PQC key types in `ext/node`.
  • Fix multiple DiffieHellman crypto bugs in `ext/node`.
  • Fix multiple node:dgram compatibility issues in `ext/node`.
  • Handle generateKeyPair 2-arg call and enable PQC tests in `ext/node`.
  • Implement ECDH.convertKey and fix related ECDH bugs in `ext/node`.
  • Implement `node:v8` heap APIs in `ext/node`.
  • Implement proper `resourceLimits` for `node:worker_threads` in `ext/node`.
  • Improve getCipherInfo and allow repeated Hmac digest() in `ext/node`.
  • Improve node:dns compat in `ext/node`.
  • Initialize debuglog testEnabled with safe default in `ext/node`.
  • Make TTY stdout/stderr indestructible in `ext/node`.
  • Make tty ReadStream/WriteStream callable without `new` in `ext/node`.
  • Multiple readline improvements in `ext/node`.
  • napi_set_instance_data on exit.
  • Rewrite http2 implementation in `ext/node`.
  • Run worker_threads eval code in sloppy mode in `ext/node`.
  • Support des-ede3-cbc cipher and allow Cipheriv/Decipheriv without new in `ext/node`.
  • Use max salt length as default for RSA-PSS signing in `ext/node`.
  • Remove panicking unwraps in telemetry code in `ext/otel`.
  • Handle non-ASCII bytes in WebSocket response headers in `ext/websocket`.
  • Properly sync root files with tsgo in `lsp`.
  • tsgo scope attribution for asset files in `lsp`.
  • Remove unimplemented Node-API symbols from napi_sys.
  • Memoize peer cache hit checks to prevent combinatorial explosion in `npm`.
  • Support npmrc email authorization in `npm`.
  • Ensure binaries distributed in `@deno/...` npm packages are exectuable.
  • Flush CPU profile and coverage data on Deno.exit().
  • Normalize `capture` to boolean in `removeEventListener` options.
  • Prevent panic on dynamic import with non-string error name.
  • Set `process.features.openssl_is_boringssl` to `true`.
  • Support value substitution when loading environment variable files.

Affected Symbols