main
fix(node): preserve AsyncLocalStorage context in unhandledRejection handlers (#32264)
fix(node): better detection for when to surface node resolution errors (#24653)
chore: update to edition 2024 (#29923)
fix(ext/node): improve child_process CLI argument parsing (#31825)
fix(ext/node): support ChildProcess.send with net.Server handles (#34948)
fix(ext/node): forward permissions when spawning deno with subcommand args (#35443)
fix(ext/node): clear nonblocking fd stdio for child pipes (#34962)
fix(ext/node): child_process improvements (internalMessage, argv0, DEP0190) (#32885)
fix(ext/node): support FD-indexed stdio inheritance in spawnSync (#33341)
fix(ext/node): enforce maxBuffer in child_process.spawnSync (#34053)
fix(ext/node): make `child_process` stdio streams Socket instances (#31975)
fix(ext/node): unref child_process stdio streams by default (#32071)
fix(process): allow unref'd child processes to outlive parent (#32563)
fix: show referrer range in deno_core loader errors (#30981)
fix: detect bound require reexports in cjs analysis (#32163)
feat(cli): print working dir in grey in stack traces, relative paths in check + compile output (#31194)
fix: add "module.exports" export to ESM CJS wrapper module (#28373)
fix(node): Include "node" condition during CJS re-export analysis (#25785)
chore: regression test for clearImmediate semantics across TCP socket close (#34852)
fix(ext/node): throw on cipher update with input >= 2^31-1 bytes (#33201)
2.9.0 (#35502)
fix(ext/node): validate oaepHash in publicEncrypt/privateDecrypt (#33388)
fix(node/crypto): randomBytes returns buffer with dedicated ArrayBuffer (#32048)
fix(ext/node): support RSA PSS padding option in crypto sign/verify (#32269)
feat(node): load ES modules defined as CJS (#22945)
fix(ext/node): fix node:domain across async boundaries (#32897)
feat(check): type-check with native tsc by default (#35938)
perf(ext/node): convert child_process, fs, http, http2, https, inspector to lazy-loaded JS (#33967)
fix(node): use `JsErrorClass` for `code` property on node resolver errors (#29294)
fix(ext/node): report directory imports with node error code (#34076)
fix(cli): clearer error when importing .node addon via ESM (#34361)
fix(ext/process): run shebang-less scripts via /bin/sh on ENOEXEC (#34945)
perf(ext/node): fast path fs cp (#35856)
perf(ext/node): move `fs.cpSync` implementation to rust (#32687)
fix(node): do not require permission checks for require's node_modules stats (#29397)
fix(ext/node): support HTTP/2 on the DENO_SERVE_ADDRESS override listener (#35089)
fix(ext/node): transfer TCP handle ownership in http2 consumeStream (#35047)
feat(ext/node): support DENO_SERVE_ADDRESS override in node:http servers (#34662)
fix(http): handle raw h1 serve regressions (#35049)
feat(node/http): enable keepAlive connection reuse for HTTP Agent (#31709)
fix(node/http): preserve request body on stale keepalive retry (#32148)
fix(ext/node): retry stale keepAlive connections in http client (#31932)
fix(ext/node): replay direct writes on stale http retry (#34992)
fix(ext/node): reset req.reusedSocket on transparent retry (#34376)
fix(ext/node): read proxy env vars without --allow-env (#34807)
chore: cover first node:http proxy request under test (#35001)
fix(ext/node): check --allow-net for proxied request target in node:http(s) (#35241)
feat(ext/node): rewrite node:http with llhttp and native TCPWrap (#33208)
fix(ext/node): honor requestCert/ca on node:tls server, populate getPeerCertificate() (#33439)
fix(node): resolve module as maybe CJS when it's missing a file extension (#27904)
feat(node): allow subpath imports that start with '#/' (#31520)
chore: remove DENO_FUTURE=1 from spec tests (#25329)
fix(ext/node): gracefully exit on invalid NODE_CHANNEL_FD instead of panicking (#32421)
fix(node): show directory import and missing extension suggestions (#27905)
fix(ext/node): allow registerHooks with no resolve or load hook (#35235)
fix(ext/node): import attributes and custom module types in registerHooks ESM hooks (#35028)
feat(ext/node): implement node:module SourceMap API (#32890)
fix(ext/node): re-arm Windows named pipe server after accept (#33369)
fix(node): stop active read on stream close to avoid leaking Socket/TCPWrap (#35898)
fix(ext/node): guard TCPWrap.open against adopting tracked fds (#35045)
fix(ext/node): align nextTick ordering in ESM (#34085)
fix: report exceptions from nextTick (#26579)
feat(cli): provide a `node` on PATH when Node.js is not installed (#34969)
fix(ext/node): upgrade `node:stream` (#28855)
feat: add `--allow-import` flag (#25469)
fix(ext/node): fix `node:test` hook ordering and error handling (#35393)
chore: test for describe.only without only failure (#34590)
fix(ext/node): add test.expectFailure to node:test (#34130)
fix(ext/node): implement t.assert.fileSnapshot for node:test (#35478)
fix(ext/node): implement mock.property() in node:test (#34959)
feat(ext/node): implement node:test mock.module (#35329)
fix(ext/node): mock.reset() should also reset MockTimers (#35588)
fix(node/test): route nested top-level test() to a subtest (#35406)
fix(test): abort with a message when a test exits with sanitizeExit disabled (#34491)
fix(ext/node): Fix `.only` tests compatibilty (#32043)
fix(ext/node): add node:test/reporters builtin (#34595)
fix(ext/node): implement test.TestContext.runOnly (#35158)
fix(ext/node): node:test with watch-mode events (#34254)
fix(ext/node): fail node:test on unhandled rejection and enforce timeout (#35297)
fix(ext/node): prevent top-level `await test(...)` deadlock in node:test (#33947)
fix(ext/node): address node:http rewrite review comments (#33299)
fix(ext/node): `process.argv[0]` is equivalent to execPath (#28915)
chore: regression test for process._getActiveHandles() in 'exit' handler (#34191)
fix(ext/node): signal listeners added via `process.once` can now be removed (#32606)
fix(ext/node): make TTY stdout/stderr indestructible (#32530)
fix(ext/node): support process.stdout resize events (#32343)
fix(ext/node): improve process.title and support --title flag (#32201)
fix(ext/node): createInterface doesn't require env permission (#29472)
fix: actually add missing `node:readline/promises` module (#24772)
chore: fix flaky rejection_handled_web_process (#23817)
fix(node): unconditionally call `Module.prototype._compile` with the file content in `loadMaybeCjs` (#32131)
fix(node): require esm should prefer `module.exports` export (#28376)
fix(node): support re-exported esm modules in cjs export analysis (#28379)
fix(ext/node): resolve exports even if parent module filename isn't present (#26553)
fix(node): classify required js files as commonjs by default (#34673)
fix(ext/node): rewrite http2 implementation (#32418)
fix: pass npm process state when spawning script in npm package via Node APIs (#30490)
fix(io): remove global stdio statics, handle non-blocking stdin (#33219)
fix(ext/node): support stdin child_process IPC & fd stdout/stderr (#24106)
refactor(ext/node): rework stream wrap infrastructure for reentrant safety (#33100)
fix(ext/node): add post-resolution deny check in TCPWrap connect (#33880)
fix(ext/node): implement uv_ref for native TCP handles (#33174)
fix(ext/node): mark TLSWrap dead on teardown before tls_conn check (#35706)
fix(ext/node): fix TLS crash with Happy Eyeballs address fallback (#33641)
fix(ext/node): fix TLS JSStreamSocket resource leak causing process hang (#32325)
fix(ext/node): defer TLS write completion callback to avoid reentrancy panic (#35867)
fix(ext/node): drive TLSWrap cycle on JSStream writes to fix deadlock (#33914)
fix(ext/node): drain pending TLS cleartext in enc_write_cb (#33378)
fix(ext/node): fix TLS socket lifecycle and readStop backpressure (#33524)
fix(node/tls): handle detached ArrayBuffer in TLSWrap write methods (#33737)
chore(ext/node): regression test for empty buffer TLS write panic (#34412)
fix(ext/node): set fd property on TTY ReadStream and WriteStream (#32880)
fix(ext/node): fire uncaughtExceptionMonitor with correct origin for sync top-level throws (#34048)
ci: attempt to improve test stability (#31563)
chore: add test for top level return statement with unstable-detect-cjs (#30480)
feat: support Deno.upgradeWebSocket with node:http upgrade events (#33342)
fix(ext/node): don't leave 0-byte .heapsnapshot files near the heap limit (#36113)
fix(ext/node): support vm dynamic import callback (#34572)
fix(ext/node): vm dynamic import without callback throws ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING (#34427)
fix(ext/node): support cyclic imports in vm.Module.prototype.link() (#34472)
fix(ext/node): avoid panic when vm.SourceTextModule uses import.meta (#35375)
fix(ext/node): implement vm.SyntheticModule constructor (#34014)
fix(core): preserve WebAssembly streaming callback across new contexts (#34679)
fix(node): regression where Node fs APIs required elevated permissions on Windows (#30535)
fix(node): propagate source thread id to `process` `workerMessage` event (#35374)
fix(node): seperate worker module cache (#23634)
fix(runtime): give worker isolate threads the stack size we report (#36114)
fix(ext/node): work correctly with wrapper Response objects, use correct `rawHeaders` structure (#29056)