-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Comparing changes
Open a pull request
base repository: formatjs/formatjs
base: @formatjs/intl-numberformat@9.0.5
head repository: formatjs/formatjs
compare: main
- 16 commits
- 51 files changed
- 2 contributors
Commits on Dec 19, 2025
-
fix(@formatjs/utils): fix ESM imports (#5596)
### TL;DR Convert JSON data files to TypeScript modules with proper typing for better type safety and module compatibility. ### What changed? - Changed file extensions from `.json` to `.ts` for generated data files: - `defaultCurrencyData.generated.json` → `defaultCurrencyData.generated.ts` - `defaultLocaleData.generated.json` → `defaultLocaleData.generated.ts` - `currencyMinorUnits.generated.json` → `currencyMinorUnits.generated.ts` - `iso3166Alpha3CountryCodes.json` → `iso3166Alpha3CountryCodes.ts` - Updated the Bazel build configuration to reflect these file extension changes - Modified import statements to use default exports instead of JSON imports with type annotations: - Changed `import * as data from './file.json' with {type: 'json'}` to `import data from './file.js'` - Updated generator scripts to output TypeScript files with proper type annotations (`as const`) - Added comments to generated files indicating they shouldn't be edited directly ### How to test? 1. Run the build process to ensure all generated files are created correctly 2. Verify that imports work properly in the codebase 3. Check that TypeScript type checking passes without errors 4. Ensure functionality remains the same by testing currency and locale-related utilities ### Why make this change? This change improves the codebase by: 1. Providing better TypeScript type safety with `as const` assertions 2. Eliminating the need for JSON import assertions which are less standard 3. Making the code more maintainable with proper module exports 4. Ensuring better compatibility with modern JavaScript module systems 5. Improving developer experience with better type checking and IDE support GitHub: #Configuration menu - View commit details
-
Copy full SHA for 9580a68 - Browse repository at this point
Copy the full SHA 9580a68View commit details -
Configuration menu - View commit details
-
Copy full SHA for d556a34 - Browse repository at this point
Copy the full SHA d556a34View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e6e19a - Browse repository at this point
Copy the full SHA 2e6e19aView commit details
Commits on Dec 20, 2025
-
chore(deps): update dependency tsd to ^0.33.0 (#5592)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [tsd](https://redirect.github.com/tsdjs/tsd) | [`^0.32.0` -> `^0.33.0`](https://renovatebot.com/diffs/npm/tsd/0.32.0/0.33.0) |  |  | --- ### Release Notes <details> <summary>tsdjs/tsd (tsd)</summary> ### [`v0.33.0`](https://redirect.github.com/tsdjs/tsd/releases/tag/v0.33.0) [Compare Source](https://redirect.github.com/tsdjs/tsd/compare/v0.32.0...v0.33.0) - Update to TypeScript 5.9 [`128fb5e`](https://redirect.github.com/tsdjs/tsd/commit/128fb5e) *** </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for fada616 - Browse repository at this point
Copy the full SHA fada616View commit details -
chore(deps): update dependency rules_nodejs to v6.6.2 (#5575)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rules_nodejs](https://redirect.github.com/bazel-contrib/rules_nodejs) | bazel_dep | minor | `6.4.0` -> `6.6.2` | --- ### Release Notes <details> <summary>bazel-contrib/rules_nodejs (rules_nodejs)</summary> ### [`v6.6.2`](https://redirect.github.com/bazel-contrib/rules_nodejs/releases/tag/v6.6.2) #### Using Bzlmod with Bazel 6 or greater 1. (Bazel 6 only) Enable with `common --enable_bzlmod` in `.bazelrc`. 2. Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_nodejs", version = "6.6.2") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE.bazel` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_nodejs", sha256 = "3c9e09932f6e35a36fd247e0f31c22bdad9dc864f18d324bb42595e5cc79be0b", strip_prefix = "rules_nodejs-6.6.2", url = "https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.6.2/rules_nodejs-v6.6.2.tar.gz", ) ``` #### What's Changed - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3878](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3878) - Remove target constraint by [@​guw](https://redirect.github.com/guw) in [#​3879](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3879) **Full Changelog**: <bazel-contrib/rules_nodejs@v6.6.1...v6.6.2> ### [`v6.6.1`](https://redirect.github.com/bazel-contrib/rules_nodejs/releases/tag/v6.6.1) #### Using Bzlmod with Bazel 6 or greater 1. (Bazel 6 only) Enable with `common --enable_bzlmod` in `.bazelrc`. 2. Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_nodejs", version = "6.6.1") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE.bazel` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_nodejs", sha256 = "7aee03d56d9b4668d8243a627c9ff587d200c0e0de9202dc4a1a5cab091ba1a3", strip_prefix = "rules_nodejs-6.6.1", url = "https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.6.1/rules_nodejs-v6.6.1.tar.gz", ) ``` #### What's Changed - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3875](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3875) **Full Changelog**: <bazel-contrib/rules_nodejs@v6.6.0...v6.6.1> ### [`v6.6.0`](https://redirect.github.com/bazel-contrib/rules_nodejs/releases/tag/v6.6.0) #### Using Bzlmod with Bazel 6 or greater 1. (Bazel 6 only) Enable with `common --enable_bzlmod` in `.bazelrc`. 2. Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_nodejs", version = "6.6.0") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE.bazel` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_nodejs", sha256 = "f66d808315b03a7c89ea38fad45538b30a35f7514537c05beac99d7f37583e92", strip_prefix = "rules_nodejs-6.6.0", url = "https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.6.0/rules_nodejs-v6.6.0.tar.gz", ) ``` #### What's Changed - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3872](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3872) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3873](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3873) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3874](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3874) - Introduce runtime\_toolchain\_type by [@​guw](https://redirect.github.com/guw) in [#​3859](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3859) - chore: bazelrc presets by [@​alexeagle](https://redirect.github.com/alexeagle) in [#​3865](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3865) #### New Contributors - [@​guw](https://redirect.github.com/guw) made their first contribution in [#​3859](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3859) **Full Changelog**: <bazel-contrib/rules_nodejs@v6.5.2...v6.6.0> ### [`v6.5.2`](https://redirect.github.com/bazel-contrib/rules_nodejs/releases/tag/v6.5.2) #### Using Bzlmod with Bazel 6 or greater 1. (Bazel 6 only) Enable with `common --enable_bzlmod` in `.bazelrc`. 2. Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_nodejs", version = "6.5.2") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE.bazel` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_nodejs", sha256 = "588366ceaca5ec05e29d92a406f9ceb4ac29140692d179a66372bd4a52c82ab3", strip_prefix = "rules_nodejs-6.5.2", url = "https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.5.2/rules_nodejs-v6.5.2.tar.gz", ) ``` **Full Changelog**: <bazel-contrib/rules_nodejs@v6.5.1...v6.5.2> ### [`v6.5.0`](https://redirect.github.com/bazel-contrib/rules_nodejs/releases/tag/v6.5.0) #### Using Bzlmod with Bazel 6 or greater 1. (Bazel 6 only) Enable with `common --enable_bzlmod` in `.bazelrc`. 2. Add to your `MODULE.bazel` file: ```starlark bazel_dep(name = "rules_nodejs", version = "6.5.0") ``` #### Using WORKSPACE Paste this snippet into your `WORKSPACE.bazel` file: ```starlark load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_nodejs", sha256 = "37eaae51158b99d444c6ff277c212874aafa45302feb7dc58659113d23446165", strip_prefix = "rules_nodejs-6.5.0", url = "https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.5.0/rules_nodejs-v6.5.0.tar.gz", ) ``` #### What's Changed - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3832](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3832) - fix: minor typos in warning messages by [@​govindpuff](https://redirect.github.com/govindpuff) in [#​3833](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3833) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3838](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3838) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3840](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3840) - feat: lazy initialize runfiles by [@​nickschaap](https://redirect.github.com/nickschaap) in [#​3839](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3839) - feat: add bzlmod node\_repositories support by [@​jbedard](https://redirect.github.com/jbedard) in [#​3843](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3843) - chore(ci): add aspect workflows by [@​alexeagle](https://redirect.github.com/alexeagle) in [#​3836](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3836) - fix: expose npm binary in toolchain files by [@​alexeagle](https://redirect.github.com/alexeagle) in [#​3845](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3845) - feat: add windows\_arm64 support by [@​dennisameling](https://redirect.github.com/dennisameling) in [#​3846](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3846) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3847](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3847) - Update Node.js Versions by [@​mattem](https://redirect.github.com/mattem) in [#​3849](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3849) #### New Contributors - [@​govindpuff](https://redirect.github.com/govindpuff) made their first contribution in [#​3833](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3833) - [@​nickschaap](https://redirect.github.com/nickschaap) made their first contribution in [#​3839](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3839) - [@​dennisameling](https://redirect.github.com/dennisameling) made their first contribution in [#​3846](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3846) **Full Changelog**: <bazel-contrib/rules_nodejs@v6.4.0...v6.5.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuNTQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 504ac8e - Browse repository at this point
Copy the full SHA 504ac8eView commit details -
chore(deps): update dependency oxlint to v1.34.0 (#5562)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`1.32.0` -> `1.34.0`](https://renovatebot.com/diffs/npm/oxlint/1.32.0/1.34.0) |  |  | --- ### Release Notes <details> <summary>oxc-project/oxc (oxlint)</summary> ### [`v1.34.0`](https://redirect.github.com/oxc-project/oxc/blob/HEAD/npm/oxlint/CHANGELOG.md#1340---2025-12-19) [Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v1.33.0...oxlint_v1.34.0) ##### 🚀 Features - [`a0f74a0`](https://redirect.github.com/oxc-project/oxc/commit/a0f74a0) linter/config: Allow aliasing plugin names to allow names the same as builtin plugins ([#​15569](https://redirect.github.com/oxc-project/oxc/issues/15569)) (Cameron) ##### 🐛 Bug Fixes - [`005ec25`](https://redirect.github.com/oxc-project/oxc/commit/005ec25) linter: Permit `$schema` `.oxlintrc.json` struct ([#​17060](https://redirect.github.com/oxc-project/oxc/issues/17060)) (Copilot) - [`d446c43`](https://redirect.github.com/oxc-project/oxc/commit/d446c43) linter: Prevent extra fields from being present on oxlint config file ([#​16874](https://redirect.github.com/oxc-project/oxc/issues/16874)) (connorshea) ### [`v1.33.0`](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v1.32.0...oxlint_v1.33.0) [Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v1.32.0...oxlint_v1.33.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 79c50ce - Browse repository at this point
Copy the full SHA 79c50ceView commit details -
chore(deps): update dependency fast-xml-parser to v5.3.3 (#5560)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [fast-xml-parser](https://redirect.github.com/NaturalIntelligence/fast-xml-parser) | [`5.2.5` -> `5.3.3`](https://renovatebot.com/diffs/npm/fast-xml-parser/5.2.5/5.3.3) |  |  | --- ### Release Notes <details> <summary>NaturalIntelligence/fast-xml-parser (fast-xml-parser)</summary> ### [`v5.3.3`](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/releases/tag/v5.3.3): bug fix and performance improvements [Compare Source](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.2...v5.3.3) - fix [#​775](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/issues/775): transformTagName with allowBooleanAttributes adds an unnecessary attribute - Performance improvement for stopNodes (By [Maciek Lamberski](https://redirect.github.com/macieklamberski)) ### [`v5.3.2`](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.1...v5.3.2) [Compare Source](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.1...v5.3.2) ### [`v5.3.1`](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.0...v5.3.1) [Compare Source](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.0...v5.3.1) ### [`v5.3.0`](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.2.5...v5.3.0) [Compare Source](https://redirect.github.com/NaturalIntelligence/fast-xml-parser/compare/v5.2.5...v5.3.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuNTQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 6de692e - Browse repository at this point
Copy the full SHA 6de692eView commit details -
chore(deps): update dependency @types/node to v22.19.3 (#5255)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.16.0` -> `22.19.3`](https://renovatebot.com/diffs/npm/@types%2fnode/22.16.0/22.19.3) |  |  | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 6e088c6 - Browse repository at this point
Copy the full SHA 6e088c6View commit details -
chore(deps): update dependency @types/babel__traverse to v7.28.0 (#5254)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@types/babel__traverse](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/babel__traverse) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/babel__traverse)) | [`7.20.7` -> `7.28.0`](https://renovatebot.com/diffs/npm/@types%2fbabel__traverse/7.20.7/7.28.0) |  |  | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 5d5d678 - Browse repository at this point
Copy the full SHA 5d5d678View commit details -
chore(deps): update dependency fs-extra to v11.3.3 (#5604)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [fs-extra](https://redirect.github.com/jprichardson/node-fs-extra) | [`11.3.2` -> `11.3.3`](https://renovatebot.com/diffs/npm/fs-extra/11.3.2/11.3.3) |  |  | --- ### Release Notes <details> <summary>jprichardson/node-fs-extra (fs-extra)</summary> ### [`v11.3.3`](https://redirect.github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1133--2025-12-18) [Compare Source](https://redirect.github.com/jprichardson/node-fs-extra/compare/11.3.2...11.3.3) - Fix copying symlink when destination is a symlink to the same target ([#​1019](https://redirect.github.com/jprichardson/node-fs-extra/issues/1019), [#​1060](https://redirect.github.com/jprichardson/node-fs-extra/pull/1060)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/formatjs/formatjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Configuration menu - View commit details
-
Copy full SHA for 515e914 - Browse repository at this point
Copy the full SHA 515e914View commit details -
### TL;DR Add Rust implementation of ICU skeleton parser with initial data structures and parsing logic. ### What changed? - Added Rust workspace configuration with `Cargo.toml` and `Cargo.lock` - Created a new Rust crate in `packages/icu-skeleton-parser/rust/` with: - Core data structures for number format options matching ECMA-402 spec - Skeleton token parser for ICU number skeletons - Comprehensive unit tests for all components - Added Bazel build configuration for the Rust crate - Updated `.gitignore` and `.prettierignore` to exclude Rust build artifacts - Added Rust formatter configuration to VS Code settings ### How to test? 1. Build the Rust crate: ``` bazel build //packages/icu-skeleton-parser/rust:icu_skeleton_parser ``` 2. Run the tests: ``` bazel test //packages/icu-skeleton-parser/rust:icu_skeleton_parser_test ``` 3. If you have Rust installed locally, you can also run: ``` cd packages/icu-skeleton-parser/rust cargo test ``` ### Why make this change? This is the first step toward implementing the ICU skeleton parser in Rust, which will provide better performance and memory safety compared to the JavaScript implementation. The Rust version can be used directly or compiled to WebAssembly for use in JavaScript environments, offering significant performance improvements for parsing ICU number skeletons.
Configuration menu - View commit details
-
Copy full SHA for 8219401 - Browse repository at this point
Copy the full SHA 8219401View commit details
Commits on Dec 21, 2025
-
build: port the rest of skeleton parser to rust (#5613)
### TL;DR Add number skeleton parser implementation for ICU skeleton format in Rust. ### What changed? - Added a new `parser.rs` module to the ICU skeleton parser Rust implementation - Implemented `parse_number_skeleton` function to convert ICU number skeleton tokens to ECMA-402 number format options - Added helper functions for parsing various components of ICU skeletons: - `icu_unit_to_ecma` - Converts ICU unit format to ECMA format - `parse_significant_precision` - Parses significant precision patterns - `parse_sign` - Parses sign display patterns - `parse_concise_scientific_and_engineering_stem` - Parses scientific/engineering notation - Added `merge` method to `ExtendedNumberFormatOptions` to combine options from multiple sources - Added comprehensive test coverage for all parsing functions - Exported the `parse_number_skeleton` function in the library's public API ### How to test? 1. Run the Rust tests for the parser module: ``` cd packages/icu-skeleton-parser/rust cargo test ``` 2. Test with various ICU skeleton formats: ```rust use icu_skeleton_parser::{NumberSkeletonToken, parse_number_skeleton}; let tokens = NumberSkeletonToken::parse_from_string("currency/USD .00 group-off").unwrap(); let options = parse_number_skeleton(&tokens).unwrap(); ``` ### Why make this change? This implementation provides a Rust-native parser for ICU number skeleton format, allowing for efficient conversion of ICU skeleton strings to ECMA-402 number format options. This is essential for applications that need to parse and process internationalization formatting instructions in Rust, maintaining compatibility with the ICU skeleton format used in JavaScript and other environments.Configuration menu - View commit details
-
Copy full SHA for b3e3ea2 - Browse repository at this point
Copy the full SHA b3e3ea2View commit details -
build: port datetime skeleton parser to rust (#5616)
### TL;DR Add date-time skeleton parser for ICU format strings ### What changed? - Added `DateTimeFormatOptions` struct and related enums to represent ECMA-402 date-time format options - Implemented `parse_date_time_skeleton` function to convert ICU date-time skeleton patterns to format options - Added comprehensive unit tests for all date-time formatting components - Exposed new functionality through public exports in the library ### How to test? ```rust use icu_skeleton_parser::parse_date_time_skeleton; // Parse a date skeleton let opts = parse_date_time_skeleton("yMMMd").unwrap(); assert!(opts.year().is_some()); assert!(opts.month().is_some()); assert!(opts.day().is_some()); // Parse a time skeleton let opts = parse_date_time_skeleton("Hms").unwrap(); assert!(opts.hour().is_some()); assert!(opts.minute().is_some()); assert!(opts.second().is_some()); ``` ### Why make this change? This implementation adds support for parsing ICU date-time skeleton patterns, which are commonly used in internationalization libraries. The parser converts these patterns to ECMA-402 compatible format options, enabling applications to use the more concise ICU syntax while maintaining compatibility with JavaScript's Intl.DateTimeFormat API. This complements the existing number skeleton parser functionality.Configuration menu - View commit details
-
Copy full SHA for d7d868d - Browse repository at this point
Copy the full SHA d7d868dView commit details -
feat(@formatjs/icu-messageformat-parser): remove IE11 polyfills (#5617)
### TL;DR Remove polyfills for modern JavaScript string and number methods in the ICU MessageFormat parser. ### What changed? - Removed polyfills for `String.prototype.startsWith`, `String.fromCodePoint`, `String.prototype.codePointAt`, and `Number.isSafeInteger` - Removed the regex support detection for Unicode and sticky flags - Simplified the `matchIdentifierAtIndex` function to use native regex with Unicode support - Removed the large `_isPatternSyntax` function that was only needed for IE11 support - Directly used native methods instead of polyfill wrappers in the parser code ### How to test? Run the test suite for the ICU MessageFormat parser to ensure all functionality works correctly with the native methods. The behavior should remain unchanged in modern browsers and environments. ### Why make this change? This change modernizes the codebase by removing unnecessary polyfills for IE11 and other legacy browsers. Since IE11 is no longer supported, we can rely on native implementations of these methods which are available in all modern JavaScript environments. This results in cleaner, more maintainable code and potentially better performance by using native browser implementations.
Configuration menu - View commit details
-
Copy full SHA for c65dac6 - Browse repository at this point
Copy the full SHA c65dac6View commit details -
test(@formatjs/icu-skeleton-parser): add more rust tests (#5618)
### TL;DR Renamed package from `icu-skeleton-parser-rust` to `icu-skeleton-parser` and added comprehensive integration tests for both datetime and number skeleton parsers. ### What changed? - Renamed the package from `icu-skeleton-parser-rust` to `icu-skeleton-parser` in Cargo.toml and updated references in Cargo.lock - Renamed `parser.rs` to `number_parser.rs` for better clarity on its purpose - Updated imports and exports in `lib.rs` to reflect the file name change - Added extensive integration tests to both parsers: - Added datetime parser tests for complex skeletons, various date/time formats, and empty skeletons - Added number parser tests for various formatting options including percentages, currencies, scientific notation, engineering notation, sign displays, and more ### How to test? Run the test suite to verify all tests pass: ```bash cargo test ``` The new integration tests cover a wide range of formatting scenarios that match the TypeScript test suite, ensuring compatibility between implementations. ### Why make this change? - The package name change removes the redundant `-rust` suffix, making it more consistent with other packages - The file renaming improves code organization by making the purpose of each module clearer - The comprehensive integration tests ensure the Rust implementation matches the behavior of the TypeScript implementation, providing better test coverage and confidence in the parser's correctness across various formatting scenarios
Configuration menu - View commit details
-
Copy full SHA for d6f2dcb - Browse repository at this point
Copy the full SHA d6f2dcbView commit details -
build: separate out ts_binary rule (#5622)
### TL;DR Refactored build tools to improve code organization and replaced deprecated Karma tests with Vitest. ### What changed? - Created a new `ts_binary` rule and renamed `ts_script` to `ts_run_binary` with improved functionality - Moved script files from `scripts/` to `tools/` directory in the `icu-messageformat-parser` package - Created dedicated Bazel build file for the tools in `icu-messageformat-parser/tools/BUILD.bazel` - Removed `bundle_karma_tests` rule and its usages across multiple packages - Updated `generate_src_file` to accept a `tool` parameter for better flexibility - Reorganized code generation tools to use the new structure ### How to test? Run the build and tests to ensure everything still works: ```bash bazel build //... bazel test //... ``` ### Why make this change? This change improves the build system by: 1. Creating a cleaner separation between tools and their usage 2. Providing better encapsulation for script tools 3. Removing deprecated Karma test bundling in favor of Vitest 4. Making the build configuration more maintainable and easier to understand 5. Improving the reusability of build tools across packages
Configuration menu - View commit details
-
Copy full SHA for c434b23 - Browse repository at this point
Copy the full SHA c434b23View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff @formatjs/intl-numberformat@9.0.5...main