1.6.2 (2026-09-10)
What's Changed
- fix(formatjs_cli): extract messages from tagged template literals by @vpontis in #7182
- docs: track ECMA-402 draft polyfill audit by @longlho in #7185
- docs: link ECMA-402 audit fixes and validation by @longlho in #7200
- codex/ecma402 coercion by @longlho in #7186
- fix(@formatjs/intl-supportedvaluesof): coerce keys before lookup by @longlho in #7187
- fix(@formatjs/intl-listformat): follow the string iterator protocol by @longlho in #7189
- fix(deps): negotiate well-formed numbering system options by @longlho in #7190
- fix(@formatjs/intl-collator): validate collation and comparison inputs by @longlho in #7191
- fix(@formatjs/intl-datetimeformat): reject offsets containing seconds by @longlho in #7192
- fix(@formatjs/intl-displaynames): validate and canonicalize display codes by @longlho in #7193
- fix(@formatjs/intl-durationformat): validate duration records exactly by @longlho in #7194
- fix(@formatjs/intl-locale): canonicalize weekday and numeric options by @longlho in #7195
- fix(@formatjs/intl-locale): align week info with ECMA-402 by @longlho in #7196
- fix(@formatjs/intl-pluralrules): align draft options and ranges by @longlho in #7197
- fix(@formatjs/intl-segmenter): preserve iterator progress and locale by @longlho in #7198
- fix(@formatjs/intl-getcanonicallocales): follow locale-list coercion by @longlho in #7199
- fix(@formatjs/intl-numberformat): accept callable option objects by @longlho in #7201
- fix(@formatjs/intl-segmenter): reject coerced BigInt indices by @longlho in #7202
- test(@formatjs/intl-numberformat): enforce Test262 result accounting by @longlho in #7209
- test(@formatjs/intl-numberformat): cover complete current Test262 suites by @longlho in #7210
- fix(@formatjs/intl-numberformat): omit NaN sign with exceptZero by @longlho in #7212
- test: use generated Test262 harness rules by @longlho in #7216
- fix(@formatjs/intl-numberformat): reject undefined range endpoints by @longlho in #7226
- fix(@formatjs/intl-numberformat): preserve Symbol coercion errors by @longlho in #7227
- codex/test262 numberformat option validation by @longlho in #7228
- fix(@formatjs/intl-listformat): preserve language data when loading root locale by @longlho in #7229
- fix(@formatjs/intl-locale): enforce internal receiver branding by @longlho in #7231
- fix(@formatjs/intl-collator): match built-in function descriptors by @longlho in #7232
- fix(@formatjs/intl-numberformat): make built-in methods non-constructible by @longlho in #7233
- fix(@formatjs/intl-numberformat): account for significant precision in rounding magnitude by @longlho in #7234
- fix(@formatjs/intl-numberformat): validate internal receiver branding by @longlho in #7235
- fix(@formatjs/intl-datetimeformat): truncate fractional timestamps toward zero by @longlho in #7236
- fix(@formatjs/intl-datetimeformat): match built-in method metadata by @longlho in #7238
- test(deps): run Test262 with stable Temporal support by @longlho in #7240
- fix(@formatjs/intl-durationformat): match built-in metadata and option order by @longlho in #7241
- fix(@formatjs/intl-durationformat): display the duration sign once by @longlho in #7242
- fix(@formatjs/intl-durationformat): preserve exact numeric duration formatting by @longlho in #7243
- fix(@formatjs/intl-durationformat): propagate numeric unit styles by @longlho in #7244
- fix(@formatjs/intl-durationformat): retain zero minutes between numeric fields by @longlho in #7245
- fix(@formatjs/intl-localematcher): preserve supported requested locale tags by @longlho in #7247
- fix(@formatjs/intl-supportedvaluesof): make the built-in non-constructible by @longlho in #7248
- fix(@formatjs/intl-numberformat): preserve resolved option property order by @longlho in #7249
- fix(@formatjs/intl-relativetimeformat): isolate internal formatter options by @longlho in #7250
- fix(@formatjs/intl-localematcher): isolate locale resolution records by @longlho in #7251
- fix(@formatjs/intl-locale): use standard locale tag coercion by @longlho in #7252
- fix(@formatjs/intl-locale): support the variants constructor option by @longlho in #7253
- fix(@formatjs/intl-locale): canonicalize before applying locale overrides by @longlho in #7254
- fix(@formatjs/intl-locale): minimize maximized locale components by @longlho in #7255
- feat(@formatjs/editor): add headless React 19 editor with StyleX UI by @longlho in #7223
- fix(@formatjs/intl-locale): honor region preference priority by @longlho in #7257
- fix(@formatjs/intl-locale): expose canonical option values by @longlho in #7258
- fix(@formatjs/intl-locale): follow likely-subtag lookup order by @longlho in #7259
- fix(@formatjs/intl-durationformat): resolve supported numbering systems by @longlho in #7260
- fix(@formatjs/intl-durationformat): accept Temporal duration inputs by @longlho in #7261
- fix(@formatjs/intl-displaynames): accept extended language subtags by @longlho in #7262
- fix(@formatjs/intl-supportedvaluesof): include fixed-offset time zones by @longlho in #7263
- fix(@formatjs/intl-collator): preserve locale punctuation defaults by @longlho in #7264
- fix(@formatjs/intl-collator): exclude root from locale negotiation by @longlho in #7265
- fix(@formatjs/intl-localematcher): respect Unicode extension boundaries by @longlho in #7266
- fix(@formatjs/intl-collator): resolve canonical collation types by @longlho in #7267
- fix(@formatjs/intl-collator): select search collation tailoring by @longlho in #7268
- feat(@formatjs/editor): add headless translation workflow by @pgonsolin in #7157
- fix(@formatjs/intl-supportedvaluesof): probe locale-specific collations by @longlho in #7269
- fix(@formatjs/intl-datetimeformat): handle exact date range boundaries by @longlho in #7270
- fix(@formatjs/intl-datetimeformat): validate receiver internal slots by @longlho in #7271
- fix(@formatjs/intl-datetimeformat): align option property metadata by @longlho in #7272
- fix(@formatjs/intl-datetimeformat): format year zero in the BC era by @longlho in #7273
- fix(@formatjs/intl-datetimeformat): normalize timezone inputs by @longlho in #7274
- fix(@formatjs/intl-datetimeformat): isolate option records by @longlho in #7275
- fix(@formatjs/intl-datetimeformat): support all hour-cycle options by @longlho in #7276
- fix(@formatjs/intl-datetimeformat): select independent hour12 preferences by @longlho in #7277
- fix(@formatjs/intl-getcanonicallocales): canonicalize locale extensions by @longlho in #7278
- fix(@formatjs/intl-getcanonicallocales): resolve subdivision aliases by @longlho in #7279
- fix(@formatjs/intl-getcanonicallocales): apply compound language aliases by @longlho in #7280
- fix(@formatjs/intl-getcanonicallocales): append list elements directly by @longlho in #7281
- codex/editor es2016 compatibility by @longlho in #7286
- test(deps): cover combined polyfill installation by @longlho in #7282
- test(deps): load required Test262 locale fixtures by @longlho in #7284
- fix(@formatjs/intl-getcanonicallocales): preserve RegExp statics by @longlho in #7287
- fix(@formatjs/intl-displaynames): use canonical calendar data keys by @longlho in #7288
- fix(@formatjs/intl-numberformat): isolate internal plural options by @longlho in #7290
- fix(@formatjs/intl-numberformat): honor locale grouping minimums by @longlho in #7291
- fix(@formatjs/intl-datetimeformat): reuse parsed pattern fields by @longlho in #7292
- fix(@formatjs/intl-datetimeformat): match hourless time requests by @longlho in #7293
- fix(@formatjs/intl-datetimeformat): support ISO calendar negotiation by @longlho in #7294
- fix(@formatjs/intl-pluralrules): generate compact exponent data by @longlho in #7295
- fix(formatjs_cli): preserve IDs for empty descriptions by @longlho in #7296
- fix(@formatjs/intl-datetimeformat): compare ranges at displayed precision by @longlho in #7297
- fix(@formatjs/intl-datetimeformat): format flexible day periods by @longlho in #7298
- fix(deps): preserve polyfill locale data during registration by @longlho in #7299
- fix(@formatjs/intl-segmenter): register CLDR locale coverage by @longlho in #7300
- fix(@formatjs/intl-numberformat): preserve range separators and affixes by @longlho in #7301
- fix(@formatjs/intl-numberformat): place approximate signs in locale patterns by @longlho in #7302
- fix(@formatjs/intl-numberformat): share signs with range unit suffixes by @longlho in #7303
- fix(@formatjs/intl-numberformat): repair benchmark entrypoints by @longlho in #7304
- fix(@formatjs/intl-numberformat): preserve supplementary digits when grouping by @longlho in #7305
- fix(@formatjs/intl-numberformat): generate complete CLDR digit mappings by @longlho in #7306
- feat(@formatjs/editor): publish headless editor package by @longlho in #7285
- fix(deps): consolidate polyfill conformance and performance fixes by @longlho in #7320
- fix(@formatjs/editor): bootstrap the headless editor release by @longlho in #7321
New Contributors
- @pgonsolin made their first contribution in #7157
Full Changelog: formatjs_cli_v1.6.1...formatjs_cli_v1.6.2
Binaries
- macOS Apple Silicon:
formatjs_cli-darwin-arm64 - Linux ARM64:
formatjs_cli-linux-arm64 - Linux x86_64:
formatjs_cli-linux-x64 - Windows x64:
formatjs_cli-win32-x64.exe
Installation
# macOS (Apple Silicon)
curl -LO https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.6.2/formatjs_cli-darwin-arm64
chmod +x formatjs_cli-darwin-arm64
sudo mv formatjs_cli-darwin-arm64 /usr/local/bin/formatjs
# Linux
curl -LO https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.6.2/formatjs_cli-linux-x64
chmod +x formatjs_cli-linux-x64
sudo mv formatjs_cli-linux-x64 /usr/local/bin/formatjs
# Linux ARM64
curl -LO https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.6.2/formatjs_cli-linux-arm64
chmod +x formatjs_cli-linux-arm64
sudo mv formatjs_cli-linux-arm64 /usr/local/bin/formatjs# Windows x64 (PowerShell)
curl.exe -LO https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.6.2/formatjs_cli-win32-x64.exeVerification
Verify the checksums:
curl -LO https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v1.6.2/checksums.txt
shasum -a 256 -c checksums.txt