diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 68f9449d..a3a12f49 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "5.7.0" + ".": "6.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 29fb5f7e..827fe48d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,58 @@ All notable changes to this project are documented here. Releases and this changelog are managed by [Release Please](https://github.com/googleapis/release-please). +## [6.0.0](https://github.com/mastermunj/to-words/compare/v5.7.0...v6.0.0) (2026-08-23) + + +## [6.0.0](https://github.com/mastermunj/to-words/compare/v5.7.0...v6.0.0) (2026-08-23) + +### ⚠ BREAKING CHANGES + +- Language-only locale tags now resolve to explicit regional defaults, including + `en` → `en-US`, `es` → `es-ES`, `pt` → `pt-BR`, and `sw` → `sw-KE`. +- Initialized locale configurations are recursively frozen. Applications can + inspect locale configuration, but can no longer mutate it after initialization. +- Public numeric utilities now use stricter, decimal-safe semantics for + `toFixed()`, `isFloat()`, and `isNumberZero()`. +- The CLI now rejects unknown options, repeated locale options, and conflicting + conversion modes. +- `LocaleManifestEntry` now requires generated numbering-system and named-range + metadata. +- Invalid custom locale configurations that violate conversion invariants are + now rejected. + +See the [v6 migration guide](https://github.com/mastermunj/to-words/blob/main/MIGRATION.md) +for upgrade instructions. + +### Features + +- Add a compact locale capability manifest without loading conversion tables. +- Add public locale-contract validation for custom locale authors. +- Add generated numbering-system, grouping, named-range, and capability metadata. +- Add executable locale conformance and quality gates. +- Generate locale capability and quality documentation from shipped configuration. + +### Bug Fixes + +- Preserve exact large-number input and decimal precision without slowing hot paths. +- Apply decimal-safe currency rounding and preserve negative sub-unit signs. +- Correct Spanish ordinal gender behavior. +- Reset formal locale state between conversions. +- Enforce deterministic locale-table and conversion contracts. + +### Performance Improvements + +- Initialize per-locale functional helper instances lazily. +- Mark package modules as side-effect free for better tree-shaking. +- Reduce the full UMD bundle from 69.72 KiB to 68.46 KiB gzip. +- Add enforced gzip size budgets for the full and per-locale bundles. + +### Release Quality + +- Verify generated documentation, ESM and CommonJS entry points, runtime behavior, + package contents, and bundle-size budgets before publishing. +- Preserve 100% test coverage across the complete test suite. + ## [5.7.0](https://github.com/mastermunj/to-words/compare/v5.6.1...v5.7.0) (2026-08-02) ### Features diff --git a/package-lock.json b/package-lock.json index 80e950e5..28925217 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "to-words", - "version": "5.7.0", + "version": "6.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "to-words", - "version": "5.7.0", + "version": "6.0.0", "license": "MIT", "bin": { "to-words": "dist/cjs/cli.js" diff --git a/package.json b/package.json index e39dd69e..915fca9c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "to-words", - "version": "5.7.0", + "version": "6.0.0", "description": "Convert numbers to words in 135 locales with currency, ordinal, and BigInt support (TypeScript, ESM/CJS/UMD).", "keywords": [ "amount in words",