|
| 1 | +--- |
| 2 | +date: 2026-06-06 |
| 3 | +repo: denoland/deno |
| 4 | +size: L |
| 5 | +title: "Deno adds WebCrypto, Node, and CLI fixes" |
| 6 | +excerpt: "Major updates across WebCrypto, BroadcastChannel, child_process, and bundling, plus several bug fixes and new APIs." |
| 7 | +commits: 33 |
| 8 | +authors: [bartlomieju, divybot, fibibot, nathanwhitbot, ry, littledivy] |
| 9 | +commit_authors: {"9839d3a": bartlomieju, "a5b709e": bartlomieju, "591ff87": bartlomieju, "84b80f0": bartlomieju, "181c8e5": bartlomieju, "0e8fe8c": divybot, "e867d08": divybot, "0e6757e": littledivy, "25cfe2b": divybot} |
| 10 | +--- |
| 11 | + |
| 12 | +### **WebCrypto now tracks modern algorithms and detached buffers** (0e6757e) |
| 13 | +Deno’s WebCrypto implementation was brought closer to the modern-algorithms spec, with support and validation updates across post-quantum and newer digest/encapsulation paths. The patch also fixes buffer-copy behavior around detached inputs so algorithms observe mutations correctly, which matters for spec conformance and hard-to-debug edge cases. |
| 14 | + |
| 15 | +### **BroadcastChannel now supports SharedArrayBuffer payloads** (0e8fe8c) |
| 16 | +BroadcastChannel can now serialize, transmit, and deserialize `SharedArrayBuffer`-backed messages instead of failing with clone errors for additional receivers. This closes a real interoperability gap and makes Node worker-thread style messaging work more reliably. |
| 17 | + |
| 18 | +### **Node child_process IPC handles now work with net.Server and net.Socket variants** (25cfe2b) |
| 19 | +`ChildProcess.send()` now handles unlistened servers and socket/server wraps more like Node, including pipe-backed handles and the null-handle case. That unlocks more IPC patterns, especially for server and socket passing across processes. |
| 20 | + |
| 21 | +### **`deno compile --bundle` can now resolve worker npm imports outside package scope** (591ff87) |
| 22 | +Bundling worker sources now falls back to npm snapshot resolution for bare specifiers that originate outside the entrypoint’s package tree. This fixes a class of compile failures in dual-tree layouts where worker code lives beside, rather than under, the main package scope. |
| 23 | + |
| 24 | +### **`deno clean` keeps going on locked caches and explains who holds them** (a5b709e) |
| 25 | +On Windows, `deno clean` no longer aborts as soon as it hits a cache database held open by another process. Instead it reports the locked files and, when possible, identifies the process holding them so users can unblock cleanup. |
| 26 | + |
| 27 | +### **`deno serve --watch` now applies import maps to the main module** (9839d3a) |
| 28 | +Watch mode now resolves the entrypoint through the same import-map-aware path as non-watch mode. This fixes bare-specifier entrypoints that previously failed only under `--watch`. |
| 29 | + |
| 30 | +### **`deno add` now accepts npm-style version ranges** (84b80f0) |
| 31 | +The CLI now accepts comparator, range, and OR-range syntax like npm does, instead of rejecting them with specifier-grammar errors. That makes `deno add` usable with a much wider set of package version constraints. |
| 32 | + |
| 33 | +### **`deno bump-version -c` chooses the manifest that actually has a version** (e867d08) |
| 34 | +When `deno.json` and `package.json` live side by side, the bump-version command now prefers the file that contains real version metadata. This fixes the common dual-publish workflow where `deno.json` is only tooling config. |
| 35 | + |
| 36 | +### **`deno bundle` now preserves Node-style CJS interop on browser targets** (181c8e5) |
| 37 | +Browser-targeted bundles now handle dual CJS/ESM packages the same way Node does, avoiding init-time crashes from default-import interop mismatches. This unblocks packages like `tslib` that rely on Node’s CJS semantics. |
| 38 | + |
| 39 | +### **Other misc changes** |
| 40 | +- Fixed interactive `deno update` to show the version requirement instead of the resolved version. |
| 41 | +- Hidden invalid Windows env keys from `Deno.env.toObject()`. |
| 42 | +- Fixed redundant slashes in file specifiers causing runaway import cycles. |
| 43 | +- Added support for `priority` in `RequestInit`. |
| 44 | +- Surfaced unresolved imports in `.d.ts` entrypoints during `deno check`. |
| 45 | +- Stripped trailing `\r` from CLI args so CRLF shebangs work. |
| 46 | +- Improved JSR manifest verification errors. |
| 47 | +- Clearer error when a closed resource-backed stream is still being consumed. |
| 48 | +- Collected re-exported names for `deno test --doc` injection. |
| 49 | +- Fixed UTF-8 replacement behavior in Node `Buffer` decoding. |
| 50 | +- Suppressed peer dependency warnings for overridden packages. |
| 51 | +- Various smaller install, resolver, fs performance, TLS, and test/compatibility fixes. |
0 commit comments