Change8

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