Change8

v2.7.0

📦 denoView on GitHub →
18 features🐛 29 fixes🔧 26 symbols

Summary

This release introduces significant new CLI features like `deno create`, enhanced npm compatibility via overrides and module directory support, and stabilizes the Temporal API. Numerous bug fixes target Node.js compatibility, LSP resolution, and auditing.

✨ New Features

  • Added `--ignore` flag to `deno audit` to filter advisories by CVE ID.
  • Added `--check-js` flag to `deno check`.
  • Added `--save-exact`/`--exact` flag to `deno add` and `deno install` commands.
  • Added `deno create` command.
  • Added `--self-extracting` flag to `deno compile`.
  • Support for `include` and `exclude` in deploy configuration.
  • Added `--keep-names` flag to `deno ext/bundle`.
  • Added brotli support to `CompressionStream` and `DecompressionStream` in `deno ext/web`.
  • Added `--fail-fast` flag to `deno fmt --check`.
  • Added `tryLock(exclusive?: boolean): Promise<boolean>` to `FsFile` in `deno fs`.
  • Support for `--node-modules-dir` for global installs (`-g`) and using a manual node_modules directory for `npm:` specifiers in `deno install`.
  • Turned off failglob by default for `deno task`.
  • Added unstable APIs: `Deno.spawn()`, `Deno.spawnAndWait{Sync}()`.
  • Cached downloaded binaries for `deno upgrade`.
  • Added support for `deno create jsr:<package>` and `deno init --jsr <package>`.
  • Added `navigator.platform`.
  • Implemented npm overrides support.
  • Stabilized Temporal API.

🐛 Bug Fixes

  • Gracefully handled malformed response in `deno audit`.
  • Properly handled npm registries in subpaths for `deno audit`.
  • Let esbuild handle data URLs in `deno bundle`.
  • Used noble apt repo for LLVM 21 packages in CI.
  • Fixed `createServer().listen().address()` returning port 0 in `node:http`.
  • Improved compatibility for `util.parseEnv` and `process.loadEnvFile` in `node`.
  • Added `host_arch` to `process.config.variables` in `node`.
  • Added `openAsBlob` export to `node:fs`.
  • Added missing `process.constrainedMemory()` API in `node`.
  • Enabled test-stdio-closed tests in `node`.
  • Enabled test-zlib-invalid-input-memory and test-zlib-un... tests in `node`.
  • Handled shell redirections in `child_process exec` in `node`.
  • Implemented timeout and killSignal for `spawn()` in `node`.
  • Improved process event handling and added missing APIs in `node`.
  • Preserved streaming body on stale keepalive retry in `node`.
  • Removed `fs.promises.fstat` as it is not a public Node.js API.
  • Supported URL in `child_process.fork` modulePath in `node`.
  • Supported ipv6 host in `node:http`.
  • Supported `--allow-scripts` with `deno install -g --compile ...`.
  • Implemented remaining tsgo resolver callbacks in LSP.
  • Qualified diagnostic source and message from tsgo in LSP.
  • Improved typescript-go basic resolution in LSP.
  • Preserved AsyncLocalStorage context in unhandledRejection handlers in `node`.
  • Fixed `latin1Slice` and `hexSlice` returning wrong results in `node/buffer`.
  • Allowed `/proc/pressure/*` files with `--allow-read` permission.
  • Fixed `deno install --force --compile` behavior.
  • Fixed detection of bound require reexports in CJS analysis.
  • Formatted WASM stack traces correctly, preserved context in unhandled rejection, and improved cppgc inheritance performance.
  • Formatted WASM stack traces per W3C spec.

Affected Symbols