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
require(esm)console.tablecrypto.exportKeysubtle.importKeycrypto.decipherNODE_CHANNEL_FDreadlineKeyObject.equalscreateCipherivX509CertificateexecPathsetAutoPaddingfsPromises.watchworker_threads.evalnode:fspublicEncrypt/privateDecryptX509Certificate.publicKeycrypto sign/verifynode:cryptoprocess.stdoutcompileFunctionnode:bufferprocess.umaskAsyncLocalStoragestream.finishednode/bufferdecipher finalvm.constants.DONT_CONTEXTIFYNPM_CONFIG_REGISTRY.npmrcnode:child_process