github formatjs/formatjs @formatjs/intl-pluralrules@6.3.14
@formatjs/intl-pluralrules: 6.3.14

6.3.14 (2026-09-10)

What's Changed

  • fix(@formatjs/intl-datetimeformat): apply Date method defaults by @longlho in #6893
  • chore: release main by @longlho in #6894
  • fix(@formatjs/unplugin): parse module ids with queries by @longlho in #6896
  • chore: release main by @longlho in #6898
  • fix: repair corrupted patches/typescript@7.0.2.patch by @andersk in #6929
  • fix(babel-plugin-formatjs): stop enabling JSX syntax implicitly by @andersk in #6930
  • test(@formatjs/intl-datetimeformat): cover ar-EG locale data by @longlho in #6933
  • feat: upgrade CLDR to 48.2.0 by @longlho in #6934
  • fix(@formatjs/intl): include context in missing id errors by @longlho in #6935
  • fix(deps): make native release deps host-independent by @longlho in #6936
  • fix(icu-messageformat-parser): preserve plural context in tags by @eoinest in #6908
  • chore: release main by @longlho in #6932
  • fix(formatjs_cli): extract id-only messages by @longlho in #6962
  • chore: release main by @longlho in #6955
  • docs: add internationalization best practices by @longlho in #6972
  • docs: add i18n best practices skill by @longlho in #6973
  • feat(formatjs_icu_messageformat): add Rust message formatter by @longlho in #6974
  • feat(formatjs_intl): add Rust intl runtime by @longlho in #6975
  • chore: release main by @longlho in #6977
  • Documented how to use ember-intl by @ijlee2 in #6946
  • fix: support Rust 1.92 in new intl crates by @longlho in #6978
  • chore: release main by @longlho in #6979
  • fix: queue crate release workflows by @longlho in #6980
  • docs: document Rust support by @longlho in #6981
  • feat(formatjs_intl): add message fallbacks by @longlho in #6982
  • feat(formatjs_intl): support precompiled catalogs by @longlho in #6985
  • chore: release main by @longlho in #6984
  • build: remove root npmrc by @longlho in #6988
  • fix: skip unpublished Rust crates by @longlho in #6992
  • fix: handle Cargo publish and merge options by @longlho in #6993
  • fix(formatjs_cli): fail on input resolution errors by @longlho in #7005
  • feat(formatjs_intl): add extractable format_message macro by @longlho in #7018
  • chore: release main by @formatjsproject in #6997
  • feat(formatjs_intl): accept inline named values by @longlho in #7031
  • chore(deps): exclude Renovate from release notes by @longlho in #7030
  • feat(eslint-plugin-formatjs): detect glued placeholders by @longlho in #7036
  • docs: cover units and calendar names in i18n skill by @longlho in #7042
  • chore: release main by @formatjsproject in #7037
  • fix(@formatjs/cli-lib): use native extraction by @longlho in #7046
  • fix: recover partial npm releases by @longlho in #7053
  • chore: release main by @formatjsproject in #7047
  • docs: sync i18n best practices skill and guide by @longlho in #7062
  • feat: add localization review and translation skills by @longlho in #7065
  • docs: add top-level skills section by @longlho in #7066
  • refactor: replace Vike with static Vite docs by @longlho in #7068
  • docs: add agent skills overview by @longlho in #7069
  • docs: document native date range formatting by @longlho in #7070
  • test: add local Codex skill evals by @longlho in #7071
  • feat(eslint-plugin-formatjs): allow conditional ICU element blocklists by @longlho in #7073
  • chore: release main by @formatjsproject in #7064
  • test: use neutral brands in skill evals by @longlho in #7090
  • feat(formatjs_cli): extract messages from Python by @longlho in #7097
  • fix: tighten formatted value placeholder guidance by @longlho in #7099
  • fix: retain binary-only Cargo release candidates by @longlho in #7102
  • chore: release main by @formatjsproject in #7079
  • fix: enable Git long paths for Windows release by @longlho in #7105
  • build: cross-compile release artifacts on Linux by @longlho in #7106
  • build: add Python native wheel scaffolding by @longlho in #7108
  • build: migrate to bazel_lib by @longlho in #7109
  • feat: add Python bindings for Rust intl packages by @longlho in #7111
  • fix: configure Python Release Please strategy by @longlho in #7114
  • fix: bootstrap Python package versions by @longlho in #7117
  • build(deps): regenerate Bazel lockfile in Renovate updates by @longlho in #7119
  • chore: release main by @formatjsproject in #7107
  • build(deps): align Renovate Bazel lock command by @longlho in #7122
  • build: cross-compile Python release wheels by @longlho in #7121
  • fix: rename Python intl distribution by @longlho in #7123
  • fix: validate released Python versions by @longlho in #7125
  • feat(formatjs_cli): extract Python format_message calls by @longlho in #7129
  • feat(formatjs_intl): align Python runtime fallback by @longlho in #7130
  • chore: release main by @formatjsproject in #7133
  • build(deps): update Bazel lockfiles for Renovate PRs by @longlho in #7135
  • build(deps): publish dispatched Renovate check results by @longlho in #7136
  • build(deps): publish Renovate required statuses by @longlho in #7137
  • fix(eslint-plugin-formatjs): align message recognition across tools by @longlho in #7151
  • fix(babel-plugin-formatjs): support transparent expression wrappers by @longlho in #7156
  • chore: release main by @formatjsproject in #7138
  • 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/intl-pluralrules@6.3.13...@formatjs/intl-pluralrules@6.3.14

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @formatjs/intl-localematcher bumped to 0.8.14

Don't miss a new formatjs release

NewReleases is sending notifications on new releases.