Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: formatjs/formatjs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c5a7e73
Choose a base ref
...
head repository: formatjs/formatjs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c434b23
Choose a head ref
  • 16 commits
  • 51 files changed
  • 2 contributors

Commits on Dec 19, 2025

  1. 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: #
    longlho committed Dec 19, 2025
    Configuration menu
    Copy the full SHA
    9580a68 View commit details
    Browse the repository at this point in the history
  2. build: publish

     - @formatjs/utils@2.0.4
    longlho committed Dec 19, 2025
    Configuration menu
    Copy the full SHA
    d556a34 View commit details
    Browse the repository at this point in the history
  3. build: fix lerna

    longlho committed Dec 19, 2025
    Configuration menu
    Copy the full SHA
    2e6e19a View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2025

  1. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/tsd/0.33.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsd/0.32.0/0.33.0?slim=true) |
    
    ---
    
    ### 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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    fada616 View commit details
    Browse the repository at this point in the history
  2. 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("@&#8203;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 [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3878](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3878)
    - Remove target constraint by [@&#8203;guw](https://redirect.github.com/guw) in [#&#8203;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("@&#8203;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 [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;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("@&#8203;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 [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3872](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3872)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3873](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3873)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3874](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3874)
    - Introduce runtime\_toolchain\_type by [@&#8203;guw](https://redirect.github.com/guw) in [#&#8203;3859](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3859)
    - chore: bazelrc presets by [@&#8203;alexeagle](https://redirect.github.com/alexeagle) in [#&#8203;3865](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3865)
    
    #### New Contributors
    
    - [@&#8203;guw](https://redirect.github.com/guw) made their first contribution in [#&#8203;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("@&#8203;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("@&#8203;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 [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3832](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3832)
    - fix: minor typos in warning messages by [@&#8203;govindpuff](https://redirect.github.com/govindpuff) in [#&#8203;3833](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3833)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3838](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3838)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3840](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3840)
    - feat: lazy initialize runfiles by [@&#8203;nickschaap](https://redirect.github.com/nickschaap) in [#&#8203;3839](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3839)
    - feat: add bzlmod node\_repositories support by [@&#8203;jbedard](https://redirect.github.com/jbedard) in [#&#8203;3843](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3843)
    - chore(ci): add aspect workflows by [@&#8203;alexeagle](https://redirect.github.com/alexeagle) in [#&#8203;3836](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3836)
    - fix: expose npm binary in toolchain files by [@&#8203;alexeagle](https://redirect.github.com/alexeagle) in [#&#8203;3845](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3845)
    - feat: add windows\_arm64 support by [@&#8203;dennisameling](https://redirect.github.com/dennisameling) in [#&#8203;3846](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3846)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3847](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3847)
    - Update Node.js Versions by [@&#8203;mattem](https://redirect.github.com/mattem) in [#&#8203;3849](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3849)
    
    #### New Contributors
    
    - [@&#8203;govindpuff](https://redirect.github.com/govindpuff) made their first contribution in [#&#8203;3833](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3833)
    - [@&#8203;nickschaap](https://redirect.github.com/nickschaap) made their first contribution in [#&#8203;3839](https://redirect.github.com/bazel-contrib/rules_nodejs/pull/3839)
    - [@&#8203;dennisameling](https://redirect.github.com/dennisameling) made their first contribution in [#&#8203;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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    504ac8e View commit details
    Browse the repository at this point in the history
  3. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/1.34.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/1.32.0/1.34.0?slim=true) |
    
    ---
    
    ### 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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    79c50ce View commit details
    Browse the repository at this point in the history
  4. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/fast-xml-parser/5.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fast-xml-parser/5.2.5/5.3.3?slim=true) |
    
    ---
    
    ### 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 [#&#8203;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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    6de692e View commit details
    Browse the repository at this point in the history
  5. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.19.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.16.0/22.19.3?slim=true) |
    
    ---
    
    ### 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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    6e088c6 View commit details
    Browse the repository at this point in the history
  6. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fbabel__traverse/7.28.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fbabel__traverse/7.20.7/7.28.0?slim=true) |
    
    ---
    
    ### 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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    5d5d678 View commit details
    Browse the repository at this point in the history
  7. 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/fs-extra/11.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fs-extra/11.3.2/11.3.3?slim=true) |
    
    ---
    
    ### 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 ([#&#8203;1019](https://redirect.github.com/jprichardson/node-fs-extra/issues/1019), [#&#8203;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==-->
    renovate[bot] committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    515e914 View commit details
    Browse the repository at this point in the history
  8. build: setup rust (#5606)

    ### 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.
    longlho committed Dec 20, 2025
    Configuration menu
    Copy the full SHA
    8219401 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2025

  1. 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.
    longlho committed Dec 21, 2025
    Configuration menu
    Copy the full SHA
    b3e3ea2 View commit details
    Browse the repository at this point in the history
  2. 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.
    longlho committed Dec 21, 2025
    Configuration menu
    Copy the full SHA
    d7d868d View commit details
    Browse the repository at this point in the history
  3. 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.
    longlho committed Dec 21, 2025
    Configuration menu
    Copy the full SHA
    c65dac6 View commit details
    Browse the repository at this point in the history
  4. 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
    longlho committed Dec 21, 2025
    Configuration menu
    Copy the full SHA
    d6f2dcb View commit details
    Browse the repository at this point in the history
  5. 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
    longlho committed Dec 21, 2025
    Configuration menu
    Copy the full SHA
    c434b23 View commit details
    Browse the repository at this point in the history
Loading