·
78 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Breaking changes
- Requires Node.js 24 or higher.
What's new
Tooling & infrastructure
- Migrated from npm to pnpm
- Replaced XO linter with Biome
- Replaced AVA with the built-in Node.js test runner (
node:test) - Replaced c8 with native Node.js test coverage
- Replaced ts-node with native Node.js type stripping
- Modern TypeScript config (nodenext, ES2024, strict, declaration maps)
- Added Changesets for versioning
- Added autonomous npm release workflow with provenance
- Added Renovate for automated dependency updates
- Removed Travis CI, editorconfig, and del-cli
Code
- Replaced
hasKeyutility withObject.hasOwn()(#18) - Added proper validation for
NaNandInfinityamounts – now throws aTypeErrorinstead of producing misleading error messages (closes #18) - All errors now use
TypeErrorwhere applicable - Extracted parser regex to a named constant
- Removed parameter reassignment in
convert()
Documentation
- Replaced currency.js example with built-in
Intl.NumberFormat - Updated floating point section to accurately describe the
*100/100trick and its limitations - Added AI disclosure section
- Fixed incorrect link in big.js section (closes #25)
- Updated badges (removed XO, Bundlephobia; added CI from GitHub Actions)
- Switched funding from OpenCollective to GitHub Sponsors
Packaging
- Modern
exportsfield withtypescondition - Removed
authorfield from package.json - Updated license year
Full diff: 3.0.1...v4.0.0