github formatjs/formatjs @formatjs/cli-lib@10.0.0
@formatjs/cli-lib: 10.0.0

10.0.0 (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

Full Changelog: https://github.com/formatjs/formatjs/compare/@formatjs/cli-lib@9.0.9...@formatjs/cli-lib@10.0.0

Dependencies

  • The following workspace dependencies were updated
    • optionalDependencies
      • @formatjs/cli-native-darwin-arm64 bumped to 1.1.18
      • @formatjs/cli-native-linux-arm64 bumped to 1.2.18
      • @formatjs/cli-native-linux-arm64-musl bumped to 1.0.16
      • @formatjs/cli-native-linux-x64 bumped to 1.1.18
      • @formatjs/cli-native-linux-x64-musl bumped to 1.0.16
      • @formatjs/cli-native-win32-x64 bumped to 1.1.19

Don't miss a new formatjs release

NewReleases is sending notifications on new releases.