Change8

v2.3.7

📦 denoView on GitHub →
4 features🐛 13 fixes1 deprecations🔧 17 symbols

Summary

This release focuses on enhancing the unstable 'deno bundle' command with new flags and watch mode, alongside extensive bug fixes for Node.js polyfills and import resolution.

Migration Steps

  1. If using Hash or Hmac constructors from the Node.js compatibility layer, transition to crypto.createHash or crypto.createHmac to avoid deprecation warnings.

✨ New Features

  • Added --platform flag to deno bundle (unstable)
  • Added --sourcemap flag to deno bundle (unstable)
  • Added watch mode to deno bundle (unstable)
  • Allow base64 CA certificates in arguments

🐛 Bug Fixes

  • Enable sloppy imports by default when bundling
  • Improve error handling and reporting in deno bundle
  • Transform import.meta.main during bundling
  • Ensure N-API finalizer callbacks are called
  • Fix DiffieHellman constructor behaviors and error types
  • Fix crypto.pbkdf2 and crypto.timingSafeEqual compatibility
  • Add fchmod and fchmodSync to Node.js compatibility layer
  • Implement Certificate API in Node.js compatibility layer
  • Fix assertion error messages in assert.ok and improve assert.ifError
  • Fix handling of indent inside template languages in formatter
  • Allow using import.meta.resolve for non-jsr remote URLs and non-existent files in npm packages
  • Prevent panic when logging from outside a tokio runtime
  • Remove 'self' from global middleware

🔧 Affected Symbols

deno bundlecrypto.Hashcrypto.Hmaccrypto.pbkdf2crypto.timingSafeEqualcrypto.hkdfcrypto.scryptDiffieHellmanfchmodfchmodSyncassert.okassert.ifErrorassert.deepStrictEqualevents.onceimport.meta.resolveimport.meta.mainCertificate

⚡ Deprecations

  • Deprecated Hash and Hmac constructors in ext/node/crypto.