Change8

v2.7.8

📦 denoView on GitHub →
6 features🐛 52 fixes🔧 21 symbols

Summary

This release introduces significant improvements to Node.js compatibility, including fixes for child_process, fs, and various internal APIs. It also adds new features like P-521 cryptography support and OpenTelemetry console exporting.

✨ New Features

  • Implement NodeRuntime CDP domain and fix --inspect-brk blocking.
  • Implement P-521 sign, verify, and ECDH derive in crypto extension.
  • Add node_api_create_object_with_named_properties in napi extension.
  • Add console exporter for OpenTelemetry in telemetry extension.
  • Copy relevant span attributes to HTTP metrics in telemetry extension.
  • Use lockfile from jsr package for global install.

🐛 Bug Fixes

  • Respect package.json overrides in vulnerability checks.
  • Fix arrow keys in interactive picker on Windows.
  • Parse --frozen flag for deno update and deno outdated.
  • Skip Node-to-Deno arg translation in standalone binaries.
  • Handle throwing Symbol.toStringTag getter gracefully in console extension.
  • Pass valid env to tsfn call_js_cb after close race in napi extension.
  • Fix fs.cp across allowed dirs with ignored read permissions in node extension.
  • Child_process improvements (internalMessage, argv0, DEP0190) in node extension.
  • Close libuv handle on HandleWrap.close() for new-style handles in node extension.
  • Defer uv_write callbacks to prevent re-entrancy panic in node extension.
  • Do not throw error for readline.createInterface outside TTY in node extension.
  • Don't fire upgrade event for h2c requests in node extension.
  • Drain all ready connections in poll_tcp_handle to prevent accept starvation in node extension.
  • Emit request "close" before socket "free" in keep-alive path in node extension.
  • Enable node compat test for v8.getHeapStatistics.
  • Enable node:fs compat tests + lchmod fix.
  • Fix Buffer.concat truncating buffers larger than 4GB.
  • Fix IPC stdio handling in child_process.
  • Fix node:domain across async boundaries.
  • Freeze os.constants.signals to match Node.js.
  • Implement process.threadCpuUsage().
  • Improve process.hrtime argument validation.
  • Improve readline and EventEmitter compat.
  • Pass uid/gid to spawn and implement process.getgroups.
  • Preserve TLS upgrade state on reconnect.
  • Return all own properties from VM context property enumerator.
  • Set fd property on TTY ReadStream and WriteStream.
  • Fix sqlite prepare() options, defensive default, iterator invalidation.
  • Support http2 createConnection sockets.
  • Support numeric FDs in child_process stdio array.
  • Update process.versions.napi to 9.
  • Fix AbortSignal.any() memory leak with long-lived signals in web extension.
  • Handle null options in removeEventListener in web extension.
  • Delegate component expression formatting to markup_fmt.
  • Update markup_fmt to 0.27.0 and malva to 0.15.2.
  • Send executionContextDestroyed on process.exit() in inspector.
  • Truncate frozen lockfile error diff to 50 lines.
  • Add test coverage and fix escape_handle/throw bugs in napi.
  • Stop leaking TCP wrappers on HTTPS upgrade with createConnection TLSSocket.
  • "approve-scripts" detects packages when lockfile is disabled.
  • Create shims for all bin entries during global npm install.
  • Skip `file:` and `link:` dependencies in npm packages.
  • Use box-drawing style for deprecated package warnings.
  • Fall through to .deno/ when BYONM node_modules version mismatches.
  • Prefer exact version match in BYONM npm resolution.
  • Handle inner quotes in double-quoted env values in .env file.
  • Include Temporal types in deno types output.
  • Make flamegraph SVG fill full browser viewport.
  • Rewrite approve_scripts_no_lock as PTY tests, skip lockfile test on Windows.
  • Skip flaky test-process-threadCpuUsage-worker-threads on Windows.
  • Use simdutf for base64 encode/decode in web extension.
  • Upgrade to jsonc-parser 0.32.

Affected Symbols