Change8

v2.7.2

📦 denoView on GitHub →
3 features🐛 43 fixes🔧 31 symbols

Summary

This release brings significant stability improvements across crypto, installation, and Node.js compatibility, including an upgrade to V8 14.6 and fixes for coverage reporting and environment variable loading.

✨ New Features

  • Upgraded to v8 version 14.6.
  • Fixed require() behavior for ESM modules.
  • Improved libuv compatibility.

🐛 Bug Fixes

  • Fixed ordering of platforms in ecosystem_compat_slack checks.
  • Fixed loading multiple environment files to respect correct order.
  • Fixed storing self-extracting directory in a hidden directory beside the executable during compilation.
  • Fixed storing Global<Context> pointer for libuv-compat callbacks.
  • Corrected line and branch counts in coverage reports.
  • Now warns instead of erroring when source files are missing during coverage analysis.
  • Fixed support for iterators in console.table.
  • Fixed P-521 EC key export for all formats in crypto extension.
  • Fixed handling of wrong algorithms in subtle.importKey without panicking.
  • Fixed CBC decipher setAutoPadding(false) incorrectly stripping bytes in node extension.
  • Fixed graceful exit on invalid NODE_CHANNEL_FD instead of panicking in node extension.
  • Fixed emoji width handling in readline in node extension.
  • Implemented KeyObject.equals and fixed createCipheriv with KeyObject/null IV in node extension.
  • Implemented missing X509Certificate methods in node extension.
  • Made execPath named export a real string in node extension.
  • Made setAutoPadding(false) a no-op for GCM ciphers in node extension.
  • Made fsPromises.watch() a proper AsyncIterable with close() in node extension.
  • Provided CJS globals in worker_threads eval mode in node extension.
  • Fixed conflict callback field typo in node extension.
  • Fixed returning the first created path from recursive "node:fs" mkdir call.
  • Fixed support for DER-encoded keys in publicEncrypt/privateDecrypt.
  • Fixed support for Ed25519, X25519, and P-521 keys in X509Certificate.publicKey.
  • Fixed support for RSA PSS padding option in crypto sign/verify.
  • Fixed support for SEC1 EC private key import/export in `node:crypto`.
  • Fixed support for process.stdout resize events.
  • Used internal compileFunction binding in CJS wrap.
  • Prevented panic if lockfile incorrectly indicates a package has a bin.
  • Global install no longer warns about using node_modules dir for npm specifiers.
  • Fixed handling of shutdown and interrupt requests per protocol in jupyter extension.
  • Implemented resolveObjectURL for node:buffer.
  • Implemented process.umask properly.
  • Preserved AsyncLocalStorage context in stream.finished callback.
  • Fixed support for ECDSA with secp256k1 in node:crypto.
  • Fixed base64 decoding for strings with hyphens in node/buffer.
  • Fixed handling of empty input in decipher final with auto_pad=false.
  • Fixed support for vm.constants.DONT_CONTEXTIFY in createContext.
  • Ensured NPM_CONFIG_REGISTRY correctly overrides .npmrc.
  • Fixed peerDependency resolution leading to multiple versions being installed + hanging.
  • Deduplicated discovered workspace test modules.
  • Fixed some stack frame dimming and aligned console log output with CLI formatting.
  • Ensured process level environment variables take precedence over env files.
  • Validated cron schedule when using cron socket.
  • Escaped simple quotes in node:child_process.

Affected Symbols

deno v2.7.2 - Change8