Skip to content
verdict:

Deno 2.7.14

digest

note: no summary for this digest release

Digest releases are listed without a summary. The original release notes for this version are below.

release-notesgithub.com/denoland/deno · 220 lines
  1. ### 2.7.14 / 2026.04.28
  2. - feat(ext/node): add fs.Utf8Stream
  3. - feat(upgrade): delta updates via bsdiff patches (#33274)
  4. - fix(bundle): treat CSS same-document fragment URLs as external (#33492)
  5. - fix(cache): add missing CacheStorage.keys() and Cache.keys() methods (#33275)
  6. - fix(config): don't exclude workspace members from deploy file patterns
  7. (#33562)
  8. - fix(coverage): exclude transformer-injected helpers from coverage (#33481)
  9. - fix(doc): remove background from operators in dark mode code blocks (#33267)
  10. - fix(ext/bundle): clearer error when Deno.bundle is called in compiled binary
  11. (#33503)
  12. - fix(ext/crypto): throw TypeMismatchError for non-TypedArray in getRand
  13. (#33470)
  14. - fix(ext/fetch): don't mutate caller's options in Deno.createHttpClient
  15. (#33497)
  16. - fix(ext/fetch): use byte ReadableStream for Node Readable request bodies
  17. (#33432)
  18. - fix(ext/fs): normalize Deno.watchFs paths so events drop ./ segments (#33490)
  19. - fix(ext/napi): implement napi_async_init and napi_async_destroy (#33282)
  20. - fix(ext/net): default Deno.listenDatagram hostname to 0.0.0.0 (#33496)
  21. - fix(ext/node): accept X.509v1 server certs in tls.createServer (#33505)
  22. - fix(ext/node): accept string mode in fs.mkdir and fs.mkdirSync (#33409)
  23. - fix(ext/node): add Server BlockList, asyncDispose, and misc net improvements
  24. (#33417)
  25. - fix(ext/node): add _idleStart and _idleTimeout to Timeout (#33604)
  26. - fix(ext/node): align crypto random* validation with Node (#33456)
  27. - fix(ext/node): align fs.truncate / ftruncate argument validation with Node
  28. (#33418)
  29. - fix(ext/node): align module.builtinModules / getBuiltinModule with Node
  30. (#33404)
  31. - fix(ext/node): align node:module behavior with Node (#33482)
  32. - fix(ext/node): align node:test `it`/`describe` with Node, enable passing
  33. compat tests (#33593)
  34. - fix(ext/node): align util.styleText with Node (#33547)
  35. - fix(ext/node): allow `https.Agent()` without `new`, enable passing compat
  36. tests (#33601)
  37. - fix(ext/node): async fs.stat/lstat throwIfNoEntry + deprecate fs.Stats
  38. (#33436)
  39. - fix(ext/node): attach input URL to ERR_INVALID_FILE_URL_PATH (#33398)
  40. - fix(ext/node): attach path/syscall to fs.lstat / realpath / link errors
  41. (#33446)
  42. - fix(ext/node): brand-check SecureContext._external accessor (#33569)
  43. - fix(ext/node): cache hash digest so it survives stream.pipeline (#33440)
  44. - fix(ext/node): cancelling Readable.toWeb(req) no longer destroys the socket
  45. (#33570)
  46. - fix(ext/node): close fd on error in http2 stream respondWithFile (#33614)
  47. - fix(ext/node): correct buffer-length check in `Readable._fromList` decoder
  48. branch (#33624)
  49. - fix(ext/node): defer drain in http2 shutdownWritable so pushStream after end()
  50. works (#33619)
  51. - fix(ext/node): drain pending TLS cleartext in enc_write_cb (#33378)
  52. - fix(ext/node): emit Buffer for http2 'goaway' opaqueData (#33502)
  53. - fix(ext/node): emit DEP0031 deprecation warning for ecdh.setPublicKey(
  54. (#33468)
  55. - fix(ext/node): emit DEP0182 deprecation for short AES-GCM auth tag (#33469)
  56. - fix(ext/node): emit HPE_INVALID_TRANSFER_ENCODING for CL+chunked respo
  57. (#33488)
  58. - fix(ext/node): emit StatWatcher 'stop' event asynchronously (#33448)
  59. - fix(ext/node): emit TimeoutNaNWarning for invalid timer durations (#33472)
  60. - fix(ext/node): emit http2 frameError on send failure with translated HTTP/2
  61. error code (#33631)
  62. - fix(ext/node): emit stream-level PROTOCOL_ERROR in node:http2
  63. - fix(ext/node): emit tlsClientError instead of crashing on TLS init failure
  64. (#33429)
  65. - fix(ext/node): enable test-als-defaultvalue-original (AsyncLocalStorage
  66. default value) (#33464)
  67. - fix(ext/node): encode http2 headers as Latin-1 to fix response splitting
  68. (#33531)
  69. - fix(ext/node): encode more chars in url.pathToFileURL() (#33397)
  70. - fix(ext/node): enforce HTTP/2 server header list size limits (#33494)
  71. - fix(ext/node): enforce http2 maxSessionInvalidFrames limit (#33515)
  72. - fix(ext/node): expose http2 sensitive headers received with NV_FLAG_NO_INDEX
  73. flag (#33626)
  74. - fix(ext/node): fix EEXIST error and data loss in writeFileSync on Windows
  75. (#33413)
  76. - fix(ext/node): fix ERR_INVALID_CHAR message & OutgoingMessage.prototype.write
  77. (#33430)
  78. - fix(ext/node): fix TLS client certificate authentication verification (#33576)
  79. - fix(ext/node): fix TLS socket error ordering and app data leak before identity
  80. verification (#33585)
  81. - fix(ext/node): fix TLS socket lifecycle and readStop backpressure (#33524)
  82. - fix(ext/node): fix closeIdleConnections destroying active connections (#33596)
  83. - fix(ext/node): fix fs.glob skipping siblings with *_/../_ patterns (#33372)
  84. - fix(ext/node): fix spawnSync internal API for monkey-patching and killSignal
  85. (#33545)
  86. - fix(ext/node): flush GOAWAY before destroying http2 socket and expose
  87. internal/http2/core (#33566)
  88. - fix(ext/node): flush HTTP/2 client preface after settings submission (#33387)
  89. - fix(ext/node): forward enableConnectProtocol setting to peer in HTTP/2
  90. SETTINGS frame (#33616)
  91. - fix(ext/node): handle undefined http2 ping payload and cancel pending pings on
  92. destroy (#33561)
  93. - fix(ext/node): hide aggregateTwoErrors frame in AggregateError stack (#33402)
  94. - fix(ext/node): honor http2 strictFieldWhitespaceValidation option (#33506)
  95. - fix(ext/node): honor requestCert/ca on node:tls server, populate
  96. getPeerCertificate() (#33439)
  97. - fix(ext/node): honor weight option in http2 client.request and emit DEP0194
  98. (#33622)
  99. - fix(ext/node): http2 createConnection support and per-frame socket writes
  100. (#33520)
  101. - fix(ext/node): implement BlockList.rules / isBlockList / toJSON / fromJSON
  102. (#33445)
  103. - fix(ext/node): implement Socket.resetAndDestroy with TCP RST in node:net
  104. (#33415)
  105. - fix(ext/node): implement StatWatcher.ref() / unref() (#33408)
  106. - fix(ext/node): implement dns Resolver cancel() and timeout support (#33580)
  107. - fix(ext/node): implement dns.reverse() and fix dns.lookup() family parameter
  108. (#33579)
  109. - fix(ext/node): implement fs.mkdtempDisposableSync /
  110. fsPromises.mkdtempDisposable (#33533)
  111. - fix(ext/node): implement node:cluster fork/Worker and worker-side detection
  112. (#33493)
  113. - fix(ext/node): implement process.debugPort with ToInt32 coercion (#33403)
  114. - fix(ext/node): import kIncomingMessage/kServerResponse in http2 allowHTTP1
  115. fallback (#33435)
  116. - fix(ext/node): improve Node.js timer compatibility (#33479)
  117. - fix(ext/node): improve perf_hooks timerify and add missing exports (#33581)
  118. - fix(ext/node): include accepted values in Console colorMode error (#33424)
  119. - fix(ext/node): isolate parentPort from globalThis in worker_threads (#32596)
  120. - fix(ext/node): make Buffer.prototype methods generic-callable (#33466)
  121. - fix(ext/node): make http2 session.origin() round-trip origins and respect TLS
  122. servername (#33629)
  123. - fix(ext/node): make process.constructor a proper instanceof check (#33447)
  124. - fix(ext/node): name custom-promisified functions after their originals
  125. (#33407)
  126. - fix(ext/node): null-proto child_process options to block prototype pollution
  127. (#33555)
  128. - fix(ext/node): pass reusePort flags in Server.listen() without host (#33530)
  129. - fix(ext/node): pass signal name to process signal handlers (#33425)
  130. - fix(ext/node): pass stream fd to child process stdio instead of inheriting
  131. (#33525)
  132. - fix(ext/node): plumb llhttp error code, reason, and bytes parsed through
  133. HTTPParser (#33591)
  134. - fix(ext/node): prevent duplicate close emit when http2 client socket i
  135. (#33538)
  136. - fix(ext/node): re-arm Windows named pipe server after accept (#33369)
  137. - fix(ext/node): rebind http2 state buffers post-snapshot, enforce
  138. maxHeaderListPairs (#33495)
  139. - fix(ext/node): reject non-ArrayBufferView data in fs.writeFileSync (#33406)
  140. - fix(ext/node): rename _destroySsl to _destroySSL to match Node.js API (#33599)
  141. - fix(ext/node): replace unwrap with error propagation in parallel cp (#33396)
  142. - fix(ext/node): return relative path from fs.watch with recursive option
  143. (#33428)
  144. - fix(ext/node): strip trailing dot from SRV target in dns.resolveSrv() (#33578)
  145. - fix(ext/node): submit http2 RST_STREAM before flushing END_STREAM DATA frame
  146. on respondWithFD read (#33633)
  147. - fix(ext/node): support ALPNCallback in http2.createSecureServer (#33521)
  148. - fix(ext/node): support BlockList, AbortSignal, and constructor options in
  149. node:net Socket (#33414)
  150. - fix(ext/node): support `ignore` option in `fs.watch` and `fs.promises.watch`
  151. (#33610)
  152. - fix(ext/node): support encoding option in fs.readdir; don't double-call glob
  153. callback (#33501)
  154. - fix(ext/node): support http2 pushStream and client push events (#33516)
  155. - fix(ext/node): support reusePort option and fix bind/pipe handling in node:net
  156. (#33416)
  157. - fix(ext/node): support util.promisify on http2.connect (#33489)
  158. - fix(ext/node): support v1 X.509 certs and http2 ALPN fallback (#33510)
  159. - fix(ext/node): throw ERR_INVALID_ARG_VALUE when rmdir gets options.recursive
  160. (#33565)
  161. - fix(ext/node): throw ERR_INVALID_URL from http/https request string URL
  162. (#33427)
  163. - fix(ext/node): throw TypeError for Symbol keys/values in process.env (#33399)
  164. - fix(ext/node): timer _destroyed flag, Symbol.dispose, and setInterval abort
  165. (#33528)
  166. - fix(ext/node): track http2 custom settings and SETTINGS ACK callbacks (#33518)
  167. - fix(ext/node): treat unsolicited HTTP/2 PING ACK as connection-level protocol
  168. error (#33625)
  169. - fix(ext/node): use AbortSignal.addEventListener in addAbortListener (#33557)
  170. - fix(ext/node): use ERR_INVALID_ARG_TYPE for tls.createServer non-object
  171. options (#33589)
  172. - fix(ext/node): use ERR_INVALID_ARG_VALUE in module.createRequire (#33449)
  173. - fix(ext/node): use Node's address-type check in dgram Socket.send (#33420)
  174. - fix(ext/node): use node:timers for http server connection checks, expo
  175. (#33483)
  176. - fix(ext/node): use proper error codes for require() invalid arguments (#33609)
  177. - fix(ext/node): validate `fs.watch` boolean options (#33627)
  178. - fix(ext/node): validate boolean arg in process.setSourceMapsEnabled (#33473)
  179. - fix(ext/node): validate ciphers option in tls.createSecureContext() (#33597)
  180. - fix(ext/node): validate dgram options.recvBufferSize / sendBufferSize (#33444)
  181. - fix(ext/node): validate oaepHash in publicEncrypt/privateDecrypt (#33388)
  182. - fix(ext/node): validate options.type in Readable.toWeb (#33560)
  183. - fix(ext/node): validate process.chdir argument is a string (#33401)
  184. - fix(ext/node): walk sandbox prototype chain in vm property_query (#33463)
  185. - fix(ext/node): wire JSStreamSocket handle write/shutdown for http2 (#33526)
  186. - fix(ext/node): wire up captureRejection handler for http2 servers (#33542)
  187. - fix(ext/node): yield to I/O in http2 write path so stream pipeline finishes
  188. (#33541)
  189. - fix(ext/web): align AbortSignal.timeout error message with Node (#33460)
  190. - fix(ext/web): allow transferring non-serializable types in structuredClone
  191. (#33491)
  192. - fix(ext/web): handle late write racing with TransformStream cancel (#33478)
  193. - fix(ext/web): narrow ReadableStreamBYOBRequest.view to Uint8Array (#33477)
  194. - fix(ext/web): retain `source` from MessageEventInit (#33500)
  195. - fix(ext/web): route console.dirxml through the log printer (#33443)
  196. - fix(ext/web): set ERR_MISSING_ARGS code on URL.revokeObjectURL no-arg (#33471)
  197. - fix(ext/web): structuredClone of non-serializable Web types throws
  198. DataCloneError (#33465)
  199. - fix(ext/webidl): set ERR_ILLEGAL_CONSTRUCTOR code on illegal constructor calls
  200. (#33535)
  201. - fix(ext/webidl): set ERR_INVALID_THIS code on brand-check TypeError (#33467)
  202. - fix(node/buffer): fix panic in transcode with odd-length UTF-16LE input
  203. (#33390)
  204. - fix(node/compat): disable flaky test-child-process-exec-kill-throws on Windows
  205. (#33426)
  206. - fix(node/compat): disable flaky test-fs-read-stream-pos on Windows (#33421)
  207. - fix(node/compat): fix shard report merging and fetching in CI reporting
  208. (#33431)
  209. - fix(permissions): normalize paths for macOS filesystem comparison (#33451)
  210. - fix(task): match workspace directory name in --filter (#33499)
  211. - fix(task): use explicit workspace root check in directory-name fallback
  212. (#33540)
  213. - fix(x): forward --unstable-* flags to JSR and URL targets (#33450)
  214. - fix: bound fs.readFile on non-terminating sources (#33262)
  215. - fix: drop config-only unstable features from unstable_args() (#33452)
  216. - fix: match single-char wildcard segments in npm package imports (#33513)
  217. - perf(ext/node): pool 64KB read buffers to reduce allocation pressure (#33395)
  218. - perf: optimize worker and MessagePort message passing (#32657)
  219. - perf: upgrade rusty_v8 to 147.4.0 (#33422)

view on githubimported 2026-09-28 via github-releases