v2.8.2
📦 denoView on GitHub →
✨ 14 features🐛 94 fixes🔧 47 symbols
Summary
This release introduces significant new cryptographic features, enhances the `deno compile` command with bundling improvements and a new --minify flag, and brings numerous fixes across Node.js compatibility, LSP, and Jupyter kernel support.
✨ New Features
- Improved dependency resolution and added --minify flag to `deno compile`.
- Scoped --bundle npm embedding in `deno compile` to only include packages that are actually reached.
- Added ChaCha20-Poly1305, SHAKE, cSHAKE, TurboSHAKE, and SHA-3 HMAC support to ext/crypto.
- Added ML-DSA (FIPS 204) post-quantum signatures support to ext/crypto.
- Implemented ML-KEM (FIPS 203) post-quantum KEM support in ext/crypto.
- Added environment variable/global proxy support for node:http and node:https extensions.
- Support for DENO_SERVE_ADDRESS override in node:http servers.
- Rewrote the Jupyter kernel in JavaScript, removing zeromq/runtimelib dependencies.
- Autocomplete support for jsr:/, npm:/, and node: imports in deno.json(c) files.
- Unfurled import specifiers in Wasm modules during publish.
- Added support for the --env-file flag to tasks.
- Support for exclusion groups in task name wildcards.
- Added the --bundle flag to `deno compile` (unstable feature).
- Bumped deno_task_shell dependency to 0.33.0.
🐛 Bug Fixes
- Handled version tags like `@latest` correctly in `deno add` for JSR packages.
- Replaced panic with an error when deno.json discovery fails.
- Skipped decorator pass during bundling when a module has no decorators.
- Used node-style CJS interop for the Deno platform during bundling.
- Skipped WAL journal mode on WSL-1 for caching.
- EnsureCachedStrategy now surfaces cached redirects.
- Made node:stream/web types alias the globals during type checking.
- Resolved npm packages without types when type checking.
- Suppressed the bug-report banner on broken pipe print panics.
- Ran recursive workspace tasks in parallel.
- Allowed process.chdir() into the VFS during compilation.
- Bundled workers separately when using --bundle.
- Covered CJS-deep imports when using --bundle.
- Created code cache when importing JSON or Wasm modules during compilation.
- Detected svelte-adapter-deno build output.
- Did not surface graph errors for --include files during compilation.
- Embedded workspace package.json files into the VFS during compilation.
- Enabled ANSI colors on Windows in compiled binaries.
- Handled CJS and native addons correctly with --bundle.
- Respected npm registry sub-paths when flattening node_modules.
- Supported workers loaded from blob URLs during compilation.
- Transpiled TypeScript imported at runtime during compilation.
- Hooked up verbatimModuleSyntax for the emit pipeline.
- Made config auto-discovery skip the same errors across all platforms.
- Surfaced invalid "exports" map errors for linked/workspace packages.
- Warned instead of erroring when the start directory is not a workspace member.
- Warned instead of erroring when a workspace member directory is missing.
- Fixed TLA hang on dynamic import when an async dependency triggers lazy ESM load.
- Preserved WebAssembly streaming callback across new contexts.
- Corrected X448 PKCS#8 handling in crypto extension.
- Stopped linting private-type-ref for cross-package types in documentation.
- Handled non-ASCII doc lint diagnostics.
- Degraded gracefully when getKeys throws in ext/console.
- Implemented missing Request properties in ext/fetch.
- Preserved static request body length in ext/fetch.
- Matched V8 stack-arg layout in turbocall trampoline on Apple silicon for ext/ffi.
- Error when copyFile source and destination are the same file in ext/fs.
- Retried file copy without FILE_FLAG_BACKUP_SEMANTICS on Windows when the driver rejects it.
- Surfaced non-UTF-8 file names from read_dir in ext/fs.
- Rejected Response-like return from respondWith in ext/http.
- Rejected Response-like return from serve handler in ext/http.
- Cancelled pending FileResource reads on close in ext/io.
- Cleared error for Windows addons that link against node.exe in ext/napi.
- Disallowed JS execution during napi_new_instance in ext/napi.
- Polyfilled libuv thread + semaphore primitives in ext/napi.
- Polyfilled more libuv symbols from the compat layer in ext/napi.
- Re-enabled 0-RTT support in QUIC.
- Added node:module findPackageJSON export in ext/node.
- Added node:test/reporters builtin in ext/node.
- Added stripTypeScriptTypes export in ext/node.
- Captured IPC handle eagerly to fix cluster send deadlock.
- Covered node:module SourceMap export.
- Disabled repl preview when a custom eval is supplied.
- Dropped bogus Buffer.prototype._isBuffer marker.
- Exported syncBuiltinESMExports from node:module.
- Exposed gc from v8 setFlagsFromString.
- Fixed latin1Slice being too slow.
- Honored windowsHide in child_process spawn.
- Prevented buffer decode detach race.
- Re-exported inner spec for module.exports = require(X).Y.
- Refused sqlite close() while a user callback is running.
- Reported real error code for failed dns.lookup.
- Resolved global cache packages when require referrer is outside DENODIR.
- Routed node:fs.statfs through the FileSystem trait.
- Supported cyclic imports in vm.Module.prototype.link().
- Supported vm dynamic import callback.
- Tolerated unreadable cwd in require._nodeModulePaths.
- Fixed vm dynamic import without callback throwing ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING.
- Forwarded console.group label to inspector log in ext/web.
- Honored PerformanceObserver buffered flag in ext/web.
- Made MessageEvent.ports a frozen array in ext/web.
- Updated markup_fmt to fix quadratic inline CSS formatting.
- Allowed "minimumDependencyAge" object without an "age" field during install.
- Handled pre-existing node_modules symlink on Windows during install.
- Rewrote relative imports/scopes in copied deno.json during install.
- Ran workspace member dependency lifecycle scripts with member INIT_CWD.
- Vendored type-only imports during `deno ci`.
- Exited kernel process after sending shutdown reply in jupyter.
- Kept kernel alive across transient peer disconnects in jupyter.
- Made kernel ZMTP handshake compatible with libzmq.
- Sent transient: {} in execute_result so nbclient doesn't crash.
- Used stable PATH entry for kernel binary path in jupyter.
- Avoided empty import specifier completions in LSP.
- Completed npm package exports in LSP.
- Completed string union literals containing dots in LSP.
- Discovered all tests when names are duplicated in LSP.
- Handled empty jsx completion ranges in LSP.
- Handled parser panics while parsing documents in LSP.
- Honored `moduleResolution: "bundler"` for npm dir imports in LSP.
- Included configured dependencies in auto-imports in LSP.
- Limited node_modules auto-import aliasing in LSP.
- Merged duplicate completion imports in LSP.
- Preserved URL extensions in `typeof import(...)` hovers in LSP.
- Recovered from TSC isolate OOM instead of crashing the language server.
Affected Symbols
deno compiledeno addnode:httpnode:httpsdeno.json(c)Wasm modulestaskdeno_task_shellnode:stream/webnpm packagesprocess.chdir()workersCJS importsJSON modulesWasm modulessvelte-adapter-denopackage.jsonblob URLsTypeScriptverbatimModuleSyntaxlinked packagesworkspace packagesdyn importWebAssembly streaming callbackX448 PKCS#8Request propertiesPerformanceObserverMessageEvent.portsmarkup_fmtminimumDependencyAgenode_modules symlinkdeno.jsonworkspace member dependency lifecycle scriptsnode:modulenode:test/reportersBuffer.prototype._isBuffergcv8 setFlagsFromStringlatin1Slicechild_process spawndns.lookupnode:fs.statfsFileSystem traitvm.Module.prototype.link()vm dynamic importconsole.grouptypeof import(...)