# Changelog ## 2026-05-01 - 6.1.0 - feat(smartenv) add Bun and Deno OS detection support and update test runtime compatibility - extends async OS detection helpers to work in Bun and Deno by loading the appropriate os module for each runtime - improves runtime-specific typings and safe global access for Deno, Bun, and importScripts usage - updates tests to export tap.start(), rename the browser test target to chromium, and clean up console output for newer test tooling - refreshes build and test tooling configuration and package metadata for the current release workflow ## 2025-11-01 - 6.0.0 - BREAKING CHANGE(Smartenv) Add Deno and Bun runtime detection, introduce getSafeModuleFor API, update docs and tests, and make isNode semantics Node-only (breaking change) - Implement runtime detection for Deno and Bun; runtimeEnv now returns one of 'node' | 'deno' | 'bun' | 'browser'. - Change isNode to be true only for Node.js; add isDeno and isBun accessors. This is a breaking change in behavior for code that relied on isNode including Deno/Bun. - Add getSafeModuleFor(target, moduleNameOrUrl, getFunction?) API to load modules conditionally for single, multiple or 'server' runtimes. Existing helpers getSafeNodeModule and getSafeWebModule updated to work with wider runtimes. - Add runtime-specific version getters (nodeVersion, denoVersion, bunVersion) and update printEnv output accordingly. - Expand and add tests for Node, Deno, Bun and Browser environments (tests/* files). - Update documentation (readme.md and readme.hints.md) to describe detection order, new API and migration notes from 4.x to 5.x/6.x. - Bump devDependencies (tsbuild, tsrun, tstest) and include an updated deno.lock. ## [5.0.13] - 2025-07-28 ### Fixed - Updated readme.md with comprehensive documentation including API reference, core features, and usage examples - Added readme.hints.md with architecture and implementation details for future reference - Improved documentation structure and clarity