v2.2.9
📦 denoView on GitHub →
✨ 9 features🐛 12 fixes🔧 13 symbols
Summary
This release improves 'deno compile' stability, expands Node.js API compatibility (including fs streams and Buffer methods), and adds shell features like tilde expansion to 'deno task'. It also resolves a critical regression regarding native Node addons on macOS.
Migration Steps
- Run 'deno upgrade' to update to the latest version.
- If using native Node addons on macOS that failed in recent versions, re-run with this update to restore N-API symbol support.
✨ New Features
- Node.js Compatibility: Added fs/promises FileHandle.createReadStream() and .createWriteStream().
- Node.js Compatibility: Added Buffer.copyBytesFrom() static method.
- Node.js Compatibility: Added process.loadEnvFile(path).
- Node.js Compatibility: util.parseArgs() now supports negated flags via allowNegative option.
- Node.js Compatibility: stream.finished() now supports Web Streams.
- Node.js Compatibility: spawnSync now accepts the input option.
- Task Runner: deno task now supports backticks and tilde (~) expansion.
- Package Management: Unstable ability to load npm resolution snapshot directly from lockfile for faster startup.
- LSP: Added decorators to the lint AST.
🐛 Bug Fixes
- Fixed panic in deno compile when a node_modules directory was included.
- Fixed Windows executable icon embedding in deno compile to preserve multi-resolution resource ordering.
- Fixed regression on macOS where N-API symbols were stripped, breaking native Node addons.
- Fixed regression where npm postinstall scripts without extensions were skipped.
- Fixed Node.js Compatibility: Cipher methods now correctly return a Node Buffer object.
- Fixed Node.js Compatibility: Added hyphenated aliases for SHAKE-128 and SHAKE-256 algorithms.
- Fixed Node.js Compatibility: Event loop delay histogram .reset() is now functional.
- Fixed Node.js Compatibility: Improved descriptiveness of zlib errors.
- Fixed npm package management to handle missing 'bin' in package.json using registry metadata.
- Fixed integer overflow in createImageBitmap().
- Fixed LSP to filter out unmapped npm cache paths from auto-imports.
- Fixed canary panic URLs to include full Git commit SHA for better symbolication.
🔧 Affected Symbols
deno compiledeno taskfs.promises.FileHandle.createReadStreamfs.promises.FileHandle.createWriteStreamutil.parseArgsBuffer.copyBytesFromBufferprocess.loadEnvFileprocess.dlopenstream.finishedspawnSynccreateImageBitmaplibffi