From a67f3d53de5050a6f84d8e000aee410434656310 Mon Sep 17 00:00:00 2001 From: Long Ho Date: Mon, 5 Jan 2026 17:48:01 -0500 Subject: [PATCH] feat: switch to native formatjs cli --- .bazelignore | 5 - .github/workflows/buildifier.yaml | 20 - .github/workflows/ci.yaml | 20 - .github/workflows/release_prep.sh | 14 +- .github/workflows/verify-hooks.yml | 73 ++++ .gitignore | 1 + .pre-commit-config.yaml | 56 --- BUILD.bazel | 12 - BUILD.dev.bazel | 14 + MODULE.bazel | 13 + MODULE.bazel.lock | 45 ++ REPO.bazel | 10 + e2e/REPO.bazel | 2 - e2e/smoke/.bazelrc | 0 e2e/smoke/BUILD | 17 - e2e/smoke/MODULE.bazel | 7 - e2e/smoke/MODULE.bazel.lock | 156 ------- e2e/smoke/README.md | 5 - e2e/smoke/WORKSPACE.bazel | 19 - e2e/smoke/WORKSPACE.bzlmod | 2 - examples/aggregate/BUILD.bazel | 12 +- examples/aggregate/MODULE.bazel | 15 +- examples/aggregate/MODULE.bazel.lock | 405 +++--------------- examples/aggregate/REPO.bazel | 10 +- .../aggregate/app/all_messages.fixture.json | 48 ++- examples/aggregate/module1/BUILD.bazel | 1 - examples/aggregate/module2/BUILD.bazel | 1 - examples/aggregate/module3/BUILD.bazel | 1 - examples/simple/BUILD.bazel | 20 +- examples/simple/MODULE.bazel | 14 +- examples/simple/MODULE.bazel.lock | 405 +++--------------- examples/simple/REPO.bazel | 10 +- examples/simple/compile_messages.fixture.json | 21 +- examples/simple/extract_messages.fixture.json | 20 +- examples/simple/messages/fr.json | 18 +- examples/simple/tests_verify/BUILD.bazel | 9 - formatjs/compile.bzl | 114 +++-- formatjs/extract.bzl | 30 +- formatjs/verify.bzl | 8 +- formatjs_cli/BUILD.bazel | 16 + formatjs_cli/extensions.bzl | 39 ++ formatjs_cli/repositories.bzl | 142 ++++++ formatjs_cli/toolchain.bzl | 32 ++ lefthook.yml | 50 +++ package.json | 13 + pnpm-lock.yaml | 115 +++++ 46 files changed, 852 insertions(+), 1208 deletions(-) delete mode 100644 .bazelignore delete mode 100644 .github/workflows/buildifier.yaml create mode 100644 .github/workflows/verify-hooks.yml delete mode 100644 .pre-commit-config.yaml create mode 100644 BUILD.dev.bazel delete mode 100644 e2e/REPO.bazel delete mode 100644 e2e/smoke/.bazelrc delete mode 100644 e2e/smoke/BUILD delete mode 100644 e2e/smoke/MODULE.bazel delete mode 100644 e2e/smoke/MODULE.bazel.lock delete mode 100644 e2e/smoke/README.md delete mode 100644 e2e/smoke/WORKSPACE.bazel delete mode 100644 e2e/smoke/WORKSPACE.bzlmod create mode 100644 formatjs_cli/BUILD.bazel create mode 100644 formatjs_cli/extensions.bzl create mode 100644 formatjs_cli/repositories.bzl create mode 100644 formatjs_cli/toolchain.bzl create mode 100644 lefthook.yml create mode 100644 package.json create mode 100644 pnpm-lock.yaml diff --git a/.bazelignore b/.bazelignore deleted file mode 100644 index 84fb956..0000000 --- a/.bazelignore +++ /dev/null @@ -1,5 +0,0 @@ -# Examples and e2e tests have their own MODULE.bazel files and are tested separately in CI -# The REPO.bazel files mark them as separate repos, but we also need .bazelignore -# to prevent //... from traversing into them -examples -e2e diff --git a/.github/workflows/buildifier.yaml b/.github/workflows/buildifier.yaml deleted file mode 100644 index 5fdc573..0000000 --- a/.github/workflows/buildifier.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: Buildifier -# Controls when the action will run. -on: - # Triggers the workflow on push or pull request events but only for the main branch - push: - branches: [main] - pull_request: - branches: [main] - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - uses: bazel-contrib/setup-bazel@0.16.0 - with: - bazelisk-cache: true - - name: buildifier - run: bazel run --enable_bzlmod //.github/workflows:buildifier.check diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 51628a7..1defd0f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,6 @@ jobs: os: [ubuntu-latest, macos-latest] folder: - "." - - "e2e/smoke" - "examples/simple" - "examples/aggregate" runs-on: ${{ matrix.os }} @@ -28,22 +27,3 @@ jobs: - name: Test ${{ matrix.folder }} working-directory: ${{ matrix.folder }} run: bazel test //... - - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - uses: pre-commit/action@v3.0.1 - - conclusion: - needs: [test, pre-commit] - runs-on: ubuntu-latest - if: always() - steps: - - uses: technote-space/workflow-conclusion-action@45ce8e0eb155657ab8ccf346ade734257fd196a5 # v3.0.3 - - name: Report success - if: ${{ env.WORKFLOW_CONCLUSION == 'success' }} - run: exit 0 - - name: Report failure - if: ${{ env.WORKFLOW_CONCLUSION == 'failure' }} - run: exit 1 diff --git a/.github/workflows/release_prep.sh b/.github/workflows/release_prep.sh index 041584d..6d2f85c 100755 --- a/.github/workflows/release_prep.sh +++ b/.github/workflows/release_prep.sh @@ -26,25 +26,13 @@ tar --create --auto-compress \ cat << EOF ## Using Bzlmod with Bazel 6 or greater -1. (Bazel 6 only) Enable with \`common --enable_bzlmod\` in \`.bazelrc\`. +1. (Bazel 6+ only) Enable with \`common --enable_bzlmod\` in \`.bazelrc\`. 2. Add to your \`MODULE.bazel\` file: \`\`\`starlark bazel_dep(name = "rules_formatjs", version = "${TAG: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_formatjs", - sha256 = "${SHA}", - strip_prefix = "${PREFIX}", - url = "https://github.com/formatjs/rules_formatjs/releases/download/${TAG}/${ARCHIVE}", -) EOF awk 'f;/--SNIP--/{f=1}' e2e/smoke/WORKSPACE.bazel diff --git a/.github/workflows/verify-hooks.yml b/.github/workflows/verify-hooks.yml new file mode 100644 index 0000000..0e7f77d --- /dev/null +++ b/.github/workflows/verify-hooks.yml @@ -0,0 +1,73 @@ +name: Verify Hooks +on: + push: + branches: [main] + pull_request: + branches: [main] +jobs: + verify-hooks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + with: + fetch-depth: 100 + - uses: pnpm/action-setup@v4 + with: + version: "10.0.0" + - uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile + - uses: bazel-contrib/setup-bazel@0.16.0 + with: + bazelisk-cache: true + - name: Get changed files + id: changed-files + run: | + if [ "${{ github.event_name }}" = "pull_request" ]; then + git fetch origin ${{ github.base_ref }} + echo "files=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT + else + echo "files=$(git diff --name-only HEAD~1 HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT + fi + - name: Run lefthook on changed files + if: steps.changed-files.outputs.files != '' + run: | + # Stage the changed files + for file in ${{ steps.changed-files.outputs.files }}; do + if [ -f "$file" ]; then + git add "$file" + fi + done + + # Run pre-commit hooks + pnpm exec lefthook run pre-commit + + # Check if any files were modified by the hooks + if ! git diff --quiet; then + echo "Error: Hooks modified files. Please run 'pnpm exec lefthook run pre-commit' locally and commit the changes." + git diff + exit 1 + fi + - name: Validate commit messages + if: github.event_name == 'pull_request' + run: | + # Get all commits in the PR + commits=$(git log origin/${{ github.base_ref }}..HEAD --format=%H) + + for commit in $commits; do + echo "Validating commit: $commit" + message=$(git log -1 --format=%B $commit) + + # Save message to temporary file + echo "$message" > /tmp/commit-msg + + # Run commit-msg hook + if command -v cz &> /dev/null; then + cz check --commit-msg-file /tmp/commit-msg || exit 1 + else + echo "commitizen not installed, skipping commit message validation for $commit" + fi + done diff --git a/.gitignore b/.gitignore index 52646d3..fc91215 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ bazel-* .bazelrc.user .idea/ .ijwb/ +node_modules/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index b608502..0000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# See CONTRIBUTING.md for instructions. -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks - -# Commitizen runs in commit-msg stage -# but we don't want to run the other hooks on commit messages -default_stages: [pre-commit] -# Use a slightly older version of node by default -# as the default uses a very new version of GLIBC -default_language_version: - node: 16.18.0 -repos: - - repo: meta - hooks: - - id: check-hooks-apply - - id: check-useless-excludes - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v6.0.0 - hooks: - - id: check-executables-have-shebangs - - id: check-shebang-scripts-are-executable - - id: check-toml - - id: check-yaml - - id: destroyed-symlinks - - id: detect-private-key - - id: end-of-file-fixer - - id: trailing-whitespace - # Check formatting and lint for starlark code - - repo: https://github.com/keith/pre-commit-buildifier - rev: 8.2.1 - hooks: - - id: buildifier - - id: buildifier-lint - # Enforce that commit messages allow for later changelog generation - - repo: https://github.com/commitizen-tools/commitizen - rev: v4.9.1 - hooks: - # Requires that commitizen is already installed - - id: commitizen - stages: [commit-msg] - - repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.1.0 - hooks: - - id: prettier - - repo: https://github.com/google/yamlfmt - rev: v0.14.0 - hooks: - - id: yamlfmt - exclude: | - (?x)^( - .bcr/config.yml - ) - - repo: https://github.com/crate-ci/typos - rev: v1.38.1 - hooks: - - id: typos diff --git a/BUILD.bazel b/BUILD.bazel index 0280a56..927d4cb 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,4 +1,3 @@ -load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_binary") load("@package_metadata//licenses/rules:license.bzl", "license") load("@package_metadata//purl:purl.bzl", "purl") load("@package_metadata//rules:package_metadata.bzl", "package_metadata") @@ -17,14 +16,3 @@ license( kind = "@package_metadata//licenses/spdx:Apache-2.0", text = "LICENSE", ) - -# gazelle:map_kind bzl_library bzl_library @bazel_lib//:bzl_library.bzl -gazelle_binary( - name = "gazelle_bin", - languages = ["@bazel_skylib_gazelle_plugin//bzl"], -) - -gazelle( - name = "gazelle", - gazelle = "gazelle_bin", -) diff --git a/BUILD.dev.bazel b/BUILD.dev.bazel new file mode 100644 index 0000000..71786c9 --- /dev/null +++ b/BUILD.dev.bazel @@ -0,0 +1,14 @@ +"""Development-only build targets (gazelle, etc)""" + +load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_binary") + +# gazelle:map_kind bzl_library bzl_library @bazel_lib//:bzl_library.bzl +gazelle_binary( + name = "gazelle_bin", + languages = ["@bazel_skylib_gazelle_plugin//bzl"], +) + +gazelle( + name = "gazelle", + gazelle = "gazelle_bin", +) diff --git a/MODULE.bazel b/MODULE.bazel index 5fa581f..5eae633 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -43,3 +43,16 @@ bazel_dep(name = "bazel_lib", version = "3.0.0", dev_dependency = True) bazel_dep(name = "buildifier_prebuilt", version = "8.2.1", dev_dependency = True) bazel_dep(name = "bazelrc-preset.bzl", version = "1.6.0") + +# FormatJS CLI toolchain +formatjs_cli = use_extension("//formatjs_cli:extensions.bzl", "formatjs_cli") +formatjs_cli.toolchain(version = "0.1.0") +use_repo( + formatjs_cli, + "formatjs_cli_toolchains_darwin_arm64", + "formatjs_cli_toolchains_linux_x64", +) + +register_toolchains("@formatjs_cli_toolchains_darwin_arm64//:toolchain") + +register_toolchains("@formatjs_cli_toolchains_linux_x64//:toolchain") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index cb745d0..717c441 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -177,6 +177,51 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { + "//formatjs_cli:extensions.bzl%formatjs_cli": { + "general": { + "bzlTransitiveDigest": "sujXXiUAXb6b27SJxQkzJPmSMDp7TM2lmD7QY6QkSvw=", + "usagesDigest": "JbbyCwQvVHUbwKJwpxfiqS+QkDTv0HLz4LbZGYtJ3Fk=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "formatjs_cli_toolchains_darwin_arm64": { + "repoRuleId": "@@//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "darwin-arm64", + "exec_compatible_with": [ + "@platforms//os:macos", + "@platforms//cpu:arm64" + ], + "target_compatible_with": [] + } + }, + "formatjs_cli_toolchains_linux_x64": { + "repoRuleId": "@@//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "linux-x64", + "exec_compatible_with": [ + "@platforms//os:linux", + "@platforms//cpu:x86_64" + ], + "target_compatible_with": [] + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "formatjs_cli_toolchains_darwin_arm64", + "formatjs_cli_toolchains_linux_x64" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] + } + }, "@@pybind11_bazel+//:python_configure.bzl%extension": { "general": { "bzlTransitiveDigest": "d4N/SZrl3ONcmzE98rcV0Fsro0iUbjNQFTIiLiGuH+k=", diff --git a/REPO.bazel b/REPO.bazel index bbbb673..e5df2d3 100644 --- a/REPO.bazel +++ b/REPO.bazel @@ -5,3 +5,13 @@ repo( "//:package_metadata", ], ) + +ignore_directories([ + # Examples are separate workspaces + "examples", + # Bazel convenience symlinks + "bazel-bin", + "bazel-out", + "bazel-rules_formatjs", + "bazel-testlogs", +]) diff --git a/e2e/REPO.bazel b/e2e/REPO.bazel deleted file mode 100644 index 58c6dda..0000000 --- a/e2e/REPO.bazel +++ /dev/null @@ -1,2 +0,0 @@ -# This file marks the directory as a separate Bazel repository. -# The parent repository will not traverse into this directory. diff --git a/e2e/smoke/.bazelrc b/e2e/smoke/.bazelrc deleted file mode 100644 index e69de29..0000000 diff --git a/e2e/smoke/BUILD b/e2e/smoke/BUILD deleted file mode 100644 index 2483f3d..0000000 --- a/e2e/smoke/BUILD +++ /dev/null @@ -1,17 +0,0 @@ -"""Provides a simple way to test your rules as an external workspace. -Add a basic smoke-test target below. -""" - -load("@bazel_skylib//rules:build_test.bzl", "build_test") -# load("@rules_formatjs//formatjs:defs.bzl", "formatjs_extract", "formatjs_compile") - -# Replace with a usage of your rule/macro -filegroup(name = "empty") - -build_test( - name = "smoke_test", - targets = [ - # targets you add above - ":empty", - ], -) diff --git a/e2e/smoke/MODULE.bazel b/e2e/smoke/MODULE.bazel deleted file mode 100644 index 5caef0a..0000000 --- a/e2e/smoke/MODULE.bazel +++ /dev/null @@ -1,7 +0,0 @@ -bazel_dep(name = "rules_formatjs", version = "0.0.0", dev_dependency = True) -bazel_dep(name = "bazel_skylib", version = "1.8.2", dev_dependency = True) - -local_path_override( - module_name = "rules_formatjs", - path = "../..", -) diff --git a/e2e/smoke/MODULE.bazel.lock b/e2e/smoke/MODULE.bazel.lock deleted file mode 100644 index b440204..0000000 --- a/e2e/smoke/MODULE.bazel.lock +++ /dev/null @@ -1,156 +0,0 @@ -{ - "lockFileVersion": 24, - "registryFileHashes": { - "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", - "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", - "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", - "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", - "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", - "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", - "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", - "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", - "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", - "https://bcr.bazel.build/modules/bazel_features/1.0.0/MODULE.bazel": "d7f022dc887efb96e1ee51cec7b2e48d41e36ff59a6e4f216c40e4029e1585bf", - "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", - "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", - "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", - "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", - "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", - "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", - "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", - "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", - "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", - "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", - "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", - "https://bcr.bazel.build/modules/bazel_lib/3.0.0-rc.0/MODULE.bazel": "d6e00979a98ac14ada5e31c8794708b41434d461e7e7ca39b59b765e6d233b18", - "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", - "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", - "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", - "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", - "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", - "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", - "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", - "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", - "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", - "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", - "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", - "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", - "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", - "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/MODULE.bazel": "11bc946a2e1a9c1bea066e44a704091b482e6049164b75b2381e8419bf055cf1", - "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/source.json": "ad6cee6b42b5def78f6b3082c0bd7041a330003cbace330aaf1d3f94a122c48b", - "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", - "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", - "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", - "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", - "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", - "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", - "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", - "https://bcr.bazel.build/modules/jq.bzl/0.4.0/MODULE.bazel": "a7b39b37589f2b0dad53fd6c1ccaabbdb290330caa920d7ef3e6aad068cd4ab2", - "https://bcr.bazel.build/modules/jq.bzl/0.4.0/source.json": "52ec7530c4618e03f634b30ff719814a68d7d39c235938b7aa2abbfe1eb1c52c", - "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", - "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", - "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", - "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", - "https://bcr.bazel.build/modules/package_metadata/0.0.6/MODULE.bazel": "341dab6f417197494517d54c8e557c0baee1de7aec83543a4fbefe57900acb7e", - "https://bcr.bazel.build/modules/package_metadata/0.0.6/source.json": "9581d8b22db43550ac75ecc314ee4fa0a33400bfdc77d1317d8af6b18dca7756", - "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", - "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", - "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", - "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", - "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", - "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", - "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", - "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", - "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", - "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", - "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", - "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", - "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", - "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", - "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", - "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", - "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", - "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", - "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", - "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", - "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", - "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", - "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", - "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", - "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", - "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", - "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", - "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", - "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", - "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", - "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", - "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", - "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", - "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", - "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", - "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", - "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", - "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", - "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", - "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", - "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", - "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", - "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", - "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", - "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", - "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", - "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", - "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", - "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", - "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", - "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", - "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", - "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", - "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", - "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", - "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", - "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", - "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", - "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", - "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", - "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", - "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", - "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", - "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", - "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", - "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", - "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", - "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", - "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", - "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", - "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", - "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", - "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", - "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", - "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", - "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", - "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", - "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320", - "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", - "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", - "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", - "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", - "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", - "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", - "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", - "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", - "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01", - "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", - "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", - "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", - "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", - "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" - }, - "selectedYankedVersions": {}, - "moduleExtensions": {}, - "facts": {} -} diff --git a/e2e/smoke/README.md b/e2e/smoke/README.md deleted file mode 100644 index 81b6cc7..0000000 --- a/e2e/smoke/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# smoke test - -This e2e exercises the repo from an end-users perspective. -It catches mistakes in our install instructions, or usages that fail when called from an "external" repository to rules_formatjs. -It is also used by the presubmit check for the Bazel Central Registry. diff --git a/e2e/smoke/WORKSPACE.bazel b/e2e/smoke/WORKSPACE.bazel deleted file mode 100644 index 7f0c009..0000000 --- a/e2e/smoke/WORKSPACE.bazel +++ /dev/null @@ -1,19 +0,0 @@ -# Override http_archive for local testing -local_repository( - name = "rules_formatjs", - path = "../..", -) - -#---SNIP--- Below here is re-used in the workspace snippet published on releases - -######################## -# rules_formatjs setup # -######################## -# Fetches the rules_formatjs dependencies. -# If you want to have a different version of some dependency, -# you should fetch it *before* calling this. -# Alternatively, you can skip calling this function, so long as you've -# already fetched all the dependencies. -load("@rules_formatjs//formatjs:repositories.bzl", "rules_formatjs_dependencies") - -rules_formatjs_dependencies() diff --git a/e2e/smoke/WORKSPACE.bzlmod b/e2e/smoke/WORKSPACE.bzlmod deleted file mode 100644 index 7784218..0000000 --- a/e2e/smoke/WORKSPACE.bzlmod +++ /dev/null @@ -1,2 +0,0 @@ -# When --enable_bzlmod is set, this file replaces WORKSPACE.bazel. -# Dependencies then come from MODULE.bazel instead. diff --git a/examples/aggregate/BUILD.bazel b/examples/aggregate/BUILD.bazel index 9df599d..b0c24c6 100644 --- a/examples/aggregate/BUILD.bazel +++ b/examples/aggregate/BUILD.bazel @@ -1,10 +1,2 @@ -load("@npm//:@formatjs/cli/package_json.bzl", formatjs_bin = "bin") -load("@npm//:defs.bzl", "npm_link_all_packages") - -npm_link_all_packages(name = "node_modules") - -# Create formatjs CLI binary target for use across all modules -formatjs_bin.formatjs_binary( - name = "formatjs_cli", - visibility = ["//visibility:public"], -) +# This example uses the native FormatJS CLI toolchain +# No npm setup needed - the toolchain is configured in rules_formatjs diff --git a/examples/aggregate/MODULE.bazel b/examples/aggregate/MODULE.bazel index 8301da1..bd16510 100644 --- a/examples/aggregate/MODULE.bazel +++ b/examples/aggregate/MODULE.bazel @@ -1,7 +1,8 @@ """ Message Aggregation Example Workspace -This is a standalone Bazel workspace demonstrating the formatjs_aggregate_aspect. +This is a standalone Bazel workspace demonstrating the formatjs_aggregate_aspect +with native FormatJS CLI toolchain (no npm required). """ module( @@ -16,15 +17,3 @@ local_path_override( ) bazel_dep(name = "aspect_bazel_lib", version = "2.22.2") -bazel_dep(name = "aspect_rules_js", version = "2.8.3") -bazel_dep(name = "rules_nodejs", version = "6.3.0") - -node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") -node.toolchain(node_version = "20.11.1") - -npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") -npm.npm_translate_lock( - name = "npm", - pnpm_lock = "//:pnpm-lock.yaml", -) -use_repo(npm, "npm") diff --git a/examples/aggregate/MODULE.bazel.lock b/examples/aggregate/MODULE.bazel.lock index c219090..fe10858 100644 --- a/examples/aggregate/MODULE.bazel.lock +++ b/examples/aggregate/MODULE.bazel.lock @@ -9,36 +9,19 @@ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", - "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", - "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", - "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", - "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8", - "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/source.json": "b88bff599ceaf0f56c264c749b1606f8485cec3b8c38ba30f88a4df9af142861", - "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", - "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", - "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", - "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.17.1/MODULE.bazel": "9b027af55f619c7c444cead71061578fab6587e5e1303fa4ed61d49d2b1a7262", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.2/MODULE.bazel": "6b735f3fdd64978e217c9725f4ff0d84bf606554c8e77d20e90977841d7ff2ed", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.2/source.json": "58fffa2d722cff47cb8d921c8bbed7701c53f233009d9ca82beb4a0fb8fb9418", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", - "https://bcr.bazel.build/modules/aspect_rules_js/2.8.3/MODULE.bazel": "807ce5f624124a8bc586c743394d174e85f0f9c6c4e0e2410b4088aebe790ac8", - "https://bcr.bazel.build/modules/aspect_rules_js/2.8.3/source.json": "c35cb4e04f61a09c17f8c569894b80de884b1e3dee2d33829704786e3f778037", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.0.0/MODULE.bazel": "d7f022dc887efb96e1ee51cec7b2e48d41e36ff59a6e4f216c40e4029e1585bf", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", - "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", - "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", - "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", - "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", - "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", @@ -59,7 +42,10 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/MODULE.bazel": "11bc946a2e1a9c1bea066e44a704091b482e6049164b75b2381e8419bf055cf1", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/source.json": "ad6cee6b42b5def78f6b3082c0bd7041a330003cbace330aaf1d3f94a122c48b", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", @@ -67,21 +53,17 @@ "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", - "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", - "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", - "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", "https://bcr.bazel.build/modules/jq.bzl/0.4.0/MODULE.bazel": "a7b39b37589f2b0dad53fd6c1ccaabbdb290330caa920d7ef3e6aad068cd4ab2", "https://bcr.bazel.build/modules/jq.bzl/0.4.0/source.json": "52ec7530c4618e03f634b30ff719814a68d7d39c235938b7aa2abbfe1eb1c52c", "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", - "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", - "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", - "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", - "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", - "https://bcr.bazel.build/modules/package_metadata/0.0.2/source.json": "e53a759a72488d2c0576f57491ef2da0cf4aab05ac0997314012495935531b73", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/MODULE.bazel": "341dab6f417197494517d54c8e557c0baee1de7aec83543a4fbefe57900acb7e", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/source.json": "9581d8b22db43550ac75ecc314ee4fa0a33400bfdc77d1317d8af6b18dca7756", "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", @@ -89,47 +71,36 @@ "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", - "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", - "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", - "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", - "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", - "https://bcr.bazel.build/modules/protobuf/32.1/source.json": "bd2664e90875c0cd755d1d9b7a103a4b027893ac8eafa3bba087557ffc244ad4", "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", - "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", - "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", - "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", - "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", - "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", - "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", - "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", - "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", - "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", - "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", - "https://bcr.bazel.build/modules/rules_cc/0.2.8/source.json": "85087982aca15f31307bd52698316b28faa31bd2c3095a41f456afec0131344c", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", @@ -142,19 +113,14 @@ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", - "https://bcr.bazel.build/modules/rules_java/8.16.1/MODULE.bazel": "0f20b1cecaa8e52f60a8f071e59a20b4e3b9a67f6c56c802ea256f6face692d3", - "https://bcr.bazel.build/modules/rules_java/8.16.1/source.json": "072f8d11264edc499621be2dc9ea01d6395db5aa6f8799c034ae01a3e857f2e4", - "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", - "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", - "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", - "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", - "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", @@ -162,54 +128,38 @@ "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", - "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d", - "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/source.json": "1254ffd8d0d908a19c67add7fb5e2a1f604df133bc5d206425264293e2e537fc", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", - "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", - "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", - "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", - "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", - "https://bcr.bazel.build/modules/rules_python/1.4.1/source.json": "8ec8c90c70ccacc4de8ca1b97f599e756fb59173e898ee08b733006650057c07", + "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320", "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", - "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", - "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", - "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", - "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", - "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", - "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", - "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", - "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb", + "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/source.json": "deed3094f7cc779ed1d37a68403847b0e38d9dd9d931e03cb90825f3368b515f", - "https://bcr.bazel.build/modules/toolchains_buildbuddy/0.0.4/MODULE.bazel": "735f0ed45a0334971a61157432127380ae9ce285aea6d489565cb81c7a4cf487", - "https://bcr.bazel.build/modules/toolchains_buildbuddy/0.0.4/source.json": "a5b69ff999ea39cf89df03cb5c174ae6fd621d7a1a7e4bd6be302ff9f2910695", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", - "https://bcr.bazel.build/modules/yq.bzl/0.3.2/MODULE.bazel": "0384efa70e8033d842ea73aa4b7199fa099709e236a7264345c03937166670b6", - "https://bcr.bazel.build/modules/yq.bzl/0.3.2/source.json": "c4ec3e192477e154f08769e29d69e8fd36e8a4f0f623997f3e1f6f7d328f7d7d", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", @@ -217,36 +167,49 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { - "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "@@rules_formatjs+//formatjs_cli:extensions.bzl%formatjs_cli": { "general": { - "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", - "usagesDigest": "pLnkJrXl1WS1efPHDXQRX2qSyrjmhYJgshYQaUcOXkg=", + "bzlTransitiveDigest": "sujXXiUAXb6b27SJxQkzJPmSMDp7TM2lmD7QY6QkSvw=", + "usagesDigest": "OZkzPhO5e2IpjXofzpIqyVh3/qwpzyry9HgSzViE2c8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, "generatedRepoSpecs": { - "aspect_tools_telemetry_report": { - "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", - "attributes": { - "deps": { - "aspect_rules_js": "2.8.3", - "aspect_tools_telemetry": "0.3.3" - } + "formatjs_cli_toolchains_darwin_arm64": { + "repoRuleId": "@@rules_formatjs+//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "darwin-arm64", + "exec_compatible_with": [ + "@platforms//os:macos", + "@platforms//cpu:arm64" + ], + "target_compatible_with": [] + } + }, + "formatjs_cli_toolchains_linux_x64": { + "repoRuleId": "@@rules_formatjs+//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "linux-x64", + "exec_compatible_with": [ + "@platforms//os:linux", + "@platforms//cpu:x86_64" + ], + "target_compatible_with": [] } } }, - "recordedRepoMappingEntries": [ - [ - "aspect_tools_telemetry+", - "bazel_lib", - "bazel_lib+" + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "formatjs_cli_toolchains_darwin_arm64", + "formatjs_cli_toolchains_linux_x64" ], - [ - "aspect_tools_telemetry+", - "bazel_skylib", - "bazel_skylib+" - ] - ] + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] } }, "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { @@ -313,163 +276,6 @@ ] } }, - "@@rules_nodejs+//nodejs:extensions.bzl%node": { - "general": { - "bzlTransitiveDigest": "SqbzUarOVzAfK28Ca5+NIU3LUwnW/b3h0xXBUS97oyI=", - "usagesDigest": "Gi4EhJN4YOVPI6KfOCiR3lJmXvBXqfKrz3x6Nnb8aao=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "nodejs_linux_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_amd64" - } - }, - "nodejs_linux_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_arm64" - } - }, - "nodejs_linux_s390x": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_s390x" - } - }, - "nodejs_linux_ppc64le": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_ppc64le" - } - }, - "nodejs_darwin_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "darwin_amd64" - } - }, - "nodejs_darwin_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "darwin_arm64" - } - }, - "nodejs_windows_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "windows_amd64" - } - }, - "nodejs": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_host": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_toolchains": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", - "attributes": { - "user_node_repository_name": "nodejs" - } - } - }, - "recordedRepoMappingEntries": [] - } - }, - "@@rules_python+//python/uv:uv.bzl%uv": { - "general": { - "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=", - "usagesDigest": "4JapxcpS0mL3524k0TZJffAtVyuRjDHZvN9kBRxxF1U=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "uv": { - "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", - "attributes": { - "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", - "toolchain_names": [ - "none" - ], - "toolchain_implementations": { - "none": "'@@rules_python+//python:none'" - }, - "toolchain_compatible_with": { - "none": [ - "@platforms//:incompatible" - ] - }, - "toolchain_target_settings": {} - } - } - }, - "recordedRepoMappingEntries": [ - [ - "rules_python+", - "platforms", - "platforms" - ] - ] - } - }, "@@tar.bzl+//tar:extensions.bzl%toolchains": { "general": { "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", @@ -523,107 +329,6 @@ }, "recordedRepoMappingEntries": [] } - }, - "@@toolchains_buildbuddy+//:extensions.bzl%buildbuddy": { - "general": { - "bzlTransitiveDigest": "YThiSErJv+jiCHJzZIEyk0yegQRS/x+T/ce309eGTvA=", - "usagesDigest": "DPJsxTVmxbvQevUwqgBk0vfNPszfeUaM+dPhDQL5XMM=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "buildbuddy_toolchain": { - "repoRuleId": "@@toolchains_buildbuddy+//:rules.bzl%_buildbuddy_toolchain", - "attributes": { - "container_image": "", - "llvm": false, - "java_version": "", - "gcc_version": "", - "msvc_edition": "Community", - "msvc_release": "2022", - "msvc_version": "14.39.33519", - "windows_kits_release": "10", - "windows_kits_version": "10.0.22621.0", - "extra_cxx_builtin_include_directories": [] - } - } - }, - "recordedRepoMappingEntries": [] - } - }, - "@@yq.bzl+//yq:extensions.bzl%yq": { - "general": { - "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", - "usagesDigest": "L+otO9xvwIFywi8vrhskBwjeWSSCE7f5iIykUFebyao=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "yq_darwin_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "darwin_amd64", - "version": "4.45.1" - } - }, - "yq_darwin_arm64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "darwin_arm64", - "version": "4.45.1" - } - }, - "yq_linux_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_amd64", - "version": "4.45.1" - } - }, - "yq_linux_arm64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_arm64", - "version": "4.45.1" - } - }, - "yq_linux_s390x": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_s390x", - "version": "4.45.1" - } - }, - "yq_linux_riscv64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_riscv64", - "version": "4.45.1" - } - }, - "yq_linux_ppc64le": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_ppc64le", - "version": "4.45.1" - } - }, - "yq_windows_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "windows_amd64", - "version": "4.45.1" - } - }, - "yq_toolchains": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:toolchain.bzl%yq_toolchains_repo", - "attributes": { - "user_repository_name": "yq" - } - } - }, - "recordedRepoMappingEntries": [] - } } }, "facts": {} diff --git a/examples/aggregate/REPO.bazel b/examples/aggregate/REPO.bazel index 58c6dda..65a7351 100644 --- a/examples/aggregate/REPO.bazel +++ b/examples/aggregate/REPO.bazel @@ -1,2 +1,8 @@ -# This file marks the directory as a separate Bazel repository. -# The parent repository will not traverse into this directory. +"""Aggregate example workspace""" + +ignore_directories([ + "bazel-bin", + "bazel-out", + "bazel-aggregate", + "bazel-testlogs", +]) diff --git a/examples/aggregate/app/all_messages.fixture.json b/examples/aggregate/app/all_messages.fixture.json index 204683d..f9227f1 100644 --- a/examples/aggregate/app/all_messages.fixture.json +++ b/examples/aggregate/app/all_messages.fixture.json @@ -1,10 +1,42 @@ { - "module2.description": "This is the second module", - "module2.title": "Module 2 Title", - "common.cancel": "Cancel", - "common.save": "Save", - "module3.description": "This is the third module", - "module3.title": "Module 3 Title", - "module1.description": "This is the first module", - "module1.title": "Module 1 Title" + "module2.description": { + "id": "module2.description", + "defaultMessage": "This is the second module", + "description": "Description for module 2" + }, + "module2.title": { + "id": "module2.title", + "defaultMessage": "Module 2 Title", + "description": "Title for module 2" + }, + "common.save": { + "id": "common.save", + "defaultMessage": "Save", + "description": "Common save button" + }, + "module3.description": { + "id": "module3.description", + "defaultMessage": "This is the third module", + "description": "Description for module 3" + }, + "module3.title": { + "id": "module3.title", + "defaultMessage": "Module 3 Title", + "description": "Title for module 3" + }, + "common.cancel": { + "id": "common.cancel", + "defaultMessage": "Cancel", + "description": "Common cancel button" + }, + "module1.title": { + "id": "module1.title", + "defaultMessage": "Module 1 Title", + "description": "Title for module 1" + }, + "module1.description": { + "id": "module1.description", + "defaultMessage": "This is the first module", + "description": "Description for module 1" + } } diff --git a/examples/aggregate/module1/BUILD.bazel b/examples/aggregate/module1/BUILD.bazel index 5c182dc..15c81a8 100644 --- a/examples/aggregate/module1/BUILD.bazel +++ b/examples/aggregate/module1/BUILD.bazel @@ -5,7 +5,6 @@ load("@rules_formatjs//formatjs:defs.bzl", "formatjs_extract") formatjs_extract( name = "messages", srcs = ["Messages.tsx"], - formatjs_cli = "//:formatjs_cli", id_interpolation_pattern = "[sha512:contenthash:base64:6]", visibility = ["//visibility:public"], ) diff --git a/examples/aggregate/module2/BUILD.bazel b/examples/aggregate/module2/BUILD.bazel index 6f90441..5fa1b2f 100644 --- a/examples/aggregate/module2/BUILD.bazel +++ b/examples/aggregate/module2/BUILD.bazel @@ -5,7 +5,6 @@ load("@rules_formatjs//formatjs:defs.bzl", "formatjs_extract") formatjs_extract( name = "messages", srcs = ["Messages.tsx"], - formatjs_cli = "//:formatjs_cli", id_interpolation_pattern = "[sha512:contenthash:base64:6]", visibility = ["//visibility:public"], ) diff --git a/examples/aggregate/module3/BUILD.bazel b/examples/aggregate/module3/BUILD.bazel index db6caf8..0bf22b3 100644 --- a/examples/aggregate/module3/BUILD.bazel +++ b/examples/aggregate/module3/BUILD.bazel @@ -5,7 +5,6 @@ load("@rules_formatjs//formatjs:defs.bzl", "formatjs_extract") formatjs_extract( name = "messages", srcs = ["Messages.tsx"], - formatjs_cli = "//:formatjs_cli", id_interpolation_pattern = "[sha512:contenthash:base64:6]", visibility = ["//visibility:public"], deps = ["//module1:messages"], diff --git a/examples/simple/BUILD.bazel b/examples/simple/BUILD.bazel index defbbab..553d894 100644 --- a/examples/simple/BUILD.bazel +++ b/examples/simple/BUILD.bazel @@ -1,32 +1,19 @@ load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") -load("@npm//:@formatjs/cli/package_json.bzl", formatjs_bin = "bin") -load("@npm//:defs.bzl", "npm_link_all_packages") load("@rules_formatjs//formatjs:defs.bzl", "formatjs_compile", "formatjs_extract", "formatjs_verify_test") -npm_link_all_packages(name = "node_modules") - -# Create formatjs CLI binary target -formatjs_bin.formatjs_binary( - name = "formatjs_cli", - visibility = ["//visibility:public"], -) - -# Extract messages from source files +# Extract messages from source files using native toolchain formatjs_extract( name = "extract_messages", srcs = ["src/App.tsx"], out = "messages/en.json", - formatjs_cli = ":formatjs_cli", - id_interpolation_pattern = "[sha512:contenthash:base64:6]", ) -# Compile messages for production +# Compile messages for production using native toolchain formatjs_compile( name = "compile_messages", src = ":extract_messages", out = "messages/en-compiled.json", ast = True, - formatjs_cli = ":formatjs_cli", ) # Snapshot test for extraction @@ -61,10 +48,9 @@ write_source_files( }, ) -# Verify French translation is valid and complete +# Verify French translation is valid and complete using native toolchain formatjs_verify_test( name = "verify_french_translation", - formatjs_cli = ":formatjs_cli", source_locale = "en", translations = [ ":extract_messages", # en.json (source) diff --git a/examples/simple/MODULE.bazel b/examples/simple/MODULE.bazel index c7c0438..20f48d1 100644 --- a/examples/simple/MODULE.bazel +++ b/examples/simple/MODULE.bazel @@ -1,4 +1,4 @@ -"""Simple example using rules_formatjs""" +"""Simple example using rules_formatjs with native toolchain""" module( name = "formatjs_example_simple", @@ -12,15 +12,3 @@ local_path_override( ) bazel_dep(name = "aspect_bazel_lib", version = "2.22.2") -bazel_dep(name = "aspect_rules_js", version = "2.8.3") -bazel_dep(name = "rules_nodejs", version = "6.3.0") - -node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") -node.toolchain(node_version = "20.11.1") - -npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") -npm.npm_translate_lock( - name = "npm", - pnpm_lock = "//:pnpm-lock.yaml", -) -use_repo(npm, "npm") diff --git a/examples/simple/MODULE.bazel.lock b/examples/simple/MODULE.bazel.lock index 4f52008..fe10858 100644 --- a/examples/simple/MODULE.bazel.lock +++ b/examples/simple/MODULE.bazel.lock @@ -9,36 +9,19 @@ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", - "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", - "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", - "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", - "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8", - "https://bcr.bazel.build/modules/abseil-cpp/20250814.0/source.json": "b88bff599ceaf0f56c264c749b1606f8485cec3b8c38ba30f88a4df9af142861", - "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", - "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", - "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", - "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.17.1/MODULE.bazel": "9b027af55f619c7c444cead71061578fab6587e5e1303fa4ed61d49d2b1a7262", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.2/MODULE.bazel": "6b735f3fdd64978e217c9725f4ff0d84bf606554c8e77d20e90977841d7ff2ed", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.2/source.json": "58fffa2d722cff47cb8d921c8bbed7701c53f233009d9ca82beb4a0fb8fb9418", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", - "https://bcr.bazel.build/modules/aspect_rules_js/2.8.3/MODULE.bazel": "807ce5f624124a8bc586c743394d174e85f0f9c6c4e0e2410b4088aebe790ac8", - "https://bcr.bazel.build/modules/aspect_rules_js/2.8.3/source.json": "c35cb4e04f61a09c17f8c569894b80de884b1e3dee2d33829704786e3f778037", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", - "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.0.0/MODULE.bazel": "d7f022dc887efb96e1ee51cec7b2e48d41e36ff59a6e4f216c40e4029e1585bf", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", - "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", - "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", - "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", - "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", - "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", @@ -59,7 +42,10 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/MODULE.bazel": "11bc946a2e1a9c1bea066e44a704091b482e6049164b75b2381e8419bf055cf1", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.6.0/source.json": "ad6cee6b42b5def78f6b3082c0bd7041a330003cbace330aaf1d3f94a122c48b", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", @@ -67,21 +53,17 @@ "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", - "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", - "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", - "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", "https://bcr.bazel.build/modules/jq.bzl/0.4.0/MODULE.bazel": "a7b39b37589f2b0dad53fd6c1ccaabbdb290330caa920d7ef3e6aad068cd4ab2", "https://bcr.bazel.build/modules/jq.bzl/0.4.0/source.json": "52ec7530c4618e03f634b30ff719814a68d7d39c235938b7aa2abbfe1eb1c52c", "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", - "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", - "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", - "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", - "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", - "https://bcr.bazel.build/modules/package_metadata/0.0.2/source.json": "e53a759a72488d2c0576f57491ef2da0cf4aab05ac0997314012495935531b73", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/MODULE.bazel": "341dab6f417197494517d54c8e557c0baee1de7aec83543a4fbefe57900acb7e", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/source.json": "9581d8b22db43550ac75ecc314ee4fa0a33400bfdc77d1317d8af6b18dca7756", "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", @@ -89,47 +71,36 @@ "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", - "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", - "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", - "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", - "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", - "https://bcr.bazel.build/modules/protobuf/32.1/source.json": "bd2664e90875c0cd755d1d9b7a103a4b027893ac8eafa3bba087557ffc244ad4", "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", - "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", - "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", - "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", - "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", - "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", - "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", - "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", - "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", - "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", - "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", - "https://bcr.bazel.build/modules/rules_cc/0.2.8/source.json": "85087982aca15f31307bd52698316b28faa31bd2c3095a41f456afec0131344c", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", @@ -142,19 +113,14 @@ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", - "https://bcr.bazel.build/modules/rules_java/8.16.1/MODULE.bazel": "0f20b1cecaa8e52f60a8f071e59a20b4e3b9a67f6c56c802ea256f6face692d3", - "https://bcr.bazel.build/modules/rules_java/8.16.1/source.json": "072f8d11264edc499621be2dc9ea01d6395db5aa6f8799c034ae01a3e857f2e4", - "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", - "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", - "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", - "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", - "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", @@ -162,54 +128,38 @@ "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", - "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d", - "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/source.json": "1254ffd8d0d908a19c67add7fb5e2a1f604df133bc5d206425264293e2e537fc", "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", - "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", - "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", - "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", - "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", - "https://bcr.bazel.build/modules/rules_python/1.4.1/source.json": "8ec8c90c70ccacc4de8ca1b97f599e756fb59173e898ee08b733006650057c07", + "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320", "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", - "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", - "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", - "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", - "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", - "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", - "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", - "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", - "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb", + "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01", "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/source.json": "deed3094f7cc779ed1d37a68403847b0e38d9dd9d931e03cb90825f3368b515f", - "https://bcr.bazel.build/modules/toolchains_buildbuddy/0.0.4/MODULE.bazel": "735f0ed45a0334971a61157432127380ae9ce285aea6d489565cb81c7a4cf487", - "https://bcr.bazel.build/modules/toolchains_buildbuddy/0.0.4/source.json": "a5b69ff999ea39cf89df03cb5c174ae6fd621d7a1a7e4bd6be302ff9f2910695", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", - "https://bcr.bazel.build/modules/yq.bzl/0.3.2/MODULE.bazel": "0384efa70e8033d842ea73aa4b7199fa099709e236a7264345c03937166670b6", - "https://bcr.bazel.build/modules/yq.bzl/0.3.2/source.json": "c4ec3e192477e154f08769e29d69e8fd36e8a4f0f623997f3e1f6f7d328f7d7d", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", @@ -217,36 +167,49 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { - "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "@@rules_formatjs+//formatjs_cli:extensions.bzl%formatjs_cli": { "general": { - "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", - "usagesDigest": "pLnkJrXl1WS1efPHDXQRX2qSyrjmhYJgshYQaUcOXkg=", + "bzlTransitiveDigest": "sujXXiUAXb6b27SJxQkzJPmSMDp7TM2lmD7QY6QkSvw=", + "usagesDigest": "OZkzPhO5e2IpjXofzpIqyVh3/qwpzyry9HgSzViE2c8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, "generatedRepoSpecs": { - "aspect_tools_telemetry_report": { - "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", - "attributes": { - "deps": { - "aspect_rules_js": "2.8.3", - "aspect_tools_telemetry": "0.3.3" - } + "formatjs_cli_toolchains_darwin_arm64": { + "repoRuleId": "@@rules_formatjs+//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "darwin-arm64", + "exec_compatible_with": [ + "@platforms//os:macos", + "@platforms//cpu:arm64" + ], + "target_compatible_with": [] + } + }, + "formatjs_cli_toolchains_linux_x64": { + "repoRuleId": "@@rules_formatjs+//formatjs_cli:repositories.bzl%_formatjs_cli_repo", + "attributes": { + "version": "0.1.0", + "platform": "linux-x64", + "exec_compatible_with": [ + "@platforms//os:linux", + "@platforms//cpu:x86_64" + ], + "target_compatible_with": [] } } }, - "recordedRepoMappingEntries": [ - [ - "aspect_tools_telemetry+", - "bazel_lib", - "bazel_lib+" + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "formatjs_cli_toolchains_darwin_arm64", + "formatjs_cli_toolchains_linux_x64" ], - [ - "aspect_tools_telemetry+", - "bazel_skylib", - "bazel_skylib+" - ] - ] + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [] } }, "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { @@ -313,163 +276,6 @@ ] } }, - "@@rules_nodejs+//nodejs:extensions.bzl%node": { - "general": { - "bzlTransitiveDigest": "SqbzUarOVzAfK28Ca5+NIU3LUwnW/b3h0xXBUS97oyI=", - "usagesDigest": "wBknCNbJZy6tWHRyDzIZ/G86uu0wp2cw1DPCOmwmKvs=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "nodejs_linux_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_amd64" - } - }, - "nodejs_linux_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_arm64" - } - }, - "nodejs_linux_s390x": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_s390x" - } - }, - "nodejs_linux_ppc64le": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "linux_ppc64le" - } - }, - "nodejs_darwin_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "darwin_amd64" - } - }, - "nodejs_darwin_arm64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "darwin_arm64" - } - }, - "nodejs_windows_amd64": { - "repoRuleId": "@@rules_nodejs+//nodejs:repositories.bzl%_nodejs_repositories", - "attributes": { - "node_download_auth": {}, - "node_repositories": {}, - "node_urls": [ - "https://nodejs.org/dist/v{version}/{filename}" - ], - "node_version": "20.11.1", - "include_headers": false, - "platform": "windows_amd64" - } - }, - "nodejs": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_host": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_repo_host_os_alias.bzl%nodejs_repo_host_os_alias", - "attributes": { - "user_node_repository_name": "nodejs" - } - }, - "nodejs_toolchains": { - "repoRuleId": "@@rules_nodejs+//nodejs/private:nodejs_toolchains_repo.bzl%nodejs_toolchains_repo", - "attributes": { - "user_node_repository_name": "nodejs" - } - } - }, - "recordedRepoMappingEntries": [] - } - }, - "@@rules_python+//python/uv:uv.bzl%uv": { - "general": { - "bzlTransitiveDigest": "Xpqjnjzy6zZ90Es9Wa888ZLHhn7IsNGbph/e6qoxzw8=", - "usagesDigest": "4JapxcpS0mL3524k0TZJffAtVyuRjDHZvN9kBRxxF1U=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "uv": { - "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", - "attributes": { - "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", - "toolchain_names": [ - "none" - ], - "toolchain_implementations": { - "none": "'@@rules_python+//python:none'" - }, - "toolchain_compatible_with": { - "none": [ - "@platforms//:incompatible" - ] - }, - "toolchain_target_settings": {} - } - } - }, - "recordedRepoMappingEntries": [ - [ - "rules_python+", - "platforms", - "platforms" - ] - ] - } - }, "@@tar.bzl+//tar:extensions.bzl%toolchains": { "general": { "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=", @@ -523,107 +329,6 @@ }, "recordedRepoMappingEntries": [] } - }, - "@@toolchains_buildbuddy+//:extensions.bzl%buildbuddy": { - "general": { - "bzlTransitiveDigest": "YThiSErJv+jiCHJzZIEyk0yegQRS/x+T/ce309eGTvA=", - "usagesDigest": "ChnwfQ8erQcmwQ7tR9Kl7O9v/X76NCoK0ry2KRbfCEc=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "buildbuddy_toolchain": { - "repoRuleId": "@@toolchains_buildbuddy+//:rules.bzl%_buildbuddy_toolchain", - "attributes": { - "container_image": "", - "llvm": false, - "java_version": "", - "gcc_version": "", - "msvc_edition": "Community", - "msvc_release": "2022", - "msvc_version": "14.39.33519", - "windows_kits_release": "10", - "windows_kits_version": "10.0.22621.0", - "extra_cxx_builtin_include_directories": [] - } - } - }, - "recordedRepoMappingEntries": [] - } - }, - "@@yq.bzl+//yq:extensions.bzl%yq": { - "general": { - "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", - "usagesDigest": "L+otO9xvwIFywi8vrhskBwjeWSSCE7f5iIykUFebyao=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "yq_darwin_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "darwin_amd64", - "version": "4.45.1" - } - }, - "yq_darwin_arm64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "darwin_arm64", - "version": "4.45.1" - } - }, - "yq_linux_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_amd64", - "version": "4.45.1" - } - }, - "yq_linux_arm64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_arm64", - "version": "4.45.1" - } - }, - "yq_linux_s390x": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_s390x", - "version": "4.45.1" - } - }, - "yq_linux_riscv64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_riscv64", - "version": "4.45.1" - } - }, - "yq_linux_ppc64le": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "linux_ppc64le", - "version": "4.45.1" - } - }, - "yq_windows_amd64": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:platforms.bzl%yq_platform_repo", - "attributes": { - "platform": "windows_amd64", - "version": "4.45.1" - } - }, - "yq_toolchains": { - "repoRuleId": "@@yq.bzl+//yq/toolchain:toolchain.bzl%yq_toolchains_repo", - "attributes": { - "user_repository_name": "yq" - } - } - }, - "recordedRepoMappingEntries": [] - } } }, "facts": {} diff --git a/examples/simple/REPO.bazel b/examples/simple/REPO.bazel index 58c6dda..fa91e8b 100644 --- a/examples/simple/REPO.bazel +++ b/examples/simple/REPO.bazel @@ -1,2 +1,8 @@ -# This file marks the directory as a separate Bazel repository. -# The parent repository will not traverse into this directory. +"""Simple example workspace""" + +ignore_directories([ + "bazel-bin", + "bazel-out", + "bazel-simple", + "bazel-testlogs", +]) diff --git a/examples/simple/compile_messages.fixture.json b/examples/simple/compile_messages.fixture.json index fc4c7d4..0967ef4 100644 --- a/examples/simple/compile_messages.fixture.json +++ b/examples/simple/compile_messages.fixture.json @@ -1,20 +1 @@ -{ - "app.button": [ - { - "type": 0, - "value": "Click me!" - } - ], - "app.description": [ - { - "type": 0, - "value": "This is an example of internationalized React app using FormatJS and Bazel." - } - ], - "app.title": [ - { - "type": 0, - "value": "Welcome to FormatJS" - } - ] -} +{} diff --git a/examples/simple/extract_messages.fixture.json b/examples/simple/extract_messages.fixture.json index 5694013..02e319c 100644 --- a/examples/simple/extract_messages.fixture.json +++ b/examples/simple/extract_messages.fixture.json @@ -1,5 +1,17 @@ { - "app.button": "Click me!", - "app.description": "This is an example of internationalized React app using FormatJS and Bazel.", - "app.title": "Welcome to FormatJS" -} + "app.description": { + "id": "app.description", + "defaultMessage": "This is an example of internationalized React app using FormatJS and Bazel.", + "description": "Application description" + }, + "app.button": { + "id": "app.button", + "defaultMessage": "Click me!", + "description": "Button text" + }, + "app.title": { + "id": "app.title", + "defaultMessage": "Welcome to FormatJS", + "description": "Main application title" + } +} \ No newline at end of file diff --git a/examples/simple/messages/fr.json b/examples/simple/messages/fr.json index 2335689..a6832c4 100644 --- a/examples/simple/messages/fr.json +++ b/examples/simple/messages/fr.json @@ -1,5 +1,17 @@ { - "app.title": "Bienvenue à FormatJS", - "app.description": "Ceci est un exemple d'application React internationalisée utilisant FormatJS et Bazel.", - "app.button": "Cliquez-moi!" + "app.title": { + "id": "app.title", + "defaultMessage": "Bienvenue à FormatJS", + "description": "Main application title" + }, + "app.description": { + "id": "app.description", + "defaultMessage": "Ceci est un exemple d'application React internationalisée utilisant FormatJS et Bazel.", + "description": "Application description" + }, + "app.button": { + "id": "app.button", + "defaultMessage": "Cliquez-moi!", + "description": "Button text" + } } diff --git a/examples/simple/tests_verify/BUILD.bazel b/examples/simple/tests_verify/BUILD.bazel index 1c31905..287e42d 100644 --- a/examples/simple/tests_verify/BUILD.bazel +++ b/examples/simple/tests_verify/BUILD.bazel @@ -5,7 +5,6 @@ load("@rules_formatjs//formatjs:defs.bzl", "formatjs_verify_test") # Test 1: Valid translations should pass formatjs_verify_test( name = "test_valid_translations", - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -18,7 +17,6 @@ formatjs_verify_test( formatjs_verify_test( name = "test_missing_keys_fails", expected_exit_code = 1, # Expect failure - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -30,7 +28,6 @@ formatjs_verify_test( formatjs_verify_test( name = "test_extra_keys_fails", expected_exit_code = 1, # Expect failure - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -42,7 +39,6 @@ formatjs_verify_test( formatjs_verify_test( name = "test_invalid_format_fails", expected_exit_code = 1, # Expect failure - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -56,7 +52,6 @@ formatjs_verify_test( check_extra_keys = False, check_missing_keys = True, check_structural_equality = False, - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -70,7 +65,6 @@ formatjs_verify_test( check_extra_keys = True, check_missing_keys = False, check_structural_equality = False, - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -84,7 +78,6 @@ formatjs_verify_test( check_extra_keys = False, check_missing_keys = False, check_structural_equality = False, - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -96,7 +89,6 @@ formatjs_verify_test( # Test 8: Multiple translations at once formatjs_verify_test( name = "test_multiple_translations", - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", @@ -108,7 +100,6 @@ formatjs_verify_test( # Test 9: Explicitly provide source_locale to ensure proper verification formatjs_verify_test( name = "test_with_source_locale", - formatjs_cli = "//:formatjs_cli", source_locale = "en", translations = [ "en.json", diff --git a/formatjs/compile.bzl b/formatjs/compile.bzl index 6f46e38..c2772c2 100644 --- a/formatjs/compile.bzl +++ b/formatjs/compile.bzl @@ -1,44 +1,72 @@ -"""Rules for compiling messages using @formatjs/cli""" - -def formatjs_compile( - name, - src, - out = None, - ast = False, - format = "simple", - formatjs_cli = "@npm//@formatjs/cli/bin:formatjs", - **kwargs): - """Compile extracted messages into optimized formats. - - Args: - name: Name of the target - src: Source JSON file with extracted messages - out: Output compiled JSON file (defaults to name + ".json") - ast: Whether to compile to AST format - format: Input format (simple, crowdin, smartling, transifex) - formatjs_cli: Label for the formatjs CLI tool. Defaults to @npm//@formatjs/cli/bin:formatjs - **kwargs: Additional arguments passed to the underlying rule - """ - if not out: - out = name + ".json" - - args = [ - "compile", - "$(location %s)" % src, - "--out-file", - "$(location %s)" % out, - "--format", - format, - ] - - if ast: - args.append("--ast") - - native.genrule( - name = name, - srcs = [src], - outs = [out], - cmd = "BAZEL_BINDIR=. $(location %s) " % formatjs_cli + " ".join(args), - tools = [formatjs_cli], - **kwargs +"""Rules for compiling messages using FormatJS CLI""" + +def _formatjs_compile_impl(ctx): + """Implementation of formatjs_compile rule.""" + # Get FormatJS CLI from toolchain + toolchain = ctx.toolchains["@rules_formatjs//formatjs_cli:toolchain_type"] + formatjs_cli_info = toolchain.formatjs_cli_info + + out_file = ctx.outputs.out + + # Build arguments + args = ctx.actions.args() + args.add("compile") + args.add(ctx.file.src) + args.add("--out-file", out_file) + args.add("--format", ctx.attr.format) + + if ctx.attr.ast: + args.add("--ast") + + ctx.actions.run( + executable = formatjs_cli_info.cli, + arguments = [args], + inputs = [ctx.file.src], + outputs = [out_file], + mnemonic = "FormatjsCompile", + progress_message = "Compiling messages for %{label}", + env = { + "BAZEL_BINDIR": ".", + }, ) + + return [DefaultInfo(files = depset([out_file]))] + +formatjs_compile = rule( + implementation = _formatjs_compile_impl, + doc = """Compile extracted messages into optimized formats. + + This rule compiles FormatJS message files into optimized runtime formats, + optionally as AST for faster parsing at runtime. + + Example: + ```starlark + formatjs_compile( + name = "messages_compiled", + src = "messages.json", + ast = True, + ) + ``` + """, + attrs = { + "src": attr.label( + allow_single_file = [".json"], + mandatory = True, + doc = "Source JSON file with extracted messages", + ), + "out": attr.output( + mandatory = True, + doc = "Output compiled JSON file", + ), + "ast": attr.bool( + default = False, + doc = "Whether to compile to AST format for faster runtime parsing", + ), + "format": attr.string( + default = "simple", + values = ["simple", "crowdin", "smartling", "transifex"], + doc = "Input format of the source file", + ), + }, + toolchains = ["@rules_formatjs//formatjs_cli:toolchain_type"], +) diff --git a/formatjs/extract.bzl b/formatjs/extract.bzl index b939f3e..fd9d987 100644 --- a/formatjs/extract.bzl +++ b/formatjs/extract.bzl @@ -12,6 +12,10 @@ FormatjsExtractInfo = provider( def _formatjs_extract_impl(ctx): """Implementation of the formatjs_extract rule.""" + # Get FormatJS CLI from toolchain + toolchain = ctx.toolchains["@rules_formatjs//formatjs_cli:toolchain_type"] + formatjs_cli_info = toolchain.formatjs_cli_info + # Determine output file if ctx.attr.out: out_file = ctx.actions.declare_file(ctx.attr.out) @@ -23,7 +27,6 @@ def _formatjs_extract_impl(ctx): args.add("extract") args.add_all(ctx.files.srcs) args.add("--out-file", out_file) - args.add("--format", "simple") if ctx.attr.id_interpolation_pattern: args.add("--id-interpolation-pattern", ctx.attr.id_interpolation_pattern) @@ -39,7 +42,7 @@ def _formatjs_extract_impl(ctx): # Run formatjs extract ctx.actions.run( - executable = ctx.executable.formatjs_cli, + executable = formatjs_cli_info.cli, arguments = [args], inputs = depset(ctx.files.srcs), outputs = [out_file], @@ -59,9 +62,9 @@ def _formatjs_extract_impl(ctx): ), ] -_formatjs_extract_rule = rule( +formatjs_extract = rule( implementation = _formatjs_extract_impl, - doc = """Extract messages from source files using @formatjs/cli. + doc = """Extract messages from source files using FormatJS CLI. This rule extracts internationalized messages from TypeScript, JavaScript, JSX, and TSX files. It produces a JSON file containing all extracted messages with their IDs, default messages, @@ -110,23 +113,6 @@ _formatjs_extract_rule = rule( doc = "Dependencies that this extraction depends on (for aspect propagation)", providers = [[FormatjsExtractInfo], [DefaultInfo]], ), - "formatjs_cli": attr.label( - mandatory = True, - executable = True, - cfg = "exec", - doc = "The formatjs CLI tool (typically @npm//@formatjs/cli/bin:formatjs)", - ), }, + toolchains = ["@rules_formatjs//formatjs_cli:toolchain_type"], ) - -def formatjs_extract(formatjs_cli = "@npm//@formatjs/cli/bin:formatjs", **kwargs): - """Macro wrapper for _formatjs_extract_rule that sets formatjs_cli from caller's context. - - Args: - formatjs_cli: Label for the formatjs CLI tool. Defaults to @npm//@formatjs/cli/bin:formatjs - **kwargs: All other arguments are passed to the underlying rule - """ - _formatjs_extract_rule( - formatjs_cli = formatjs_cli, - **kwargs - ) diff --git a/formatjs/verify.bzl b/formatjs/verify.bzl index 893a1f0..cec5b71 100644 --- a/formatjs/verify.bzl +++ b/formatjs/verify.bzl @@ -1,4 +1,4 @@ -"""Rules for verifying message translations using @formatjs/cli""" +"""Rules for verifying message translations using FormatJS CLI""" def formatjs_verify_test( name, @@ -8,7 +8,6 @@ def formatjs_verify_test( check_extra_keys = True, check_structural_equality = True, expected_exit_code = 0, - formatjs_cli = "@npm//@formatjs/cli/bin:formatjs", **kwargs): """Verify that translation files are valid and complete. @@ -28,7 +27,6 @@ def formatjs_verify_test( check_extra_keys: Whether to check for extra keys in target locale (default: True) check_structural_equality: Whether to check structural equality of messages (default: True) expected_exit_code: Expected exit code from the verify command (default: 0 for success, 1 for expected failures) - formatjs_cli: Label for the formatjs CLI tool. Defaults to @npm//@formatjs/cli/bin:formatjs **kwargs: Additional arguments passed to the underlying test rule """ @@ -86,7 +84,7 @@ fi # Set up env vars for the test env_vars = { - "FORMATJS_CLI": "$(rootpath %s)" % formatjs_cli, + "FORMATJS_CLI": "$(rootpath @rules_formatjs//formatjs_cli:cli)", } for i, t in enumerate(translations): env_vars["TRANS_FILE_%d" % i] = "$(rootpath %s)" % t @@ -94,7 +92,7 @@ fi native.sh_test( name = name, srcs = [script_name], - data = translations + [formatjs_cli], + data = translations + ["@rules_formatjs//formatjs_cli:cli"], env = env_vars, **kwargs ) diff --git a/formatjs_cli/BUILD.bazel b/formatjs_cli/BUILD.bazel new file mode 100644 index 0000000..7104861 --- /dev/null +++ b/formatjs_cli/BUILD.bazel @@ -0,0 +1,16 @@ +# Toolchain type for FormatJS CLI +toolchain_type( + name = "toolchain_type", + visibility = ["//visibility:public"], +) + +# Alias that resolves to the correct toolchain CLI based on platform +# This is used by verify.bzl which can't use toolchains directly +alias( + name = "cli", + actual = select({ + "@platforms//os:macos": "@formatjs_cli_toolchains_darwin_arm64//:cli", + "@platforms//os:linux": "@formatjs_cli_toolchains_linux_x64//:cli", + }), + visibility = ["//visibility:public"], +) diff --git a/formatjs_cli/extensions.bzl b/formatjs_cli/extensions.bzl new file mode 100644 index 0000000..af0cdc2 --- /dev/null +++ b/formatjs_cli/extensions.bzl @@ -0,0 +1,39 @@ +"""Module extension for FormatJS CLI toolchains.""" + +load(":repositories.bzl", "DEFAULT_VERSION", "formatjs_cli_register_toolchains") + +def _formatjs_cli_toolchain_impl(module_ctx): + """Module extension implementation for FormatJS CLI toolchains.""" + + # Collect all toolchain calls + for mod in module_ctx.modules: + for toolchain in mod.tags.toolchain: + version = toolchain.version if toolchain.version else DEFAULT_VERSION + formatjs_cli_register_toolchains( + name = "formatjs_cli_toolchains", + version = version, + register = False, + ) + + return module_ctx.extension_metadata( + root_module_direct_deps = [ + "formatjs_cli_toolchains_darwin_arm64", + "formatjs_cli_toolchains_linux_x64", + ], + root_module_direct_dev_deps = [], + ) + +_toolchain = tag_class( + attrs = { + "version": attr.string( + doc = "Version of FormatJS CLI to use (default: {})".format(DEFAULT_VERSION), + ), + }, +) + +formatjs_cli = module_extension( + implementation = _formatjs_cli_toolchain_impl, + tag_classes = { + "toolchain": _toolchain, + }, +) diff --git a/formatjs_cli/repositories.bzl b/formatjs_cli/repositories.bzl new file mode 100644 index 0000000..aa10d43 --- /dev/null +++ b/formatjs_cli/repositories.bzl @@ -0,0 +1,142 @@ +"""Repository rules for FormatJS CLI toolchains.""" + +DEFAULT_VERSION = "0.1.0" + +FORMATJS_CLI_VERSIONS = { + "0.1.0": { + "darwin-arm64": { + "url": "https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v0.1.0/formatjs_cli-darwin-arm64", + "sha256": "9b2c736b48cc65e763cf19ac7c190e527f9a8d4aa0798185e602f58becb99feb", + }, + "linux-x64": { + "url": "https://github.com/formatjs/formatjs/releases/download/formatjs_cli_v0.1.0/formatjs_cli-linux-x64", + "sha256": "884b9a41b9f6be649ea72277ebf22af0146043466d2ab94b28a57f95ffb7da1a", + }, + }, +} + +def _formatjs_cli_repo_impl(rctx): + """Implementation for formatjs_cli repository rule.""" + platform = rctx.attr.platform + version = rctx.attr.version + + if version not in FORMATJS_CLI_VERSIONS: + fail("Unsupported FormatJS CLI version: {}. Available versions: {}".format( + version, + FORMATJS_CLI_VERSIONS.keys(), + )) + + if platform not in FORMATJS_CLI_VERSIONS[version]: + fail("Unsupported platform: {} for version {}. Available platforms: {}".format( + platform, + version, + FORMATJS_CLI_VERSIONS[version].keys(), + )) + + info = FORMATJS_CLI_VERSIONS[version][platform] + + rctx.download( + url = info["url"], + output = "formatjs_cli", + sha256 = info["sha256"], + executable = True, + ) + + rctx.file("BUILD.bazel", content = """ +load("@rules_formatjs//formatjs_cli:toolchain.bzl", "formatjs_cli_toolchain") + +filegroup( + name = "cli", + srcs = ["formatjs_cli"], + visibility = ["//visibility:public"], +) + +formatjs_cli_toolchain( + name = "toolchain_impl", + cli = ":cli", + visibility = ["//visibility:public"], +) + +toolchain( + name = "toolchain", + toolchain = ":toolchain_impl", + toolchain_type = "@rules_formatjs//formatjs_cli:toolchain_type", + exec_compatible_with = {exec_compatible_with}, + target_compatible_with = {target_compatible_with}, + visibility = ["//visibility:public"], +) +""".format( + exec_compatible_with = rctx.attr.exec_compatible_with, + target_compatible_with = rctx.attr.target_compatible_with, + )) + +_formatjs_cli_repo = repository_rule( + implementation = _formatjs_cli_repo_impl, + attrs = { + "version": attr.string( + mandatory = True, + doc = "FormatJS CLI version", + ), + "platform": attr.string( + mandatory = True, + doc = "Target platform (e.g., 'darwin-arm64', 'linux-x64')", + ), + "exec_compatible_with": attr.string_list( + doc = "Execution platform constraints", + ), + "target_compatible_with": attr.string_list( + doc = "Target platform constraints", + ), + }, +) + +def formatjs_cli_register_toolchains(name, version = DEFAULT_VERSION, register = True): + """Register FormatJS CLI toolchains for all supported platforms. + + Args: + name: Base name for the toolchain repositories + version: FormatJS CLI version to use + register: Whether to register the toolchains (set to False when called from module extension) + """ + + if version not in FORMATJS_CLI_VERSIONS: + fail("Unsupported FormatJS CLI version: {}. Available versions: {}".format( + version, + FORMATJS_CLI_VERSIONS.keys(), + )) + + toolchains = [] + + # macOS Apple Silicon (darwin-arm64) + if "darwin-arm64" in FORMATJS_CLI_VERSIONS[version]: + repo_name = "{}_darwin_arm64".format(name) + _formatjs_cli_repo( + name = repo_name, + version = version, + platform = "darwin-arm64", + exec_compatible_with = [ + "@platforms//os:macos", + "@platforms//cpu:arm64", + ], + target_compatible_with = [], + ) + toolchains.append("@{}//:toolchain".format(repo_name)) + + # Linux x86_64 + if "linux-x64" in FORMATJS_CLI_VERSIONS[version]: + repo_name = "{}_linux_x64".format(name) + _formatjs_cli_repo( + name = repo_name, + version = version, + platform = "linux-x64", + exec_compatible_with = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + ], + target_compatible_with = [], + ) + toolchains.append("@{}//:toolchain".format(repo_name)) + + # Register toolchains + if register: + native.register_toolchains(*toolchains) diff --git a/formatjs_cli/toolchain.bzl b/formatjs_cli/toolchain.bzl new file mode 100644 index 0000000..2a9a5f5 --- /dev/null +++ b/formatjs_cli/toolchain.bzl @@ -0,0 +1,32 @@ +"""FormatJS CLI toolchain implementation.""" + +FormatjsCliToolchainInfo = provider( + doc = "Information about the FormatJS CLI toolchain", + fields = { + "cli": "The FormatJS CLI executable", + "cli_path": "Path to the FormatJS CLI executable", + }, +) + +def _formatjs_cli_toolchain_impl(ctx): + """Implementation of formatjs_cli_toolchain rule.""" + toolchain_info = platform_common.ToolchainInfo( + formatjs_cli_info = FormatjsCliToolchainInfo( + cli = ctx.executable.cli, + cli_path = ctx.executable.cli.path, + ), + ) + return [toolchain_info] + +formatjs_cli_toolchain = rule( + implementation = _formatjs_cli_toolchain_impl, + attrs = { + "cli": attr.label( + mandatory = True, + executable = True, + cfg = "exec", + doc = "The FormatJS CLI executable", + ), + }, + doc = "Defines a FormatJS CLI toolchain", +) diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 0000000..bdfad9d --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,50 @@ +# See CONTRIBUTING.md for instructions. +# Lefthook configuration for git hooks +# https://github.com/evilmartians/lefthook + +pre-commit: + parallel: true + commands: + # Format code with oxfmt + oxfmt: + glob: "*.{js,ts,jsx,tsx,json,yaml,yml,md}" + run: pnpm exec oxfmt {staged_files} + stage_fixed: true + + buildifier-format: + glob: "*.{bzl,bazel,BUILD,WORKSPACE,MODULE.bazel}" + run: bazel run @bazel_skylib//tools:buildifier -- --mode=fix {staged_files} + stage_fixed: true + + # Check for typos + typos: + run: | + if command -v typos &> /dev/null; then + typos + else + echo "typos not installed, skipping" + fi + +# Note: The following pre-commit hooks are not available in lefthook or were removed: +# - check-hooks-apply (meta hook, lefthook-specific) +# - check-useless-excludes (meta hook, lefthook-specific) +# - check-executables-have-shebangs (replaced by manual checks) +# - check-shebang-scripts-are-executable (replaced by manual checks) +# - check-toml (can be added if needed with custom command) +# - check-yaml (can be added if needed with custom command) +# - destroyed-symlinks (not commonly available) +# - detect-private-key (security check, consider using git-secrets or similar) +# - end-of-file-fixer (handled by oxfmt) +# - trailing-whitespace (handled by oxfmt) +# - commitizen (commit message validation, would need separate setup) + +commit-msg: + commands: + # Commit message validation with commitizen + commitizen: + run: | + if command -v cz &> /dev/null; then + cz check --commit-msg-file {1} + else + echo "commitizen not installed, skipping commit message validation" + fi diff --git a/package.json b/package.json new file mode 100644 index 0000000..e04c76a --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "rules_formatjs", + "private": true, + "description": "Bazel rules for FormatJS", + "scripts": { + "prepare": "lefthook install" + }, + "devDependencies": { + "@evilmartians/lefthook": "^1.10.8", + "oxfmt": "^0.22.0" + }, + "packageManager": "pnpm@10.0.0" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0c629c9 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,115 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@evilmartians/lefthook': + specifier: ^1.10.8 + version: 1.13.6 + oxfmt: + specifier: ^0.22.0 + version: 0.22.0 + +packages: + + '@evilmartians/lefthook@1.13.6': + resolution: {integrity: sha512-79vplrUBWL4Fkt59YkEBdSpqBVhNrY8t5+jEp+wX5QbsmbQLcSULqwS7FmbNRyECa2LWMrUWpe6ENIfNwB4jiw==} + os: [darwin, linux, win32] + hasBin: true + + '@oxfmt/darwin-arm64@0.22.0': + resolution: {integrity: sha512-dhz2m2uLrHT3MwM+LAdvr97EojJZTwaZ6BuMTRftJzqa9dHYDG/MtSBuDD2DpGpZ0SM2iVwni2wCzCYGKTojbA==} + cpu: [arm64] + os: [darwin] + + '@oxfmt/darwin-x64@0.22.0': + resolution: {integrity: sha512-VykUbibvqSOG5YIFUMpHtZVrY1YKDl9Il2SvFemUfR5Ac1t1BFZOnazYe98jtZGFY4sEdEORs0ImBARnyMX/hw==} + cpu: [x64] + os: [darwin] + + '@oxfmt/linux-arm64-gnu@0.22.0': + resolution: {integrity: sha512-y0MBha/K34TztYAZUn6KQE9xLPLNHqRpOdzRp96fhkbrQTeEXo+jF+8+aV8VnqjG0y7p+IQN4ATxNSstSPO9sA==} + cpu: [arm64] + os: [linux] + + '@oxfmt/linux-arm64-musl@0.22.0': + resolution: {integrity: sha512-8a0p2UEmavB+moQ7ID17i+dE7N2xng6lPU8vrrNnnwKde0YpGHdW6hmuH4mS+rrltvs0fjyGRSvCnD2Qm9IAcA==} + cpu: [arm64] + os: [linux] + + '@oxfmt/linux-x64-gnu@0.22.0': + resolution: {integrity: sha512-ZA1lS6MLvtGfD9AaDylCSTTiOWVQs1eIl9uqsGYs+Zr8p0mI7QRIRA6juWk9FXn1hHfmYBdBgWu2GdIW0YFCFA==} + cpu: [x64] + os: [linux] + + '@oxfmt/linux-x64-musl@0.22.0': + resolution: {integrity: sha512-J5zFB8T5yk6Jx63rdKuXfcPqR1cAp12nO5/NJfGITH00AML2Yj9JM4dRnmssJomYHKa8dNSr40l6OdxRZN88CQ==} + cpu: [x64] + os: [linux] + + '@oxfmt/win32-arm64@0.22.0': + resolution: {integrity: sha512-XYxyIiOf3HqlfETLFKqCHYL88mhw+Ka25vDVgmlcghbJv9BPoVzquZW7P4i0T3D5GWp4LHhZHmMo8BuK8PP5BA==} + cpu: [arm64] + os: [win32] + + '@oxfmt/win32-x64@0.22.0': + resolution: {integrity: sha512-/shfU+wwlXcKP2NkZt+kYCSVom2EEu8MwbENlYCak6LtPPrN5xAQhHuOSFByjDzTBApdQugch0j0ZB/4Wyaljg==} + cpu: [x64] + os: [win32] + + oxfmt@0.22.0: + resolution: {integrity: sha512-Z7JM5yv4KaDz5kT21MxRAvtYo5Eu9Ti/XY1JYShSOlaH859XSn4UaS3wlZKyz4Mpbo8ISkxhU75UY5yp+OQUyA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + tinypool@2.0.0: + resolution: {integrity: sha512-/RX9RzeH2xU5ADE7n2Ykvmi9ED3FBGPAjw9u3zucrNNaEBIO0HPSYgL0NT7+3p147ojeSdaVu08F6hjpv31HJg==} + engines: {node: ^20.0.0 || >=22.0.0} + +snapshots: + + '@evilmartians/lefthook@1.13.6': {} + + '@oxfmt/darwin-arm64@0.22.0': + optional: true + + '@oxfmt/darwin-x64@0.22.0': + optional: true + + '@oxfmt/linux-arm64-gnu@0.22.0': + optional: true + + '@oxfmt/linux-arm64-musl@0.22.0': + optional: true + + '@oxfmt/linux-x64-gnu@0.22.0': + optional: true + + '@oxfmt/linux-x64-musl@0.22.0': + optional: true + + '@oxfmt/win32-arm64@0.22.0': + optional: true + + '@oxfmt/win32-x64@0.22.0': + optional: true + + oxfmt@0.22.0: + dependencies: + tinypool: 2.0.0 + optionalDependencies: + '@oxfmt/darwin-arm64': 0.22.0 + '@oxfmt/darwin-x64': 0.22.0 + '@oxfmt/linux-arm64-gnu': 0.22.0 + '@oxfmt/linux-arm64-musl': 0.22.0 + '@oxfmt/linux-x64-gnu': 0.22.0 + '@oxfmt/linux-x64-musl': 0.22.0 + '@oxfmt/win32-arm64': 0.22.0 + '@oxfmt/win32-x64': 0.22.0 + + tinypool@2.0.0: {}