diff --git a/.github/shared-actions/windows-bazel-test/action.yml b/.github/shared-actions/windows-bazel-test/action.yml
index cb72d4febd61..e92931a1cf80 100644
--- a/.github/shared-actions/windows-bazel-test/action.yml
+++ b/.github/shared-actions/windows-bazel-test/action.yml
@@ -18,16 +18,15 @@ runs:
steps:
- name: Initialize WSL
id: init_wsl
- uses: angular/dev-infra/github-actions/setup-wsl@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528
+ uses: angular/dev-infra/github-actions/setup-wsl@16e272eaa88efe5891e7e6c8e13b956ae7e5a73e
with:
wsl_firewall_interface: 'vEthernet (WSL (Hyper-V firewall))'
- - name: Installing pnpm (in WSL)
- run: npm install -g pnpm@9
- shell: wsl-bash {0}
-
- name: Install node modules in WSL (re-using from previous install/cache restore)
run: |
+ export NVM_DIR="$HOME/.nvm"
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
+
cd ${{steps.init_wsl.outputs.repo_path}}
pnpm install --frozen-lockfile
shell: wsl-bash {0}
@@ -35,6 +34,9 @@ runs:
- name: Build test binary for Windows (inside WSL)
shell: wsl-bash {0}
run: |
+ export NVM_DIR="$HOME/.nvm"
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
+
cd ${{steps.init_wsl.outputs.repo_path}}
pnpm bazel \
build --config=e2e //tests/legacy-cli:${{inputs.test_target_name}} --platforms=tools:windows_x64
@@ -54,6 +56,9 @@ runs:
- name: Convert symlinks for Windows host
shell: wsl-bash {0}
run: |
+ export NVM_DIR="$HOME/.nvm"
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
+
cd ${{steps.init_wsl.outputs.repo_path}}
runfiles_dir="/mnt/c/test/dist/bin/tests/legacy-cli/${{inputs.test_target_name}}_/${{inputs.test_target_name}}.bat.runfiles"
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 2adae6939dbb..33abf4ad87f0 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -127,24 +127,23 @@ jobs:
- name: Run CLI E2E tests
run: pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }}
- # Temporarily disabled due to https://github.com/Vampire/setup-wsl/issues/76.
- # e2e-windows-subset:
- # needs: build
- # runs-on: windows-2025
- # steps:
- # - name: Initialize environment
- # uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@59c46175bf3a8870c0c2ceb9de1eb741fd50d415
- # - name: Setup Bazel
- # uses: angular/dev-infra/github-actions/bazel/setup@59c46175bf3a8870c0c2ceb9de1eb741fd50d415
- # - name: Setup Bazel RBE
- # uses: angular/dev-infra/github-actions/bazel/configure-remote@59c46175bf3a8870c0c2ceb9de1eb741fd50d415
- # with:
- # allow_windows_rbe: true
- # - name: Run CLI E2E tests
- # uses: ./.github/shared-actions/windows-bazel-test
- # with:
- # test_target_name: e2e_node22
- # test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts"
+ e2e-windows-subset:
+ needs: build
+ runs-on: windows-2025
+ steps:
+ - name: Initialize environment
+ uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528
+ - name: Setup Bazel
+ uses: angular/dev-infra/github-actions/bazel/setup@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528
+ - name: Setup Bazel RBE
+ uses: angular/dev-infra/github-actions/bazel/configure-remote@fbdd8b7df383ae8fb34907a98353c1e8f0f5e528
+ with:
+ allow_windows_rbe: true
+ - name: Run CLI E2E tests
+ uses: ./.github/shared-actions/windows-bazel-test
+ with:
+ test_target_name: e2e_node22
+ test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts"
e2e-package-managers:
needs: build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 605cddd12017..d2b5310bd2ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,47 @@
+
+
+# 20.2.0-rc.1 (2025-08-15)
+
+### @angular/cli
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------ |
+| [8ba6b0bcc](https://github.com/angular/angular-cli/commit/8ba6b0bcc8c8087875d14a0aefc6b7b52f39ce2a) | fix | use correct path for MCP get_best_practices tool |
+
+### @schematics/angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------- |
+| [ffe6fb916](https://github.com/angular/angular-cli/commit/ffe6fb916d496da1c6c20942f6e6b05a679b0f7d) | fix | allow AI config prompt to be skipped without selecting a value |
+| [6a79f9a75](https://github.com/angular/angular-cli/commit/6a79f9a75cdcbb0761c4044066748f4eb788a57f) | fix | zoneless is now stable |
+
+
+
+
+
+# 20.2.0-rc.0 (2025-08-13)
+
+### @angular/cli
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------- |
+| [b4de9a1bf](https://github.com/angular/angular-cli/commit/b4de9a1bf50a35404fb79eb3f120faafd0ce825a) | feat | add --experimental-tool option to mcp command |
+| [755ba70fd](https://github.com/angular/angular-cli/commit/755ba70fd7ef38793d15797ba402020c375c3295) | feat | add --local-only option to mcp command |
+| [59d7ef343](https://github.com/angular/angular-cli/commit/59d7ef343b6f1feea37a019935578c560d3d5e41) | feat | add --read-only option to mcp command |
+| [4e92eb6f1](https://github.com/angular/angular-cli/commit/4e92eb6f17cb30259bc8e8d1979bbd9989bc5ad0) | feat | add modernize tool to the MCP server |
+
+### @schematics/angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------- |
+| [2e3cfd598](https://github.com/angular/angular-cli/commit/2e3cfd598c9366d0036a52cd18024317b33e6fca) | feat | add migration to remove default Karma configurations |
+| [d80dae276](https://github.com/angular/angular-cli/commit/d80dae276e9554c13e0c37640d0db8acafc9d48b) | feat | add schematics to generate ai context files. |
+| [6a78ef0ce](https://github.com/angular/angular-cli/commit/6a78ef0cec4875be76d9241499db67ddac6e14df) | fix | add extra prettier config |
+| [e46d9c54f](https://github.com/angular/angular-cli/commit/e46d9c54f07e32dc05e29a3533ce1bd063ff9f61) | fix | correct configure the `typeSeparator` in the library schematic |
+| [b017f84fd](https://github.com/angular/angular-cli/commit/b017f84fdaf36bc0fcad2241846665c73b52b6d8) | fix | improve coverage directory handling for Karma configuration comparisons |
+
+
+
# 20.1.6 (2025-08-13)
@@ -4222,6 +4266,7 @@ Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr Wysocki
```scss
@import 'font-awesome/scss/font-awesome';
```
+
- By default the CLI will use Sass modern API, While not recommended, users can still opt to use legacy API by setting `NG_BUILD_LEGACY_SASS=1`.
- Internally the Angular CLI now always set the TypeScript `target` to `ES2022` and `useDefineForClassFields` to `false` unless the target is set to `ES2022` or later in the TypeScript configuration. To control ECMA version and features use the Browerslist configuration.
diff --git a/MODULE.bazel b/MODULE.bazel
index f90ed9010d4c..38d86e49442a 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,5 +1,196 @@
-# TODO(devversion): Investigate bzlmod and use it where possible.
+"""Rules/toolchains for angular_cli with Bazel."""
module(
name = "angular_cli",
)
+
+bazel_dep(name = "yq.bzl", version = "0.2.0")
+bazel_dep(name = "rules_nodejs", version = "6.5.0")
+bazel_dep(name = "aspect_rules_js", version = "2.4.2")
+bazel_dep(name = "aspect_rules_ts", version = "3.6.3")
+bazel_dep(name = "rules_pkg", version = "0.8.1")
+
+# Alow for usage of rules_pkg@0.8.1 even though other deps want a later verison.
+multiple_version_override(
+ module_name = "rules_pkg",
+ versions = [
+ "0.8.1",
+ "1.1.0",
+ ],
+)
+
+bazel_dep(name = "rules_python", version = "1.5.3")
+single_version_override(
+ module_name = "rules_python",
+ version = "1.5.3",
+)
+
+bazel_dep(name = "aspect_bazel_lib", version = "2.20.0")
+bazel_dep(name = "bazel_skylib", version = "1.8.1")
+bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1")
+bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0")
+bazel_dep(name = "rules_angular")
+git_override(
+ module_name = "rules_angular",
+ commit = "a957283cdef0ade1fc6d1d7404f14577cebd3642",
+ remote = "https://github.com/devversion/rules_angular.git",
+)
+
+bazel_dep(name = "devinfra")
+git_override(
+ module_name = "devinfra",
+ commit = "7a11f99c467ca5ae4411c27beeec4300e32b616a",
+ remote = "https://github.com/angular/dev-infra.git",
+)
+
+bazel_dep(name = "rules_sass")
+git_override(
+ module_name = "rules_sass",
+ commit = "76078d5e9776a0080dcee496e90b88d8a6179c19",
+ remote = "https://github.com/devversion/rules_sass.git",
+)
+
+bazel_dep(name = "rules_browsers")
+git_override(
+ module_name = "rules_browsers",
+ commit = "8ee9ae3216ef26516c8ef20537c89857343cdc3a",
+ remote = "https://github.com/devversion/rules_browsers.git",
+)
+
+# The below is needed until https://github.com/bazel-contrib/rules_nodejs/pull/3853 is merged and released.
+NODE_24_VERSION = "24.0.0"
+
+NODE_24_REPO = {
+ "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"),
+ "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"),
+ "24.0.0-linux_arm64": ("node-v24.0.0-linux-arm64.tar.xz", "node-v24.0.0-linux-arm64", "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"),
+ "24.0.0-linux_ppc64le": ("node-v24.0.0-linux-ppc64le.tar.xz", "node-v24.0.0-linux-ppc64le", "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"),
+ "24.0.0-linux_s390x": ("node-v24.0.0-linux-s390x.tar.xz", "node-v24.0.0-linux-s390x", "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"),
+ "24.0.0-linux_amd64": ("node-v24.0.0-linux-x64.tar.xz", "node-v24.0.0-linux-x64", "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"),
+ "24.0.0-windows_amd64": ("node-v24.0.0-win-x64.zip", "node-v24.0.0-win-x64", "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"),
+}
+
+node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
+node.toolchain(
+ name = "nodejs",
+ node_repositories = NODE_24_REPO,
+ node_version = NODE_24_VERSION,
+)
+use_repo(node, "nodejs_toolchains")
+use_repo(node, "nodejs_darwin_amd64")
+use_repo(node, "nodejs_darwin_arm64")
+use_repo(node, "nodejs_linux_amd64")
+use_repo(node, "nodejs_linux_arm64")
+use_repo(node, "nodejs_linux_ppc64le")
+use_repo(node, "nodejs_linux_s390x")
+use_repo(node, "nodejs_windows_amd64")
+
+node_dev = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
+
+# Node.js 20
+node_dev.toolchain(
+ name = "node20",
+ node_version = "20.19.0",
+)
+use_repo(node_dev, "node20_darwin_arm64")
+use_repo(node_dev, "node20_darwin_amd64")
+use_repo(node_dev, "node20_linux_amd64")
+use_repo(node_dev, "node20_linux_arm64")
+use_repo(node_dev, "node20_linux_s390x")
+use_repo(node_dev, "node20_linux_ppc64le")
+use_repo(node_dev, "node20_windows_amd64")
+
+# Node.js 22
+node_dev.toolchain(
+ name = "node22",
+ node_version = "22.12.0",
+)
+use_repo(node_dev, "node22_darwin_arm64")
+use_repo(node_dev, "node22_darwin_amd64")
+use_repo(node_dev, "node22_linux_amd64")
+use_repo(node_dev, "node22_linux_arm64")
+use_repo(node_dev, "node22_linux_s390x")
+use_repo(node_dev, "node22_linux_ppc64le")
+use_repo(node_dev, "node22_windows_amd64")
+
+# Node.js 24
+node_dev.toolchain(
+ name = "node24",
+ node_repositories = NODE_24_REPO,
+ node_version = NODE_24_VERSION,
+)
+use_repo(node_dev, "node24_darwin_arm64")
+use_repo(node_dev, "node24_darwin_amd64")
+use_repo(node_dev, "node24_linux_amd64")
+use_repo(node_dev, "node24_linux_arm64")
+use_repo(node_dev, "node24_linux_s390x")
+use_repo(node_dev, "node24_linux_ppc64le")
+use_repo(node_dev, "node24_windows_amd64")
+
+npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
+npm.npm_translate_lock(
+ name = "npm",
+ custom_postinstalls = {
+ # TODO: Standardize browser management for `rules_js`
+ "webdriver-manager": "node ./bin/webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21",
+ },
+ data = [
+ "//:package.json",
+ "//:pnpm-workspace.yaml",
+ "//modules/testing/builder:package.json",
+ "//packages/angular/build:package.json",
+ "//packages/angular/cli:package.json",
+ "//packages/angular/create/package.json",
+ "//packages/angular/pwa:package.json",
+ "//packages/angular/ssr:package.json",
+ "//packages/angular_devkit/architect:package.json",
+ "//packages/angular_devkit/architect_cli:package.json",
+ "//packages/angular_devkit/build_angular:package.json",
+ "//packages/angular_devkit/build_webpack:package.json",
+ "//packages/angular_devkit/core:package.json",
+ "//packages/angular_devkit/schematics:package.json",
+ "//packages/angular_devkit/schematics_cli:package.json",
+ "//packages/ngtools/webpack:package.json",
+ "//packages/schematics/angular:package.json",
+ "//tests:package.json",
+ "//tools/baseline_browserslist:package.json",
+ ],
+ lifecycle_hooks_envs = {
+ # TODO: Standardize browser management for `rules_js`
+ "puppeteer": ["PUPPETEER_DOWNLOAD_PATH=./downloads"],
+ },
+ lifecycle_hooks_execution_requirements = {
+ # Needed for downloading chromedriver.
+ # Also `update-config` of webdriver manager would store an absolute path;
+ # which would then break execution.
+ "webdriver-manager": ["local"],
+ },
+ npmrc = "//:.npmrc",
+ pnpm_lock = "//:pnpm-lock.yaml",
+ verify_node_modules_ignored = "//:.bazelignore",
+)
+use_repo(npm, "npm")
+
+rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext")
+rules_ts_ext.deps(
+ name = "angular_cli_npm_typescript",
+ # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity'
+ ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ ts_version_from = "//:package.json",
+)
+use_repo(rules_ts_ext, **{"npm_typescript": "angular_cli_npm_typescript"})
+
+rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular")
+rules_angular.setup(
+ name = "components_rules_angular_configurable_deps",
+ angular_compiler_cli = "//:node_modules/@angular/compiler-cli",
+ typescript = "//:node_modules/typescript",
+)
+use_repo(rules_angular, **{"rules_angular_configurable_deps": "components_rules_angular_configurable_deps"})
+
+register_toolchains(
+ "@devinfra//bazel/git-toolchain:git_linux_toolchain",
+ "@devinfra//bazel/git-toolchain:git_macos_x86_toolchain",
+ "@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain",
+ "@devinfra//bazel/git-toolchain:git_windows_toolchain",
+)
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index 3137c9f1d3fc..99d849fa4866 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -4,60 +4,171 @@
"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/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad",
+ "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/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef",
"https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.0.0/MODULE.bazel": "e118477db5c49419a88d78ebc7a2c2cea9d49600fe0f490c1903324a2c16ecd9",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/MODULE.bazel": "c5565bac49e1973227225b441fad1c938d498d83df62dc5da95b2fab0f0626a2",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/source.json": "3eaada79dd3c65b6c57d5fc33c57ffd2896c4ebd78c4c9001a790a70f7f50e61",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838",
+ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14",
+ "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/MODULE.bazel": "499ce65b6126f344f9a630040b9db91b36b20c6d1436026120067d922c2d69bd",
+ "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.22.1/source.json": "84138a41a9e71655cb97d39fcb80f6e2ba7e754d5601fb14f5a7d14080dff409",
+ "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/MODULE.bazel": "071d1952527721bf8b180e1299def24edaece9d7466e31a311981640da82c6be",
+ "https://bcr.bazel.build/modules/aspect_rules_jasmine/2.0.0/source.json": "45fa9603cdfe100575a12d8b65fa425fe8713dd8c9f0cdf802168b670bc0e299",
+ "https://bcr.bazel.build/modules/aspect_rules_js/2.0.0/MODULE.bazel": "b45b507574aa60a92796e3e13c195cd5744b3b8aff516a9c0cb5ae6a048161c5",
+ "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/MODULE.bazel": "0d01db38b96d25df7ed952a5e96eac4b3802723d146961974bf020f6dd07591d",
+ "https://bcr.bazel.build/modules/aspect_rules_js/2.4.2/source.json": "854a600536a6fa4efae974a19271ae3d86d39705094cc41331724583398bb0b6",
+ "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/MODULE.bazel": "d09db394970f076176ce7bab5b5fa7f0d560fd4f30b8432ea5e2c2570505b130",
+ "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.3/source.json": "641e58c62e5090d52a0d3538451893acdb2d79a36e8b3d1d30a013c580bc2058",
+ "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/MODULE.bazel": "20f53b145f40957a51077ae90b37b7ce83582a1daf9350349f0f86179e19dd0d",
+ "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.3/source.json": "e0a34c61e5315d41e9b90e4771a60e0924f80a2810ec15e7d489e6249c0dea56",
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
- "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015",
+ "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.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f",
+ "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_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.0/MODULE.bazel": "2ab127ef8d56a739a99bb2ce00ec4c7d1ecc7977d4370c0ca6efd0d8f03d6d99",
+ "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.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749",
+ "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/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",
+ "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/source.json": "fa7b512dfcb5eafd90ce3959cf42a2a6fe96144ebbb4b3b3928054895f2afac2",
+ "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.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206",
+ "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.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f",
+ "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5",
+ "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.2/source.json": "e53a759a72488d2c0576f57491ef2da0cf4aab05ac0997314012495935531b73",
+ "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/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
- "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6",
+ "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/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b",
+ "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+ "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-rc3/source.json": "c16a6488fb279ef578da7098e605082d72ed85fc8d843eaae81e7d27d0f4625d",
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
"https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+ "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.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.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430",
+ "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.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
+ "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.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
"https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1",
- "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d",
+ "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.5.1/source.json": "db1a77d81b059e0f84985db67a22f3f579a529a86b7997605be3d214a0abe38e",
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
- "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35",
+ "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/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.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/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a",
+ "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.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e",
+ "https://bcr.bazel.build/modules/rules_nodejs/6.3.0/MODULE.bazel": "45345e4aba35dd6e4701c1eebf5a4e67af4ed708def9ebcdc6027585b34ee52d",
+ "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/MODULE.bazel": "546d0cf79f36f9f6e080816045f97234b071c205f4542e3351bd4424282a8810",
+ "https://bcr.bazel.build/modules/rules_nodejs/6.5.0/source.json": "ac075bc5babebc25a0adc88ee885f2c8d8520d141f6e139ba9dfa0eedb5be908",
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
- "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c",
+ "https://bcr.bazel.build/modules/rules_pkg/0.8.1/MODULE.bazel": "7e9e7b5b26bd7ff012dfe63930db2f0176ddcd25e44a858fc72d63e995b6aab9",
+ "https://bcr.bazel.build/modules/rules_pkg/0.8.1/source.json": "15dd7e13dc303f7fcde2b55300bcb8de5c0dd08a7a7269749cbbaa0fb1dfbe16",
+ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
+ "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453",
+ "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608",
"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/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9",
- "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
- "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
- "https://bcr.bazel.build/modules/rules_python/0.22.1/source.json": "57226905e783bae7c37c2dd662be078728e48fa28ee4324a7eabcafb5a43d014",
- "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
+ "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d",
+ "https://bcr.bazel.build/modules/rules_python/1.5.3/MODULE.bazel": "d0b7fb08458ca7fd80a26bc00c9e0f1d011609cc3da0381faa2eccd88c6ebd98",
+ "https://bcr.bazel.build/modules/rules_python/1.5.3/source.json": "06961e322e15331a2d88115a65af5d3f77cc46793f9d9aa0f928b95287337f12",
+ "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.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29",
+ "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
+ "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4",
+ "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.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
+ "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
+ "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/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
- "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459",
+ "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072",
+ "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d",
+ "https://bcr.bazel.build/modules/yq.bzl/0.2.0/source.json": "ff33c6f75da6848caade494240b6824cf00e7e6b8892100f4253984e1dfae2af",
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
"https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
- "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d"
+ "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
+ "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
},
"selectedYankedVersions": {},
"moduleExtensions": {
@@ -89,20 +200,2274 @@
]
}
},
- "@@platforms//host:extension.bzl%host_platform": {
+ "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": {
"general": {
- "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
- "usagesDigest": "pCYpDQmqMbmiiPI1p2Kd3VLm5T48rRAht5WdW0X2GlA=",
+ "bzlTransitiveDigest": "73CpZPjP7vEyFM9OekAg3uSwvTB2xjp4/poCF2+3eVk=",
+ "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=",
"recordedFileInputs": {},
"recordedDirentsInputs": {},
"envVariables": {},
"generatedRepoSpecs": {
- "host_platform": {
- "bzlFile": "@@platforms//host:extension.bzl",
- "ruleClassName": "host_platform_repo",
+ "esbuild_darwin-x64": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl",
+ "ruleClassName": "esbuild_repositories",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "platform": "darwin-x64"
+ }
+ },
+ "esbuild_darwin-arm64": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl",
+ "ruleClassName": "esbuild_repositories",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "platform": "darwin-arm64"
+ }
+ },
+ "esbuild_linux-x64": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl",
+ "ruleClassName": "esbuild_repositories",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "platform": "linux-x64"
+ }
+ },
+ "esbuild_linux-arm64": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl",
+ "ruleClassName": "esbuild_repositories",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "platform": "linux-arm64"
+ }
+ },
+ "esbuild_win32-x64": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild:repositories.bzl",
+ "ruleClassName": "esbuild_repositories",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "platform": "win32-x64"
+ }
+ },
+ "esbuild_toolchains": {
+ "bzlFile": "@@aspect_rules_esbuild~//esbuild/private:toolchains_repo.bzl",
+ "ruleClassName": "toolchains_repo",
+ "attributes": {
+ "esbuild_version": "0.19.9",
+ "user_repository_name": "esbuild"
+ }
+ },
+ "npm__esbuild_0.19.9": {
+ "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl",
+ "ruleClassName": "npm_import_rule",
+ "attributes": {
+ "package": "esbuild",
+ "version": "0.19.9",
+ "root_package": "",
+ "link_workspace": "",
+ "link_packages": {},
+ "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==",
+ "url": "",
+ "commit": "",
+ "patch_args": [
+ "-p0"
+ ],
+ "patches": [],
+ "custom_postinstall": "",
+ "npm_auth": "",
+ "npm_auth_basic": "",
+ "npm_auth_username": "",
+ "npm_auth_password": "",
+ "lifecycle_hooks": [],
+ "extra_build_content": "",
+ "generate_bzl_library_targets": false,
+ "extract_full_archive": false,
+ "exclude_package_contents": [],
+ "system_tar": "auto"
+ }
+ },
+ "npm__esbuild_0.19.9__links": {
+ "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl",
+ "ruleClassName": "npm_import_links",
+ "attributes": {
+ "package": "esbuild",
+ "version": "0.19.9",
+ "dev": false,
+ "root_package": "",
+ "link_packages": {},
+ "deps": {},
+ "transitive_closure": {},
+ "lifecycle_build_target": false,
+ "lifecycle_hooks_env": [],
+ "lifecycle_hooks_execution_requirements": [
+ "no-sandbox"
+ ],
+ "lifecycle_hooks_use_default_shell_env": false,
+ "bins": {},
+ "package_visibility": [
+ "//visibility:public"
+ ],
+ "replace_package": "",
+ "exclude_package_contents": []
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "aspect_bazel_lib~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "aspect_bazel_lib~",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "aspect_bazel_lib~",
+ "tar.bzl",
+ "tar.bzl~"
+ ],
+ [
+ "aspect_rules_esbuild~",
+ "aspect_rules_js",
+ "aspect_rules_js~"
+ ],
+ [
+ "aspect_rules_esbuild~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "aspect_rules_js~",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib~"
+ ],
+ [
+ "aspect_rules_js~",
+ "aspect_rules_js",
+ "aspect_rules_js~"
+ ],
+ [
+ "aspect_rules_js~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "aspect_rules_js~",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "tar.bzl~",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib~"
+ ],
+ [
+ "tar.bzl~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "tar.bzl~",
+ "tar.bzl",
+ "tar.bzl~"
+ ]
+ ]
+ }
+ },
+ "@@aspect_rules_js~//npm:extensions.bzl%pnpm": {
+ "general": {
+ "bzlTransitiveDigest": "8j0b3nFWNDqbr6G01xANzp5AVkacJrXmbMs0r/gLu5Y=",
+ "usagesDigest": "gE2155lxrm7xi8YF5kHgfVYJwYnMhlMxpPkwbfvnEwM=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "pnpm": {
+ "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl",
+ "ruleClassName": "npm_import_rule",
+ "attributes": {
+ "package": "pnpm",
+ "version": "8.6.7",
+ "root_package": "",
+ "link_workspace": "",
+ "link_packages": {},
+ "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==",
+ "url": "",
+ "commit": "",
+ "patch_args": [
+ "-p0"
+ ],
+ "patches": [],
+ "custom_postinstall": "",
+ "npm_auth": "",
+ "npm_auth_basic": "",
+ "npm_auth_username": "",
+ "npm_auth_password": "",
+ "lifecycle_hooks": [],
+ "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])",
+ "generate_bzl_library_targets": false,
+ "extract_full_archive": true,
+ "exclude_package_contents": [],
+ "system_tar": "auto"
+ }
+ },
+ "pnpm__links": {
+ "bzlFile": "@@aspect_rules_js~//npm/private:npm_import.bzl",
+ "ruleClassName": "npm_import_links",
+ "attributes": {
+ "package": "pnpm",
+ "version": "8.6.7",
+ "dev": false,
+ "root_package": "",
+ "link_packages": {},
+ "deps": {},
+ "transitive_closure": {},
+ "lifecycle_build_target": false,
+ "lifecycle_hooks_env": [],
+ "lifecycle_hooks_execution_requirements": [
+ "no-sandbox"
+ ],
+ "lifecycle_hooks_use_default_shell_env": false,
+ "bins": {},
+ "package_visibility": [
+ "//visibility:public"
+ ],
+ "replace_package": "",
+ "exclude_package_contents": []
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "aspect_bazel_lib~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "aspect_bazel_lib~",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "aspect_bazel_lib~",
+ "tar.bzl",
+ "tar.bzl~"
+ ],
+ [
+ "aspect_rules_js~",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib~"
+ ],
+ [
+ "aspect_rules_js~",
+ "aspect_rules_js",
+ "aspect_rules_js~"
+ ],
+ [
+ "aspect_rules_js~",
+ "aspect_tools_telemetry_report",
+ "aspect_tools_telemetry~~telemetry~aspect_tools_telemetry_report"
+ ],
+ [
+ "aspect_rules_js~",
+ "bazel_features",
+ "bazel_features~"
+ ],
+ [
+ "aspect_rules_js~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "aspect_rules_js~",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "bazel_features~",
+ "bazel_features_globals",
+ "bazel_features~~version_extension~bazel_features_globals"
+ ],
+ [
+ "bazel_features~",
+ "bazel_features_version",
+ "bazel_features~~version_extension~bazel_features_version"
+ ],
+ [
+ "tar.bzl~",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib~"
+ ],
+ [
+ "tar.bzl~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ],
+ [
+ "tar.bzl~",
+ "tar.bzl",
+ "tar.bzl~"
+ ]
+ ]
+ }
+ },
+ "@@aspect_rules_ts~//ts:extensions.bzl%ext": {
+ "general": {
+ "bzlTransitiveDigest": "rh164oSd0ETkckfG0JkoxKUq5kOaO/6OmcLEzI0FdbE=",
+ "usagesDigest": "ltWGqWW6sLMu/u31IwJqdHjhE4iS2Cto+bTSDdqQO0w=",
+ "recordedFileInputs": {
+ "@@//package.json": "b8717963f6f67cbb10f97aa953eee646c5289d9b20c64d4c0e06f75779ed000b",
+ "@@devinfra~//bazel/package.json": "960bcecf963a211f96a3967c7cfb5d3e1cea08d94b27056a3e8dbf2fad1e2dd3",
+ "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8"
+ },
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "angular_cli_npm_typescript": {
+ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl",
+ "ruleClassName": "http_archive_version",
+ "attributes": {
+ "bzlmod": true,
+ "version": "",
+ "version_from": "@@//:package.json",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript",
+ "build_file_substitutions": {
+ "bazel_worker_version": "5.4.2",
+ "google_protobuf_version": "3.20.1"
+ },
+ "urls": [
+ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz"
+ ]
+ }
+ },
+ "rules_angular_npm_typescript": {
+ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl",
+ "ruleClassName": "http_archive_version",
+ "attributes": {
+ "bzlmod": true,
+ "version": "5.9.2",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript",
+ "build_file_substitutions": {
+ "bazel_worker_version": "5.4.2",
+ "google_protobuf_version": "3.20.1"
+ },
+ "urls": [
+ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz"
+ ]
+ }
+ },
+ "npm_typescript": {
+ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl",
+ "ruleClassName": "http_archive_version",
+ "attributes": {
+ "bzlmod": true,
+ "version": "",
+ "version_from": "@@devinfra~//bazel:package.json",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript",
+ "build_file_substitutions": {
+ "bazel_worker_version": "5.4.2",
+ "google_protobuf_version": "3.20.1"
+ },
+ "urls": [
+ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz"
+ ]
+ }
+ },
+ "npm_rules_browsers_typescript": {
+ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl",
+ "ruleClassName": "http_archive_version",
+ "attributes": {
+ "bzlmod": true,
+ "version": "",
+ "version_from": "@@rules_browsers~//:package.json",
+ "integrity": "",
+ "build_file": "@@aspect_rules_ts~//ts:BUILD.typescript",
+ "build_file_substitutions": {
+ "bazel_worker_version": "5.4.2",
+ "google_protobuf_version": "3.20.1"
+ },
+ "urls": [
+ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "aspect_rules_ts~",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@aspect_tools_telemetry~//:extension.bzl%telemetry": {
+ "general": {
+ "bzlTransitiveDigest": "cLuD0cAZWm2SwvVSu2NHX+0x33L7A5+Shk+6Qcw9oik=",
+ "usagesDigest": "+wlgnpY3uHPdBIF0xJrM3S4M8VNpQumRmF42FjBGSE4=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "aspect_tools_telemetry_report": {
+ "bzlFile": "@@aspect_tools_telemetry~//:extension.bzl",
+ "ruleClassName": "tel_repository",
+ "attributes": {
+ "deps": {
+ "aspect_rules_js": "2.4.2",
+ "aspect_tools_telemetry": "0.2.3"
+ }
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "aspect_tools_telemetry~",
+ "aspect_bazel_lib",
+ "aspect_bazel_lib~"
+ ],
+ [
+ "aspect_tools_telemetry~",
+ "bazel_skylib",
+ "bazel_skylib~"
+ ]
+ ]
+ }
+ },
+ "@@pybind11_bazel~//:python_configure.bzl%extension": {
+ "general": {
+ "bzlTransitiveDigest": "whINYge95GgPtysKDbNHQ0ZlWYdtKybHs5y2tLF+x7Q=",
+ "usagesDigest": "gNvOHVcAlwgDsNXD0amkv2CC96mnaCThPQoE44y8K+w=",
+ "recordedFileInputs": {
+ "@@pybind11_bazel~//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e"
+ },
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "local_config_python": {
+ "bzlFile": "@@pybind11_bazel~//:python_configure.bzl",
+ "ruleClassName": "python_configure",
+ "attributes": {}
+ },
+ "pybind11": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "build_file": "@@pybind11_bazel~//:pybind11.BUILD",
+ "strip_prefix": "pybind11-2.11.1",
+ "urls": [
+ "https://github.com/pybind/pybind11/archive/v2.11.1.zip"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "pybind11_bazel~",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_angular~//setup:extensions.bzl%rules_angular": {
+ "general": {
+ "bzlTransitiveDigest": "fkaH7HMicL3g7/NDaFzlq39kcLopMyQ3KdbDn+5CRzA=",
+ "usagesDigest": "4vjoXp94lW/cnp3G5Nbi6SdqHuFBsaA7m/u83of5HE8=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "components_rules_angular_configurable_deps": {
+ "bzlFile": "@@rules_angular~//setup:repositories.bzl",
+ "ruleClassName": "configurable_deps_repo",
+ "attributes": {
+ "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli",
+ "typescript": "@@rules_angular~//:node_modules/typescript"
+ }
+ },
+ "rules_angular_configurable_deps": {
+ "bzlFile": "@@rules_angular~//setup:repositories.bzl",
+ "ruleClassName": "configurable_deps_repo",
+ "attributes": {
+ "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli",
+ "typescript": "@@rules_angular~//:node_modules/typescript-local"
+ }
+ },
+ "dev_infra_rules_angular_configurable_deps": {
+ "bzlFile": "@@rules_angular~//setup:repositories.bzl",
+ "ruleClassName": "configurable_deps_repo",
+ "attributes": {
+ "angular_compiler_cli": "@@rules_angular~//:node_modules/@angular/compiler-cli",
+ "typescript": "@@rules_angular~//:node_modules/typescript-local"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
+ },
+ "@@rules_browsers~//browsers:extensions.bzl%browsers": {
+ "general": {
+ "bzlTransitiveDigest": "ep2OrXzFai22oPOQwhS3aeTWxT9Jn6Us7ws4lRa4bU8=",
+ "usagesDigest": "78aLbl2cYObLkrJFomb3ZkfFUiUFbqzqZK8lnW+Y7Uk=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "rules_browsers_chrome_linux": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "14086c6c0844122d4066a5e3a846b963259648945d7fb6c51b520f2105edd597",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chrome-headless-shell-linux64.zip"
+ ],
+ "named_files": {
+ "CHROME-HEADLESS-SHELL": "chrome-headless-shell-linux64/chrome-headless-shell"
+ },
+ "exclude_patterns": [
+ "**/*.log"
+ ],
+ "exports_files": [
+ "chrome-headless-shell-linux64/chrome-headless-shell"
+ ]
+ }
+ },
+ "rules_browsers_chrome_mac": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "fa2ff20c870e289511cdde481d069f167e403d289b91b1d9d063dd7b2f77ed6e",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chrome-headless-shell-mac-x64.zip"
+ ],
+ "named_files": {
+ "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-x64/chrome-headless-shell"
+ },
+ "exclude_patterns": [
+ "**/*.log"
+ ],
+ "exports_files": [
+ "chrome-headless-shell-mac-x64/chrome-headless-shell"
+ ]
+ }
+ },
+ "rules_browsers_chrome_mac_arm": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "cbb938bd24ed648280e3654592c46f7eb8e2e184ca331f2138816bd59fcaed32",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chrome-headless-shell-mac-arm64.zip"
+ ],
+ "named_files": {
+ "CHROME-HEADLESS-SHELL": "chrome-headless-shell-mac-arm64/chrome-headless-shell"
+ },
+ "exclude_patterns": [
+ "**/*.log"
+ ],
+ "exports_files": [
+ "chrome-headless-shell-mac-arm64/chrome-headless-shell"
+ ]
+ }
+ },
+ "rules_browsers_chrome_win64": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "68bf73ab78647e697bf7b81e8329f23c1331d8792af6e2ab66553aeb9ede9cd3",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chrome-headless-shell-win64.zip"
+ ],
+ "named_files": {
+ "CHROME-HEADLESS-SHELL": "chrome-headless-shell-win64/chrome-headless-shell.exe"
+ },
+ "exclude_patterns": [
+ "**/*.log"
+ ],
+ "exports_files": [
+ "chrome-headless-shell-win64/chrome-headless-shell.exe"
+ ]
+ }
+ },
+ "rules_browsers_chromedriver_linux": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "ec29104132a6ff1ae5f2ffe7b27b7ff675a58ab9b1ef616badcbdd35577b31b3",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/linux64/chromedriver-linux64.zip"
+ ],
+ "named_files": {
+ "CHROMEDRIVER": "chromedriver-linux64/chromedriver"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "chromedriver-linux64/chromedriver"
+ ]
+ }
+ },
+ "rules_browsers_chromedriver_mac": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "2b9787f5f758c9f3e3888ac23270f8de47b168679718a4440bd1cea2b3cc57e9",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-x64/chromedriver-mac-x64.zip"
+ ],
+ "named_files": {
+ "CHROMEDRIVER": "chromedriver-mac-x64/chromedriver"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "chromedriver-mac-x64/chromedriver"
+ ]
+ }
+ },
+ "rules_browsers_chromedriver_mac_arm": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "6da850508d250c00c10b09dcac00c97a58d51346047972c2c47d3e3b850d4662",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/mac-arm64/chromedriver-mac-arm64.zip"
+ ],
+ "named_files": {
+ "CHROMEDRIVER": "chromedriver-mac-arm64/chromedriver"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "chromedriver-mac-arm64/chromedriver"
+ ]
+ }
+ },
+ "rules_browsers_chromedriver_win64": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "d4af3e6c8f3a7ceb50ff298e43ff07efcad46c1d6ceb0d894eeb2d593db7e522",
+ "urls": [
+ "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.68/win64/chromedriver-win64.zip"
+ ],
+ "named_files": {
+ "CHROMEDRIVER": "chromedriver-win64/chromedriver.exe"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "chromedriver-win64/chromedriver.exe"
+ ]
+ }
+ },
+ "rules_browsers_firefox_linux": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "6fcc1a2f95a6b232af82b4b7644566638c5df349e3095c65b7c18d1a63412d3d",
+ "urls": [
+ "https://archive.mozilla.org/pub/firefox/releases/135.0/linux-x86_64/en-US/firefox-135.0.tar.xz"
+ ],
+ "named_files": {
+ "FIREFOX": "firefox/firefox"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "firefox/firefox"
+ ]
+ }
+ },
+ "rules_browsers_firefox_mac": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9",
+ "urls": [
+ "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg"
+ ],
+ "named_files": {
+ "FIREFOX": "Firefox.app/Contents/MacOS/firefox"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "Firefox.app/Contents/MacOS/firefox"
+ ]
+ }
+ },
+ "rules_browsers_firefox_mac_arm": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "e55e24e6b2a4980f4b9091900835977b282f599dcdd5e38b753d95bad8a11da9",
+ "urls": [
+ "https://archive.mozilla.org/pub/firefox/releases/135.0/mac/en-US/Firefox%20135.0.dmg"
+ ],
+ "named_files": {
+ "FIREFOX": "Firefox.app/Contents/MacOS/firefox"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "Firefox.app/Contents/MacOS/firefox"
+ ]
+ }
+ },
+ "rules_browsers_firefox_win64": {
+ "bzlFile": "@@rules_browsers~//browsers/private:browser_repo.bzl",
+ "ruleClassName": "browser_repo",
+ "attributes": {
+ "sha256": "f46d3cb68caa4d4366b942c225d256e0fc15a189263cd9efe29eff0dbfe02685",
+ "urls": [
+ "https://archive.mozilla.org/pub/firefox/releases/135.0/win64/en-US/Firefox%20Setup%20135.0.exe"
+ ],
+ "named_files": {
+ "FIREFOX": "core/firefox.exe"
+ },
+ "exclude_patterns": [],
+ "exports_files": [
+ "core/firefox.exe"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
+ },
+ "@@rules_fuzzing~//fuzzing/private:extensions.bzl%non_module_dependencies": {
+ "general": {
+ "bzlTransitiveDigest": "hVgJRQ3Er45/UUAgNn1Yp2Khcp/Y8WyafA2kXIYmQ5M=",
+ "usagesDigest": "YnIrdgwnf3iCLfChsltBdZ7yOJh706lpa2vww/i2pDI=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "platforms": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
+ "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"
+ ],
+ "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74"
+ }
+ },
+ "rules_python": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8",
+ "strip_prefix": "rules_python-0.28.0",
+ "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz"
+ }
+ },
+ "bazel_skylib": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"
+ ]
+ }
+ },
+ "com_google_absl": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "urls": [
+ "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip"
+ ],
+ "strip_prefix": "abseil-cpp-20240116.1",
+ "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk="
+ }
+ },
+ "rules_fuzzing_oss_fuzz": {
+ "bzlFile": "@@rules_fuzzing~//fuzzing/private/oss_fuzz:repository.bzl",
+ "ruleClassName": "oss_fuzz_repository",
+ "attributes": {}
+ },
+ "honggfuzz": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "build_file": "@@rules_fuzzing~//:honggfuzz.BUILD",
+ "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e",
+ "url": "https://github.com/google/honggfuzz/archive/2.5.zip",
+ "strip_prefix": "honggfuzz-2.5"
+ }
+ },
+ "rules_fuzzing_jazzer": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_jar",
+ "attributes": {
+ "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2",
+ "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar"
+ }
+ },
+ "rules_fuzzing_jazzer_api": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_jar",
+ "attributes": {
+ "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b",
+ "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_fuzzing~",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_java~//java:rules_java_deps.bzl%compatibility_proxy": {
+ "general": {
+ "bzlTransitiveDigest": "KIX40nDfygEWbU+rq3nYpt3tVgTK/iO8PKh5VMBlN7M=",
+ "usagesDigest": "pwHZ+26iLgQdwvdZeA5wnAjKnNI3y6XO2VbhOTeo5h8=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "compatibility_proxy": {
+ "bzlFile": "@@rules_java~//java:rules_java_deps.bzl",
+ "ruleClassName": "_compatibility_proxy_repo_rule",
"attributes": {}
}
},
+ "recordedRepoMappingEntries": [
+ [
+ "rules_java~",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
+ "general": {
+ "bzlTransitiveDigest": "fus14IFJ/1LGWWGKPH/U18VnJCoMjfDt1ckahqCnM0A=",
+ "usagesDigest": "aJF6fLy82rR95Ff5CZPAqxNoFgOMLMN5ImfBS0nhnkg=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "com_github_jetbrains_kotlin_git": {
+ "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
+ "ruleClassName": "kotlin_compiler_git_repository",
+ "attributes": {
+ "urls": [
+ "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
+ ],
+ "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
+ }
+ },
+ "com_github_jetbrains_kotlin": {
+ "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:compiler.bzl",
+ "ruleClassName": "kotlin_capabilities_repository",
+ "attributes": {
+ "git_repository_name": "com_github_jetbrains_kotlin_git",
+ "compiler_version": "1.9.23"
+ }
+ },
+ "com_github_google_ksp": {
+ "bzlFile": "@@rules_kotlin~//src/main/starlark/core/repositories:ksp.bzl",
+ "ruleClassName": "ksp_compiler_plugin_repository",
+ "attributes": {
+ "urls": [
+ "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
+ ],
+ "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
+ "strip_version": "1.9.23-1.0.20"
+ }
+ },
+ "com_github_pinterest_ktlint": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_file",
+ "attributes": {
+ "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
+ "urls": [
+ "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
+ ],
+ "executable": true
+ }
+ },
+ "rules_android": {
+ "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+ "ruleClassName": "http_archive",
+ "attributes": {
+ "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
+ "strip_prefix": "rules_android-0.1.1",
+ "urls": [
+ "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": [
+ [
+ "rules_kotlin~",
+ "bazel_tools",
+ "bazel_tools"
+ ]
+ ]
+ }
+ },
+ "@@rules_nodejs~//nodejs:extensions.bzl%node": {
+ "general": {
+ "bzlTransitiveDigest": "hdICB1K7PX7oWtO8oksVTBDNt6xxiNERpcO4Yxoa0Gc=",
+ "usagesDigest": "BWjTwEVnU6V086ModOVKQp27nvlXPOHb9QWSETnrgR8=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "nodejs_linux_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_amd64"
+ }
+ },
+ "nodejs_linux_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_arm64"
+ }
+ },
+ "nodejs_linux_s390x": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_s390x"
+ }
+ },
+ "nodejs_linux_ppc64le": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_ppc64le"
+ }
+ },
+ "nodejs_darwin_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "darwin_amd64"
+ }
+ },
+ "nodejs_darwin_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "darwin_arm64"
+ }
+ },
+ "nodejs_windows_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "windows_amd64"
+ }
+ },
+ "nodejs_windows_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "windows_arm64"
+ }
+ },
+ "nodejs": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ },
+ "nodejs_host": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ },
+ "nodejs_toolchains": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl",
+ "ruleClassName": "nodejs_toolchains_repo",
+ "attributes": {
+ "user_node_repository_name": "nodejs"
+ }
+ },
+ "node20_linux_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "linux_amd64"
+ }
+ },
+ "node20_linux_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "linux_arm64"
+ }
+ },
+ "node20_linux_s390x": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "linux_s390x"
+ }
+ },
+ "node20_linux_ppc64le": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "linux_ppc64le"
+ }
+ },
+ "node20_darwin_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "darwin_amd64"
+ }
+ },
+ "node20_darwin_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "darwin_arm64"
+ }
+ },
+ "node20_windows_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "windows_amd64"
+ }
+ },
+ "node20_windows_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "20.19.0",
+ "include_headers": false,
+ "platform": "windows_arm64"
+ }
+ },
+ "node20": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node20"
+ }
+ },
+ "node20_host": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node20"
+ }
+ },
+ "node20_toolchains": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl",
+ "ruleClassName": "nodejs_toolchains_repo",
+ "attributes": {
+ "user_node_repository_name": "node20"
+ }
+ },
+ "node22_linux_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "linux_amd64"
+ }
+ },
+ "node22_linux_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "linux_arm64"
+ }
+ },
+ "node22_linux_s390x": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "linux_s390x"
+ }
+ },
+ "node22_linux_ppc64le": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "linux_ppc64le"
+ }
+ },
+ "node22_darwin_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "darwin_amd64"
+ }
+ },
+ "node22_darwin_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "darwin_arm64"
+ }
+ },
+ "node22_windows_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "windows_amd64"
+ }
+ },
+ "node22_windows_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {},
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "22.12.0",
+ "include_headers": false,
+ "platform": "windows_arm64"
+ }
+ },
+ "node22": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node22"
+ }
+ },
+ "node22_host": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node22"
+ }
+ },
+ "node22_toolchains": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl",
+ "ruleClassName": "nodejs_toolchains_repo",
+ "attributes": {
+ "user_node_repository_name": "node22"
+ }
+ },
+ "node24_linux_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_amd64"
+ }
+ },
+ "node24_linux_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_arm64"
+ }
+ },
+ "node24_linux_s390x": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_s390x"
+ }
+ },
+ "node24_linux_ppc64le": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "linux_ppc64le"
+ }
+ },
+ "node24_darwin_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "darwin_amd64"
+ }
+ },
+ "node24_darwin_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "darwin_arm64"
+ }
+ },
+ "node24_windows_amd64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "windows_amd64"
+ }
+ },
+ "node24_windows_arm64": {
+ "bzlFile": "@@rules_nodejs~//nodejs:repositories.bzl",
+ "ruleClassName": "_nodejs_repositories",
+ "attributes": {
+ "node_download_auth": {},
+ "node_repositories": {
+ "24.0.0-darwin_arm64": [
+ "node-v24.0.0-darwin-arm64.tar.gz",
+ "node-v24.0.0-darwin-arm64",
+ "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"
+ ],
+ "24.0.0-darwin_amd64": [
+ "node-v24.0.0-darwin-x64.tar.gz",
+ "node-v24.0.0-darwin-x64",
+ "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"
+ ],
+ "24.0.0-linux_arm64": [
+ "node-v24.0.0-linux-arm64.tar.xz",
+ "node-v24.0.0-linux-arm64",
+ "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"
+ ],
+ "24.0.0-linux_ppc64le": [
+ "node-v24.0.0-linux-ppc64le.tar.xz",
+ "node-v24.0.0-linux-ppc64le",
+ "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"
+ ],
+ "24.0.0-linux_s390x": [
+ "node-v24.0.0-linux-s390x.tar.xz",
+ "node-v24.0.0-linux-s390x",
+ "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"
+ ],
+ "24.0.0-linux_amd64": [
+ "node-v24.0.0-linux-x64.tar.xz",
+ "node-v24.0.0-linux-x64",
+ "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"
+ ],
+ "24.0.0-windows_amd64": [
+ "node-v24.0.0-win-x64.zip",
+ "node-v24.0.0-win-x64",
+ "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"
+ ]
+ },
+ "node_urls": [
+ "https://nodejs.org/dist/v{version}/{filename}"
+ ],
+ "node_version": "24.0.0",
+ "include_headers": false,
+ "platform": "windows_arm64"
+ }
+ },
+ "node24": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node24"
+ }
+ },
+ "node24_host": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_repo_host_os_alias.bzl",
+ "ruleClassName": "nodejs_repo_host_os_alias",
+ "attributes": {
+ "user_node_repository_name": "node24"
+ }
+ },
+ "node24_toolchains": {
+ "bzlFile": "@@rules_nodejs~//nodejs/private:nodejs_toolchains_repo.bzl",
+ "ruleClassName": "nodejs_toolchains_repo",
+ "attributes": {
+ "user_node_repository_name": "node24"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
+ },
+ "@@rules_python~//python/uv:uv.bzl%uv": {
+ "general": {
+ "bzlTransitiveDigest": "mxPY/VBQrSC9LvYeRrlxD+0IkDTQ4+36NGMnGWlN/Vw=",
+ "usagesDigest": "cgxWLOUNY3lbTVCUxf/uOAgiV2TBcy1fpOASyjfLjHU=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "uv": {
+ "bzlFile": "@@rules_python~//python/uv/private:uv_toolchains_repo.bzl",
+ "ruleClassName": "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~",
+ "bazel_tools",
+ "bazel_tools"
+ ],
+ [
+ "rules_python~",
+ "platforms",
+ "platforms"
+ ]
+ ]
+ }
+ },
+ "@@rules_sass~//src/toolchain:extensions.bzl%sass": {
+ "general": {
+ "bzlTransitiveDigest": "+GauQp6nWf/mHsJ/XVWUL2JTuC15MuxATrVcAgDpclc=",
+ "usagesDigest": "FPXQ5+6+DFGdSdCMXLwFaruzstMFlLH6N0TRxi0sSH8=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "linux_amd64_sass": {
+ "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl",
+ "ruleClassName": "configure_sass",
+ "attributes": {
+ "file": "@rules_sass//src/compiler/built:sass_linux_x64",
+ "sha256": "",
+ "constraints": [
+ "@@platforms//os:linux",
+ "@@platforms//cpu:x86_64"
+ ]
+ }
+ },
+ "darwin_amd64_sass": {
+ "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl",
+ "ruleClassName": "configure_sass",
+ "attributes": {
+ "file": "@rules_sass//src/compiler/built:sass_mac_x64",
+ "sha256": "",
+ "constraints": [
+ "@@platforms//os:macos",
+ "@@platforms//cpu:x86_64"
+ ]
+ }
+ },
+ "darwin_arm64_sass": {
+ "bzlFile": "@@rules_sass~//src/toolchain:configure_sass.bzl",
+ "ruleClassName": "configure_sass",
+ "attributes": {
+ "file": "@rules_sass//src/compiler/built:sass_mac_arm",
+ "sha256": "",
+ "constraints": [
+ "@@platforms//os:macos",
+ "@@platforms//cpu:arm64"
+ ]
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
+ },
+ "@@tar.bzl~//tar:extensions.bzl%toolchains": {
+ "general": {
+ "bzlTransitiveDigest": "/2afh6fPjq/rcyE/jztQDK3ierehmFFngfvmqyRv72M=",
+ "usagesDigest": "I6HvqeURBJAsVftolZUnMjAJqsIpyPsnCw4Sngx2dSg=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "bsd_tar_toolchains": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:toolchain.bzl",
+ "ruleClassName": "tar_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "bsd_tar_toolchains"
+ }
+ },
+ "bsd_tar_toolchains_darwin_amd64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "darwin_amd64"
+ }
+ },
+ "bsd_tar_toolchains_darwin_arm64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "darwin_arm64"
+ }
+ },
+ "bsd_tar_toolchains_linux_amd64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "linux_amd64"
+ }
+ },
+ "bsd_tar_toolchains_linux_arm64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "linux_arm64"
+ }
+ },
+ "bsd_tar_toolchains_windows_amd64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "windows_amd64"
+ }
+ },
+ "bsd_tar_toolchains_windows_arm64": {
+ "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl",
+ "ruleClassName": "bsdtar_binary_repo",
+ "attributes": {
+ "platform": "windows_arm64"
+ }
+ }
+ },
+ "recordedRepoMappingEntries": []
+ }
+ },
+ "@@yq.bzl~//yq:extensions.bzl%yq": {
+ "general": {
+ "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=",
+ "usagesDigest": "aPwG8k9scmFMv3dtS84dXq/OIbovpOzBLa/ZDS1QvlQ=",
+ "recordedFileInputs": {},
+ "recordedDirentsInputs": {},
+ "envVariables": {},
+ "generatedRepoSpecs": {
+ "yq_darwin_amd64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "darwin_amd64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_darwin_arm64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "darwin_arm64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_linux_amd64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "linux_amd64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_linux_arm64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "linux_arm64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_linux_s390x": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "linux_s390x",
+ "version": "4.45.1"
+ }
+ },
+ "yq_linux_riscv64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "linux_riscv64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_linux_ppc64le": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "linux_ppc64le",
+ "version": "4.45.1"
+ }
+ },
+ "yq_windows_amd64": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:platforms.bzl",
+ "ruleClassName": "yq_platform_repo",
+ "attributes": {
+ "platform": "windows_amd64",
+ "version": "4.45.1"
+ }
+ },
+ "yq_toolchains": {
+ "bzlFile": "@@yq.bzl~//yq/toolchain:toolchain.bzl",
+ "ruleClassName": "yq_toolchains_repo",
+ "attributes": {
+ "user_repository_name": "yq"
+ }
+ }
+ },
"recordedRepoMappingEntries": []
}
}
diff --git a/WORKSPACE b/WORKSPACE
deleted file mode 100644
index bdd6ac8c8c37..000000000000
--- a/WORKSPACE
+++ /dev/null
@@ -1,294 +0,0 @@
-workspace(name = "angular_cli")
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
-
-http_archive(
- name = "bazel_skylib",
- sha256 = "51b5105a760b353773f904d2bbc5e664d0987fbaf22265164de65d43e910d8ac",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz",
- "https://github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz",
- ],
-)
-
-http_archive(
- name = "io_bazel_rules_webtesting",
- sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a",
- urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz"],
-)
-
-http_archive(
- name = "aspect_rules_js",
- sha256 = "b71565da7a811964e30cccb405544d551561e4b56c65f0c0aeabe85638920bd6",
- strip_prefix = "rules_js-2.4.2",
- url = "https://github.com/aspect-build/rules_js/releases/download/v2.4.2/rules_js-v2.4.2.tar.gz",
-)
-
-load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
-
-rules_js_dependencies()
-
-http_archive(
- name = "rules_pkg",
- sha256 = "8c20f74bca25d2d442b327ae26768c02cf3c99e93fad0381f32be9aab1967675",
- urls = ["https://github.com/bazelbuild/rules_pkg/releases/download/0.8.1/rules_pkg-0.8.1.tar.gz"],
-)
-
-load("@bazel_tools//tools/sh:sh_configure.bzl", "sh_configure")
-
-sh_configure()
-
-load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
-
-bazel_skylib_workspace()
-
-load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
-
-rules_pkg_dependencies()
-
-# Setup the Node.js toolchain
-load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains")
-
-# Set the default nodejs toolchain to the latest supported major version
-
-NODE_24_VERSION = "24.0.0"
-
-NODE_24_REPO = {
- "24.0.0-darwin_arm64": ("node-v24.0.0-darwin-arm64.tar.gz", "node-v24.0.0-darwin-arm64", "194e2f3dd3ec8c2adcaa713ed40f44c5ca38467880e160974ceac1659be60121"),
- "24.0.0-darwin_amd64": ("node-v24.0.0-darwin-x64.tar.gz", "node-v24.0.0-darwin-x64", "f716b3ce14a7e37a6cbf97c9de10d444d7da07ef833cd8da81dd944d111e6a4a"),
- "24.0.0-linux_arm64": ("node-v24.0.0-linux-arm64.tar.xz", "node-v24.0.0-linux-arm64", "d40ec7ffe0b82b02dce94208c84351424099bd70fa3a42b65c46d95322305040"),
- "24.0.0-linux_ppc64le": ("node-v24.0.0-linux-ppc64le.tar.xz", "node-v24.0.0-linux-ppc64le", "cfa0e8d51a2f9a446f1bfb81cdf4c7e95336ad622e2aa230e3fa1d093c63d77d"),
- "24.0.0-linux_s390x": ("node-v24.0.0-linux-s390x.tar.xz", "node-v24.0.0-linux-s390x", "e37a04c7ee05416ec1234fd3255e05b6b81287eb0424a57441c8b69f0a155021"),
- "24.0.0-linux_amd64": ("node-v24.0.0-linux-x64.tar.xz", "node-v24.0.0-linux-x64", "59b8af617dccd7f9f68cc8451b2aee1e86d6bd5cb92cd51dd6216a31b707efd7"),
- "24.0.0-windows_amd64": ("node-v24.0.0-win-x64.zip", "node-v24.0.0-win-x64", "3d0fff80c87bb9a8d7f49f2f27832aa34a1477d137af46f5b14df5498be81304"),
-}
-
-nodejs_register_toolchains(
- name = "nodejs",
- node_repositories = NODE_24_REPO,
- node_version = NODE_24_VERSION,
-)
-
-nodejs_register_toolchains(
- name = "node20",
- node_repositories = {
- "20.19.0-darwin_arm64": ("node-v20.19.0-darwin-arm64.tar.gz", "node-v20.19.0-darwin-arm64", "c016cd1975a264a29dc1b07c6fbe60d5df0a0c2beb4113c0450e3d998d1a0d9c"),
- "20.19.0-darwin_amd64": ("node-v20.19.0-darwin-x64.tar.gz", "node-v20.19.0-darwin-x64", "a8554af97d6491fdbdabe63d3a1cfb9571228d25a3ad9aed2df856facb131b20"),
- "20.19.0-linux_arm64": ("node-v20.19.0-linux-arm64.tar.xz", "node-v20.19.0-linux-arm64", "dbe339e55eb393955a213e6b872066880bb9feceaa494f4d44c7aac205ec2ab9"),
- "20.19.0-linux_ppc64le": ("node-v20.19.0-linux-ppc64le.tar.xz", "node-v20.19.0-linux-ppc64le", "84937108f005679e60b486ed8e801cebfe923f02b76d8e710463d32f82181f65"),
- "20.19.0-linux_s390x": ("node-v20.19.0-linux-s390x.tar.xz", "node-v20.19.0-linux-s390x", "11f8ee99d792a83bba7b29911e0229dd6cd5e88987d7416346067db1cc76d89a"),
- "20.19.0-linux_amd64": ("node-v20.19.0-linux-x64.tar.xz", "node-v20.19.0-linux-x64", "b4e336584d62abefad31baecff7af167268be9bb7dd11f1297112e6eed3ca0d5"),
- "20.19.0-windows_amd64": ("node-v20.19.0-win-x64.zip", "node-v20.19.0-win-x64", "be72284c7bc62de07d5a9fd0ae196879842c085f11f7f2b60bf8864c0c9d6a4f"),
- },
- node_version = "20.19.0",
-)
-
-nodejs_register_toolchains(
- name = "node22",
- node_repositories = {
- "22.12.0-darwin_arm64": ("node-v22.12.0-darwin-arm64.tar.gz", "node-v22.12.0-darwin-arm64", "293dcc6c2408da21562d135b0412525e381bb6fe150d688edb58fe850d0f3e13"),
- "22.12.0-darwin_amd64": ("node-v22.12.0-darwin-x64.tar.gz", "node-v22.12.0-darwin-x64", "52bc25dd026db7247c3c00439afdb83e95087248267f02d6c1a7250d1f896173"),
- "22.12.0-linux_arm64": ("node-v22.12.0-linux-arm64.tar.xz", "node-v22.12.0-linux-arm64", "8cfd5a8b9afae5a2e0bd86b0148ca31d2589c0ea669c2d0b11c132e35d90ed68"),
- "22.12.0-linux_ppc64le": ("node-v22.12.0-linux-ppc64le.tar.xz", "node-v22.12.0-linux-ppc64le", "199a606ba1ee86cce6d6b369c71f9d00873d2836a6662592afc3b6a5923e2004"),
- "22.12.0-linux_s390x": ("node-v22.12.0-linux-s390x.tar.xz", "node-v22.12.0-linux-s390x", "9b517f8006eb4b451d40c461cbe64f93c6455566dbe2613387ab02412bc06d35"),
- "22.12.0-linux_amd64": ("node-v22.12.0-linux-x64.tar.xz", "node-v22.12.0-linux-x64", "22982235e1b71fa8850f82edd09cdae7e3f32df1764a9ec298c72d25ef2c164f"),
- "22.12.0-windows_amd64": ("node-v22.12.0-win-x64.zip", "node-v22.12.0-win-x64", "2b8f2256382f97ad51e29ff71f702961af466c4616393f767455501e6aece9b8"),
- },
- node_version = "22.12.0",
-)
-
-nodejs_register_toolchains(
- name = "node24",
- node_repositories = NODE_24_REPO,
- node_version = NODE_24_VERSION,
-)
-
-load("@aspect_rules_js//js:toolchains.bzl", "rules_js_register_toolchains")
-
-rules_js_register_toolchains(
- node_repositories = NODE_24_REPO,
- node_version = NODE_24_VERSION,
-)
-
-http_archive(
- name = "aspect_bazel_lib",
- sha256 = "3522895fa13b97e8b27e3b642045682aa4233ae1a6b278aad6a3b483501dc9f2",
- strip_prefix = "bazel-lib-2.20.0",
- url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.20.0/bazel-lib-v2.20.0.tar.gz",
-)
-
-load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "aspect_bazel_lib_register_toolchains")
-
-aspect_bazel_lib_dependencies()
-
-aspect_bazel_lib_register_toolchains()
-
-load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
-
-npm_translate_lock(
- name = "npm",
- custom_postinstalls = {
- # TODO: Standardize browser management for `rules_js`
- "webdriver-manager": "node ./bin/webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21",
- },
- data = [
- "//:package.json",
- "//:pnpm-workspace.yaml",
- "//modules/testing/builder:package.json",
- "//packages/angular/build:package.json",
- "//packages/angular/cli:package.json",
- "//packages/angular/pwa:package.json",
- "//packages/angular/ssr:package.json",
- "//packages/angular_devkit/architect:package.json",
- "//packages/angular_devkit/architect_cli:package.json",
- "//packages/angular_devkit/build_angular:package.json",
- "//packages/angular_devkit/build_webpack:package.json",
- "//packages/angular_devkit/core:package.json",
- "//packages/angular_devkit/schematics:package.json",
- "//packages/angular_devkit/schematics_cli:package.json",
- "//packages/ngtools/webpack:package.json",
- "//packages/schematics/angular:package.json",
- "//tests:package.json",
- "//tools/baseline_browserslist:package.json",
- ],
- lifecycle_hooks_envs = {
- # TODO: Standardize browser management for `rules_js`
- "puppeteer": ["PUPPETEER_DOWNLOAD_PATH=./downloads"],
- },
- lifecycle_hooks_execution_requirements = {
- # Needed for downloading chromedriver.
- # Also `update-config` of webdriver manager would store an absolute path;
- # which would then break execution.
- "webdriver-manager": ["local"],
- },
- npmrc = "//:.npmrc",
- patches = {
- # Note: Patches not needed as the existing patches are only
- # for `rules_nodejs` dependencies :)
- },
- pnpm_lock = "//:pnpm-lock.yaml",
- public_hoist_packages = {
- # TODO: Remove when https://github.com/verdaccio/verdaccio/commit/bf0e09a509e8e0a74167b0307d129202bc3f40d2 is available.
- "@verdaccio/config": [""],
- },
- verify_node_modules_ignored = "//:.bazelignore",
-)
-
-load("@npm//:repositories.bzl", "npm_repositories")
-
-npm_repositories()
-
-http_archive(
- name = "aspect_rules_ts",
- sha256 = "09af62a0d46918d815b5f48b5ed0f5349b62c15fc42fcc3fef5c246504ff8d99",
- strip_prefix = "rules_ts-3.6.3",
- url = "https://github.com/aspect-build/rules_ts/releases/download/v3.6.3/rules_ts-v3.6.3.tar.gz",
-)
-
-load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies")
-
-rules_ts_dependencies(
- # Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.2 | jq -r '.dist.integrity'
- ts_integrity = "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
- ts_version_from = "//:package.json",
-)
-
-http_file(
- name = "tsc_worker",
- sha256 = "5a5c46846ecda83e05b9da26f1672ad51c59bce08fed88419850d0e29c993b30",
- urls = ["https://raw.githubusercontent.com/devversion/rules_angular/4b7532ba2b29078d005899cd15b415593d03cceb/dist/worker.mjs"],
-)
-
-http_archive(
- name = "aspect_rules_jasmine",
- sha256 = "0d2f9c977842685895020cac721d8cc4f1b37aae15af46128cf619741dc61529",
- strip_prefix = "rules_jasmine-2.0.0",
- url = "https://github.com/aspect-build/rules_jasmine/releases/download/v2.0.0/rules_jasmine-v2.0.0.tar.gz",
-)
-
-load("@aspect_rules_jasmine//jasmine:dependencies.bzl", "rules_jasmine_dependencies")
-
-rules_jasmine_dependencies()
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
-
-git_repository(
- name = "devinfra",
- commit = "fbdd8b7df383ae8fb34907a98353c1e8f0f5e528",
- remote = "https://github.com/angular/dev-infra.git",
-)
-
-load("@devinfra//bazel:setup_dependencies_1.bzl", "setup_dependencies_1")
-
-setup_dependencies_1()
-
-load("@devinfra//bazel:setup_dependencies_2.bzl", "setup_dependencies_2")
-
-setup_dependencies_2()
-
-register_toolchains(
- "@devinfra//bazel/git-toolchain:git_linux_toolchain",
- "@devinfra//bazel/git-toolchain:git_macos_x86_toolchain",
- "@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain",
- "@devinfra//bazel/git-toolchain:git_windows_toolchain",
-)
-
-http_archive(
- name = "aspect_rules_esbuild",
- sha256 = "530adfeae30bbbd097e8af845a44a04b641b680c5703b3bf885cbd384ffec779",
- strip_prefix = "rules_esbuild-0.22.1",
- url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.22.1/rules_esbuild-v0.22.1.tar.gz",
-)
-
-load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies")
-
-rules_esbuild_dependencies()
-
-load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains")
-
-esbuild_register_toolchains(
- name = "esbuild",
- esbuild_version = LATEST_ESBUILD_VERSION,
-)
-
-git_repository(
- name = "rules_angular",
- commit = "c8af5c0d27c66387e9e7df3c4dd3155ce7582609",
- remote = "https://github.com/devversion/rules_angular.git",
-)
-
-load("@rules_angular//setup:step_1.bzl", "rules_angular_step1")
-
-rules_angular_step1()
-
-load("@rules_angular//setup:step_2.bzl", "rules_angular_step2")
-
-rules_angular_step2()
-
-load("@rules_angular//setup:step_3.bzl", "rules_angular_step3")
-
-rules_angular_step3(
- angular_compiler_cli = "//:node_modules/@angular/compiler-cli",
- typescript = "//:node_modules/typescript",
-)
-
-http_archive(
- name = "aspect_rules_rollup",
- sha256 = "0b8ac7d97cd660eb9a275600227e9c4268f5904cba962939d1a6ce9a0a059d2e",
- strip_prefix = "rules_rollup-2.0.1",
- url = "https://github.com/aspect-build/rules_rollup/releases/download/v2.0.1/rules_rollup-v2.0.1.tar.gz",
-)
-
-git_repository(
- name = "rules_browsers",
- commit = "56ef8007ea07cd1916429bca8bb523433b0e9cdc",
- remote = "https://github.com/devversion/rules_browsers.git",
-)
-
-load("@rules_browsers//setup:step_1.bzl", "rules_browsers_setup_1")
-
-rules_browsers_setup_1()
-
-load("@rules_browsers//setup:step_2.bzl", "rules_browsers_setup_2")
-
-rules_browsers_setup_2()
diff --git a/package.json b/package.json
index e1790e8c7e32..a1329cecc36b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@angular/devkit-repo",
- "version": "20.2.0-next.3",
+ "version": "20.2.0-rc.1",
"private": true,
"description": "Software Development Kit for Angular",
"keywords": [
diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json
index 2491bace216e..692f51f21575 100644
--- a/packages/angular/build/package.json
+++ b/packages/angular/build/package.json
@@ -20,7 +20,7 @@
"dependencies": {
"@ampproject/remapping": "2.3.0",
"@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER",
- "@babel/core": "7.28.0",
+ "@babel/core": "7.28.3",
"@babel/helper-annotate-as-pure": "7.27.3",
"@babel/helper-split-export-declaration": "7.24.7",
"@inquirer/confirm": "5.1.14",
diff --git a/packages/angular/build/src/typings.d.ts b/packages/angular/build/src/typings.d.ts
index 6296581de448..a219622dd7b4 100644
--- a/packages/angular/build/src/typings.d.ts
+++ b/packages/angular/build/src/typings.d.ts
@@ -17,10 +17,3 @@
declare module 'esbuild' {
export * from 'esbuild-wasm';
}
-
-/**
- * Augment the Node.js module builtin types to support the v22.8+ compile cache functions
- */
-declare module 'node:module' {
- function getCompileCacheDir(): string | undefined;
-}
diff --git a/packages/angular/cli/package.json b/packages/angular/cli/package.json
index 29234e9a3e15..26e1186925ee 100644
--- a/packages/angular/cli/package.json
+++ b/packages/angular/cli/package.json
@@ -25,9 +25,9 @@
"@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER",
"@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER",
"@angular-devkit/schematics": "workspace:0.0.0-PLACEHOLDER",
- "@inquirer/prompts": "7.8.1",
+ "@inquirer/prompts": "7.8.2",
"@listr2/prompt-adapter-inquirer": "3.0.1",
- "@modelcontextprotocol/sdk": "1.17.2",
+ "@modelcontextprotocol/sdk": "1.17.3",
"@schematics/angular": "workspace:0.0.0-PLACEHOLDER",
"@yarnpkg/lockfile": "1.1.0",
"algoliasearch": "5.35.0",
diff --git a/packages/angular/cli/src/command-builder/command-module.ts b/packages/angular/cli/src/command-builder/command-module.ts
index 0b18512180d2..64f7ac7377c7 100644
--- a/packages/angular/cli/src/command-builder/command-module.ts
+++ b/packages/angular/cli/src/command-builder/command-module.ts
@@ -89,7 +89,10 @@ export abstract class CommandModule implements CommandModuleI
protected readonly shouldReportAnalytics: boolean = true;
readonly scope: CommandScope = CommandScope.Both;
- private readonly optionsWithAnalytics = new Map();
+ private readonly optionsWithAnalytics = new Map<
+ string,
+ EventCustomDimension | EventCustomMetric
+ >();
constructor(protected readonly context: CommandContext) {}
@@ -236,12 +239,16 @@ export abstract class CommandModule implements CommandModuleI
]);
for (const [name, ua] of this.optionsWithAnalytics) {
+ if (!validEventCustomDimensionAndMetrics.has(ua)) {
+ continue;
+ }
+
const value = options[name];
- if (
- (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') &&
- validEventCustomDimensionAndMetrics.has(ua as EventCustomDimension | EventCustomMetric)
- ) {
- parameters[ua as EventCustomDimension | EventCustomMetric] = value;
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
+ parameters[ua] = value;
+ } else if (Array.isArray(value)) {
+ // GA doesn't allow array as values.
+ parameters[ua] = value.sort().join(', ');
}
}
diff --git a/packages/angular/cli/src/command-builder/schematics-command-module.ts b/packages/angular/cli/src/command-builder/schematics-command-module.ts
index 738fd497382b..529d47b078f1 100644
--- a/packages/angular/cli/src/command-builder/schematics-command-module.ts
+++ b/packages/angular/cli/src/command-builder/schematics-command-module.ts
@@ -204,11 +204,13 @@ export abstract class SchematicsCommandModule
? {
name: item,
value: item,
+ checked: item === definition.default,
}
: {
...item,
name: item.label,
value: item.value,
+ checked: item.value === definition.default,
},
),
});
diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts
index 84af5f2d3641..90c619dc024e 100644
--- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts
+++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts
@@ -8,6 +8,7 @@
import { json, strings } from '@angular-devkit/core';
import type { Arguments, Argv, PositionalOptions, Options as YargsOptions } from 'yargs';
+import { EventCustomDimension } from '../../analytics/analytics-parameters';
/**
* An option description.
@@ -50,10 +51,33 @@ export interface Option extends YargsOptions {
itemValueType?: 'string';
}
+function checkStringMap(keyValuePairOptions: Set, args: Arguments): boolean {
+ for (const key of keyValuePairOptions) {
+ const value = args[key];
+ if (!Array.isArray(value)) {
+ // Value has been parsed.
+ continue;
+ }
+
+ for (const pair of value) {
+ if (pair === undefined) {
+ continue;
+ }
+
+ if (!pair.includes('=')) {
+ throw new Error(
+ `Invalid value for argument: ${key}, Given: '${pair}', Expected key=value pair`,
+ );
+ }
+ }
+ }
+
+ return true;
+}
+
function coerceToStringMap(
- dashedName: string,
value: (string | undefined)[],
-): Record | Promise {
+): Record | (string | undefined)[] {
const stringMap: Record = {};
for (const pair of value) {
// This happens when the flag isn't passed at all.
@@ -63,18 +87,12 @@ function coerceToStringMap(
const eqIdx = pair.indexOf('=');
if (eqIdx === -1) {
- // TODO: Remove workaround once yargs properly handles thrown errors from coerce.
- // Right now these sometimes end up as uncaught exceptions instead of proper validation
- // errors with usage output.
- return Promise.reject(
- new Error(
- `Invalid value for argument: ${dashedName}, Given: '${pair}', Expected key=value pair`,
- ),
- );
+ // In the case it is not valid skip processing this option and handle the error in `checkStringMap`
+ return value;
}
+
const key = pair.slice(0, eqIdx);
- const value = pair.slice(eqIdx + 1);
- stringMap[key] = value;
+ stringMap[key] = pair.slice(eqIdx + 1);
}
return stringMap;
@@ -148,7 +166,7 @@ export async function parseJsonSchemaToOptions(
if (
json.isJsonObject(current.items) &&
typeof current.items.type == 'string' &&
- ['boolean', 'number', 'string'].includes(current.items.type)
+ isValidTypeForEnum(current.items.type)
) {
return true;
}
@@ -169,22 +187,21 @@ export async function parseJsonSchemaToOptions(
}
// Only keep enum values we support (booleans, numbers and strings).
- const enumValues = ((json.isJsonArray(current.enum) && current.enum) || []).filter((x) => {
- switch (typeof x) {
- case 'boolean':
- case 'number':
- case 'string':
- return true;
-
- default:
- return false;
- }
- }) as (string | true | number)[];
+ const enumValues = (
+ (json.isJsonArray(current.enum) && current.enum) ||
+ (json.isJsonObject(current.items) &&
+ json.isJsonArray(current.items.enum) &&
+ current.items.enum) ||
+ []
+ )
+ .filter((value) => isValidTypeForEnum(typeof value))
+ .sort() as (string | true | number)[];
let defaultValue: string | number | boolean | undefined = undefined;
if (current.default !== undefined) {
switch (types[0]) {
case 'string':
+ case 'array':
if (typeof current.default == 'string') {
defaultValue = current.default;
}
@@ -280,10 +297,10 @@ export function addSchemaOptionsToCommand(
localYargs: Argv,
options: Option[],
includeDefaultValues: boolean,
-): Map {
+): Map {
const booleanOptionsWithNoPrefix = new Set();
const keyValuePairOptions = new Set();
- const optionsWithAnalytics = new Map();
+ const optionsWithAnalytics = new Map();
for (const option of options) {
const {
@@ -309,7 +326,7 @@ export function addSchemaOptionsToCommand(
}
if (itemValueType) {
- keyValuePairOptions.add(name);
+ keyValuePairOptions.add(dashedName);
}
const sharedOptions: YargsOptions & PositionalOptions = {
@@ -318,7 +335,7 @@ export function addSchemaOptionsToCommand(
description,
deprecated,
choices,
- coerce: itemValueType ? coerceToStringMap.bind(null, dashedName) : undefined,
+ coerce: itemValueType ? coerceToStringMap : undefined,
// This should only be done when `--help` is used otherwise default will override options set in angular.json.
...(includeDefaultValues ? { default: defaultVal } : {}),
};
@@ -338,10 +355,15 @@ export function addSchemaOptionsToCommand(
// Record option of analytics.
if (userAnalytics !== undefined) {
- optionsWithAnalytics.set(name, userAnalytics);
+ optionsWithAnalytics.set(name, userAnalytics as EventCustomDimension);
}
}
+ // Valid key/value options
+ if (keyValuePairOptions.size) {
+ localYargs.check(checkStringMap.bind(null, keyValuePairOptions), false);
+ }
+
// Handle options which have been defined in the schema with `no` prefix.
if (booleanOptionsWithNoPrefix.size) {
localYargs.middleware((options: Arguments) => {
@@ -356,3 +378,8 @@ export function addSchemaOptionsToCommand(
return optionsWithAnalytics;
}
+
+const VALID_ENUM_TYPES = new Set(['boolean', 'number', 'string']);
+function isValidTypeForEnum(value: string): boolean {
+ return VALID_ENUM_TYPES.has(value);
+}
diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts
index 5ec5db644bef..cc86cc99dddc 100644
--- a/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts
+++ b/packages/angular/cli/src/command-builder/utilities/json-schema_spec.ts
@@ -6,88 +6,61 @@
* found in the LICENSE file at https://angular.dev/license
*/
-import { json, schema } from '@angular-devkit/core';
-import yargs, { positional } from 'yargs';
+import { schema } from '@angular-devkit/core';
+import yargs from 'yargs';
import { addSchemaOptionsToCommand, parseJsonSchemaToOptions } from './json-schema';
-const YError = (() => {
- try {
- const y = yargs().strict().fail(false).exitProcess(false).parse(['--forced-failure']);
- } catch (e) {
- if (!(e instanceof Error)) {
- throw new Error('Unexpected non-Error thrown');
- }
-
- return e.constructor as typeof Error;
- }
- throw new Error('Expected parse to fail');
-})();
-
-interface ParseFunction {
- (argv: string[]): unknown;
-}
-
-function withParseForSchema(
- jsonSchema: json.JsonObject,
- {
- interactive = true,
- includeDefaultValues = true,
- }: { interactive?: boolean; includeDefaultValues?: boolean } = {},
-): ParseFunction {
- let actualParse: ParseFunction = () => {
- throw new Error('Called before init');
- };
- const parse: ParseFunction = (args) => {
- return actualParse(args);
- };
-
- beforeEach(async () => {
- const registry = new schema.CoreSchemaRegistry();
- const options = await parseJsonSchemaToOptions(registry, jsonSchema, interactive);
-
- actualParse = async (args: string[]) => {
- // Create a fresh yargs for each call. The yargs object is stateful and
- // calling .parse multiple times on the same instance isn't safe.
- const localYargs = yargs().exitProcess(false).strict().fail(false);
- addSchemaOptionsToCommand(localYargs, options, includeDefaultValues);
-
+describe('parseJsonSchemaToOptions', () => {
+ describe('without required fields in schema', () => {
+ const parse = async (args: string[]) => {
// Yargs only exposes the parse errors as proper errors when using the
// callback syntax. This unwraps that ugly workaround so tests can just
// use simple .toThrow/.toEqual assertions.
return localYargs.parseAsync(args);
};
- });
-
- return parse;
-}
-describe('parseJsonSchemaToOptions', () => {
- describe('without required fields in schema', () => {
- const parse = withParseForSchema({
- 'type': 'object',
- 'properties': {
- 'maxSize': {
- 'type': 'number',
- },
- 'ssr': {
- 'type': 'string',
- 'enum': ['always', 'surprise-me', 'never'],
- },
- 'extendable': {
- 'type': 'object',
- 'properties': {},
- 'additionalProperties': {
- 'type': 'string',
+ let localYargs: yargs.Argv;
+ beforeEach(async () => {
+ // Create a fresh yargs for each call. The yargs object is stateful and
+ // calling .parse multiple times on the same instance isn't safe.
+ localYargs = yargs().exitProcess(false).strict().fail(false).wrap(1_000);
+ const jsonSchema = {
+ 'type': 'object',
+ 'properties': {
+ 'maxSize': {
+ 'type': 'number',
},
- },
- 'someDefine': {
- 'type': 'object',
- 'additionalProperties': {
+ 'ssr': {
'type': 'string',
+ 'enum': ['always', 'surprise-me', 'never'],
+ },
+ 'arrayWithChoices': {
+ 'type': 'array',
+ 'default': 'default-array',
+ 'items': {
+ 'type': 'string',
+ 'enum': ['always', 'never', 'default-array'],
+ },
+ },
+ 'extendable': {
+ 'type': 'object',
+ 'properties': {},
+ 'additionalProperties': {
+ 'type': 'string',
+ },
+ },
+ 'someDefine': {
+ 'type': 'object',
+ 'additionalProperties': {
+ 'type': 'string',
+ },
},
},
- },
+ };
+ const registry = new schema.CoreSchemaRegistry();
+ const options = await parseJsonSchemaToOptions(registry, jsonSchema, false);
+ addSchemaOptionsToCommand(localYargs, options, true);
});
describe('type=number', () => {
@@ -100,6 +73,28 @@ describe('parseJsonSchemaToOptions', () => {
});
});
+ describe('type=array, enum', () => {
+ it('parses valid option value', async () => {
+ expect(
+ await parse(['--arrayWithChoices', 'always', '--arrayWithChoices', 'never']),
+ ).toEqual(
+ jasmine.objectContaining({
+ 'arrayWithChoices': ['always', 'never'],
+ }),
+ );
+ });
+
+ it('rejects non-enum values', async () => {
+ await expectAsync(parse(['--arrayWithChoices', 'yes'])).toBeRejectedWithError(
+ /Argument: array-with-choices, Given: "yes", Choices:/,
+ );
+ });
+
+ it('should add default value to help', async () => {
+ expect(await localYargs.getHelp()).toContain('[default: "default-array"]');
+ });
+ });
+
describe('type=string, enum', () => {
it('parses valid option value', async () => {
expect(await parse(['--ssr', 'never'])).toEqual(
@@ -125,11 +120,9 @@ describe('parseJsonSchemaToOptions', () => {
it('rejects invalid values for string maps', async () => {
await expectAsync(parse(['--some-define', 'foo'])).toBeRejectedWithError(
- YError,
/Invalid value for argument: some-define, Given: 'foo', Expected key=value pair/,
);
await expectAsync(parse(['--some-define', '42'])).toBeRejectedWithError(
- YError,
/Invalid value for argument: some-define, Given: '42', Expected key=value pair/,
);
});
@@ -162,43 +155,42 @@ describe('parseJsonSchemaToOptions', () => {
describe('with required positional argument', () => {
it('marks the required argument as required', async () => {
- const jsonSchema = JSON.parse(`
- {
- "$id": "FakeSchema",
- "title": "Fake Schema",
- "type": "object",
- "required": ["a"],
- "properties": {
- "b": {
- "type": "string",
- "description": "b.",
- "$default": {
- "$source": "argv",
- "index": 1
- }
+ const jsonSchema = {
+ '$id': 'FakeSchema',
+ 'title': 'Fake Schema',
+ 'type': 'object',
+ 'required': ['a'],
+ 'properties': {
+ 'b': {
+ 'type': 'string',
+ 'description': 'b.',
+ '$default': {
+ '$source': 'argv',
+ 'index': 1,
+ },
+ },
+ 'a': {
+ 'type': 'string',
+ 'description': 'a.',
+ '$default': {
+ '$source': 'argv',
+ 'index': 0,
+ },
},
- "a": {
- "type": "string",
- "description": "a.",
- "$default": {
- "$source": "argv",
- "index": 0
- }
+ 'optC': {
+ 'type': 'string',
+ 'description': 'optC',
},
- "optC": {
- "type": "string",
- "description": "optC"
+ 'optA': {
+ 'type': 'string',
+ 'description': 'optA',
},
- "optA": {
- "type": "string",
- "description": "optA"
+ 'optB': {
+ 'type': 'string',
+ 'description': 'optB',
},
- "optB": {
- "type": "string",
- "description": "optB"
- }
- }
- }`) as json.JsonObject;
+ },
+ };
const registry = new schema.CoreSchemaRegistry();
const options = await parseJsonSchemaToOptions(registry, jsonSchema, /* interactive= */ true);
diff --git a/packages/angular/cli/src/commands/mcp/cli.ts b/packages/angular/cli/src/commands/mcp/cli.ts
index 7e3618eeb17e..9f8cfef91997 100644
--- a/packages/angular/cli/src/commands/mcp/cli.ts
+++ b/packages/angular/cli/src/commands/mcp/cli.ts
@@ -10,7 +10,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
import { Argv } from 'yargs';
import { CommandModule, CommandModuleImplementation } from '../../command-builder/command-module';
import { isTTY } from '../../utilities/tty';
-import { createMcpServer } from './mcp-server';
+import { EXPERIMENTAL_TOOLS, createMcpServer } from './mcp-server';
const INTERACTIVE_MESSAGE = `
To start using the Angular CLI MCP Server, add this configuration to your host:
@@ -25,6 +25,8 @@ To start using the Angular CLI MCP Server, add this configuration to your host:
}
Exact configuration may differ depending on the host.
+
+For more information and documentation, visit: https://angular.dev/ai/mcp
`;
export default class McpCommandModule extends CommandModule implements CommandModuleImplementation {
@@ -49,6 +51,8 @@ export default class McpCommandModule extends CommandModule implements CommandMo
alias: 'E',
array: true,
describe: 'Enable an experimental tool.',
+ choices: EXPERIMENTAL_TOOLS.map(({ name }) => name),
+ hidden: true,
});
}
diff --git a/packages/angular/cli/src/commands/mcp/mcp-server.ts b/packages/angular/cli/src/commands/mcp/mcp-server.ts
index ceedc6374ad6..cf852de0482d 100644
--- a/packages/angular/cli/src/commands/mcp/mcp-server.ts
+++ b/packages/angular/cli/src/commands/mcp/mcp-server.ts
@@ -28,7 +28,7 @@ const STABLE_TOOLS = [BEST_PRACTICES_TOOL, DOC_SEARCH_TOOL, LIST_PROJECTS_TOOL]
* The set of tools that are available but not enabled by default.
* These tools are considered experimental and may have limitations.
*/
-const EXPERIMENTAL_TOOLS = [FIND_EXAMPLE_TOOL, MODERNIZE_TOOL] as const;
+export const EXPERIMENTAL_TOOLS = [FIND_EXAMPLE_TOOL, MODERNIZE_TOOL] as const;
export async function createMcpServer(
options: {
diff --git a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts
index 40c0ec8cf464..b5b207ea3b08 100644
--- a/packages/angular/cli/src/commands/mcp/tools/best-practices.ts
+++ b/packages/angular/cli/src/commands/mcp/tools/best-practices.ts
@@ -26,7 +26,7 @@ export const BEST_PRACTICES_TOOL = declareTool({
return async () => {
bestPracticesText ??= await readFile(
- path.join(__dirname, '..', 'instructions', 'best-practices.md'),
+ path.join(__dirname, '..', 'resources', 'best-practices.md'),
'utf-8',
);
diff --git a/packages/angular/cli/src/utilities/package-manager.ts b/packages/angular/cli/src/utilities/package-manager.ts
index 1e249a4f13fa..d95205f95184 100644
--- a/packages/angular/cli/src/utilities/package-manager.ts
+++ b/packages/angular/cli/src/utilities/package-manager.ts
@@ -168,7 +168,7 @@ export class PackageManagerUtils {
return new Promise((resolve) => {
const bufferedOutput: { stream: NodeJS.WriteStream; data: Buffer }[] = [];
- const childProcess = spawn(this.name, args, {
+ const childProcess = spawn(`${this.name} ${args.join(' ')}`, {
// Always pipe stderr to allow for failures to be reported
stdio: silent ? ['ignore', 'ignore', 'pipe'] : 'pipe',
shell: true,
diff --git a/packages/angular/ssr/src/utils/ng.ts b/packages/angular/ssr/src/utils/ng.ts
index b92aa51d1d84..62f504d4341b 100644
--- a/packages/angular/ssr/src/utils/ng.ts
+++ b/packages/angular/ssr/src/utils/ng.ts
@@ -100,7 +100,15 @@ export async function renderAngular(
const envInjector = applicationRef.injector;
const routerIsProvided = !!envInjector.get(ActivatedRoute, null);
const router = envInjector.get(Router);
- const lastSuccessfulNavigation = router.lastSuccessfulNavigation;
+
+ // TODO(alanagius): Remove the below check when version 21.0.0-next.0 is on NPM
+ // Workaround for breaking change that landed on angular/angular main too early
+ // https://github.com/angular/angular/pull/63057
+ const lastSuccessfulNavigation =
+ typeof router.lastSuccessfulNavigation === 'function'
+ ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ (router as any).lastSuccessfulNavigation()
+ : router.lastSuccessfulNavigation;
if (!routerIsProvided) {
hasNavigationError = false;
diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json
index ae23e25a8a8b..9d1df7de64be 100644
--- a/packages/angular_devkit/build_angular/package.json
+++ b/packages/angular_devkit/build_angular/package.json
@@ -11,15 +11,15 @@
"@angular-devkit/build-webpack": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER",
"@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER",
"@angular/build": "workspace:0.0.0-PLACEHOLDER",
- "@babel/core": "7.28.0",
- "@babel/generator": "7.28.0",
+ "@babel/core": "7.28.3",
+ "@babel/generator": "7.28.3",
"@babel/helper-annotate-as-pure": "7.27.3",
"@babel/helper-split-export-declaration": "7.24.7",
"@babel/plugin-transform-async-generator-functions": "7.28.0",
"@babel/plugin-transform-async-to-generator": "7.27.1",
- "@babel/plugin-transform-runtime": "7.28.0",
- "@babel/preset-env": "7.28.0",
- "@babel/runtime": "7.28.2",
+ "@babel/plugin-transform-runtime": "7.28.3",
+ "@babel/preset-env": "7.28.3",
+ "@babel/runtime": "7.28.3",
"@discoveryjs/json-ext": "0.6.3",
"@ngtools/webpack": "workspace:0.0.0-PLACEHOLDER",
"ansi-colors": "4.1.3",
@@ -55,7 +55,7 @@
"terser": "5.43.1",
"tree-kill": "1.2.2",
"tslib": "2.8.1",
- "webpack": "5.101.1",
+ "webpack": "5.101.2",
"webpack-dev-middleware": "7.4.2",
"webpack-dev-server": "5.2.2",
"webpack-merge": "6.0.1",
diff --git a/packages/angular_devkit/build_webpack/package.json b/packages/angular_devkit/build_webpack/package.json
index 5561c3931705..bc9afa203240 100644
--- a/packages/angular_devkit/build_webpack/package.json
+++ b/packages/angular_devkit/build_webpack/package.json
@@ -22,7 +22,7 @@
"devDependencies": {
"@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER",
"@ngtools/webpack": "workspace:0.0.0-PLACEHOLDER",
- "webpack": "5.101.1",
+ "webpack": "5.101.2",
"webpack-dev-server": "5.2.2"
},
"peerDependencies": {
diff --git a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts
index 9e162c0b397b..e0fa17ee6a7b 100644
--- a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts
+++ b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts
@@ -132,7 +132,7 @@ export default function (
// Workaround for https://github.com/sindresorhus/ora/issues/136.
discardStdin: process.platform != 'win32',
}).start();
- const childProcess = spawn(taskPackageManagerName, args, spawnOptions).on(
+ const childProcess = spawn(`${taskPackageManagerName} ${args.join(' ')}`, spawnOptions).on(
'close',
(code: number) => {
if (code === 0) {
diff --git a/packages/angular_devkit/schematics/tasks/repo-init/executor.ts b/packages/angular_devkit/schematics/tasks/repo-init/executor.ts
index 8d1ba4804493..97b2b12a3619 100644
--- a/packages/angular_devkit/schematics/tasks/repo-init/executor.ts
+++ b/packages/angular_devkit/schematics/tasks/repo-init/executor.ts
@@ -41,7 +41,7 @@ export default function (
};
return new Promise((resolve, reject) => {
- spawn('git', args, spawnOptions).on('close', (code: number) => {
+ spawn(`git ${args.join(' ')}`, spawnOptions).on('close', (code: number) => {
if (code === 0) {
resolve();
} else {
diff --git a/packages/angular_devkit/schematics_cli/package.json b/packages/angular_devkit/schematics_cli/package.json
index 9b5ffd910894..36a09d89399f 100644
--- a/packages/angular_devkit/schematics_cli/package.json
+++ b/packages/angular_devkit/schematics_cli/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER",
"@angular-devkit/schematics": "workspace:0.0.0-PLACEHOLDER",
- "@inquirer/prompts": "7.8.1",
+ "@inquirer/prompts": "7.8.2",
"ansi-colors": "4.1.3",
"yargs-parser": "22.0.0"
}
diff --git a/packages/ngtools/webpack/package.json b/packages/ngtools/webpack/package.json
index d7a6903db781..8ad490c870c5 100644
--- a/packages/ngtools/webpack/package.json
+++ b/packages/ngtools/webpack/package.json
@@ -30,6 +30,6 @@
"@angular/compiler": "20.2.0-rc.0",
"@angular/compiler-cli": "20.2.0-rc.0",
"typescript": "5.9.2",
- "webpack": "5.101.1"
+ "webpack": "5.101.2"
}
}
diff --git a/packages/schematics/angular/ai-config/schema.json b/packages/schematics/angular/ai-config/schema.json
index 8f2d40f95d85..8595f9f7c558 100644
--- a/packages/schematics/angular/ai-config/schema.json
+++ b/packages/schematics/angular/ai-config/schema.json
@@ -10,9 +10,41 @@
"type": "array",
"uniqueItems": true,
"default": "none",
- "x-prompt": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai",
+ "x-prompt": {
+ "message": "Which AI tools do you want to configure with Angular best practices? https://angular.dev/ai/develop-with-ai",
+ "type": "list",
+ "items": [
+ {
+ "value": "none",
+ "label": "None"
+ },
+ {
+ "value": "claude",
+ "label": "Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]"
+ },
+ {
+ "value": "cursor",
+ "label": "Cursor [ https://docs.cursor.com/en/context/rules ]"
+ },
+ {
+ "value": "gemini",
+ "label": "Gemini [ https://ai.google.dev/gemini-api/docs ]"
+ },
+ {
+ "value": "copilot",
+ "label": "GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization#_custom-instructions ]"
+ },
+ {
+ "value": "jetbrains",
+ "label": "JetBrains AI Assistant [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]"
+ },
+ {
+ "value": "windsurf",
+ "label": "Windsurf [ https://docs.windsurf.com/windsurf/cascade/memories#rules ]"
+ }
+ ]
+ },
"description": "Specifies which AI tools to generate configuration files for. These file are used to improve the outputs of AI tools by following the best practices.",
- "minItems": 1,
"items": {
"type": "string",
"enum": ["none", "gemini", "copilot", "claude", "cursor", "jetbrains", "windsurf"]
@@ -26,8 +58,7 @@
"const": "none"
}
}
- },
- "required": ["tool"]
+ }
},
"then": {
"properties": {
diff --git a/packages/schematics/angular/application/schema.json b/packages/schematics/angular/application/schema.json
index 85952ef00e3c..74254948409b 100644
--- a/packages/schematics/angular/application/schema.json
+++ b/packages/schematics/angular/application/schema.json
@@ -120,7 +120,7 @@
},
"zoneless": {
"description": "Generate an application that does not use `zone.js`.",
- "x-prompt": "Do you want to create a 'zoneless' application without zone.js (Developer Preview)?",
+ "x-prompt": "Do you want to create a 'zoneless' application without zone.js?",
"type": "boolean",
"default": false
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bb2f38a5a8f2..e810cdeb13e7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -48,7 +48,7 @@ importers:
version: 20.2.0-next.3(4a9528eb43c94b22843f7a15c85db58d)
'@angular/ng-dev':
specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e16e229975bd41d66ec49905d5896b8f61068a19
- version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.2)
+ version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3)
'@angular/platform-browser':
specifier: 20.2.0-rc.0
version: 20.2.0-rc.0(@angular/animations@20.2.0-rc.0(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.2.0-rc.0(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.0-rc.0(@angular/compiler@20.2.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.1))
@@ -353,8 +353,8 @@ importers:
specifier: workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER
version: link:../../angular_devkit/architect
'@babel/core':
- specifier: 7.28.0
- version: 7.28.0
+ specifier: 7.28.3
+ version: 7.28.3
'@babel/helper-annotate-as-pure':
specifier: 7.27.3
version: 7.27.3
@@ -466,14 +466,14 @@ importers:
specifier: workspace:0.0.0-PLACEHOLDER
version: link:../../angular_devkit/schematics
'@inquirer/prompts':
- specifier: 7.8.1
- version: 7.8.1(@types/node@24.2.0)
+ specifier: 7.8.2
+ version: 7.8.2(@types/node@24.2.0)
'@listr2/prompt-adapter-inquirer':
specifier: 3.0.1
- version: 3.0.1(@inquirer/prompts@7.8.1(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)
+ version: 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)
'@modelcontextprotocol/sdk':
- specifier: 1.17.2
- version: 1.17.2
+ specifier: 1.17.3
+ version: 1.17.3
'@schematics/angular':
specifier: workspace:0.0.0-PLACEHOLDER
version: link:../../schematics/angular
@@ -603,11 +603,11 @@ importers:
specifier: workspace:*
version: link:../../angular/build
'@babel/core':
- specifier: 7.28.0
- version: 7.28.0
+ specifier: 7.28.3
+ version: 7.28.3
'@babel/generator':
- specifier: 7.28.0
- version: 7.28.0
+ specifier: 7.28.3
+ version: 7.28.3
'@babel/helper-annotate-as-pure':
specifier: 7.27.3
version: 7.27.3
@@ -616,19 +616,19 @@ importers:
version: 7.24.7
'@babel/plugin-transform-async-generator-functions':
specifier: 7.28.0
- version: 7.28.0(@babel/core@7.28.0)
+ version: 7.28.0(@babel/core@7.28.3)
'@babel/plugin-transform-async-to-generator':
specifier: 7.27.1
- version: 7.27.1(@babel/core@7.28.0)
+ version: 7.27.1(@babel/core@7.28.3)
'@babel/plugin-transform-runtime':
- specifier: 7.28.0
- version: 7.28.0(@babel/core@7.28.0)
+ specifier: 7.28.3
+ version: 7.28.3(@babel/core@7.28.3)
'@babel/preset-env':
- specifier: 7.28.0
- version: 7.28.0(@babel/core@7.28.0)
+ specifier: 7.28.3
+ version: 7.28.3(@babel/core@7.28.3)
'@babel/runtime':
- specifier: 7.28.2
- version: 7.28.2
+ specifier: 7.28.3
+ version: 7.28.3
'@discoveryjs/json-ext':
specifier: 0.6.3
version: 0.6.3
@@ -643,16 +643,16 @@ importers:
version: 10.4.21(postcss@8.5.6)
babel-loader:
specifier: 10.0.0
- version: 10.0.0(@babel/core@7.28.0)(webpack@5.101.1(esbuild@0.25.9))
+ version: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9))
browserslist:
specifier: ^4.21.5
version: 4.25.2
copy-webpack-plugin:
specifier: 13.0.1
- version: 13.0.1(webpack@5.101.1(esbuild@0.25.9))
+ version: 13.0.1(webpack@5.101.2(esbuild@0.25.9))
css-loader:
specifier: 7.1.2
- version: 7.1.2(webpack@5.101.1(esbuild@0.25.9))
+ version: 7.1.2(webpack@5.101.2(esbuild@0.25.9))
esbuild-wasm:
specifier: 0.25.9
version: 0.25.9
@@ -676,16 +676,16 @@ importers:
version: 4.4.0
less-loader:
specifier: 12.3.0
- version: 12.3.0(less@4.4.0)(webpack@5.101.1(esbuild@0.25.9))
+ version: 12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9))
license-webpack-plugin:
specifier: 4.0.2
- version: 4.0.2(webpack@5.101.1(esbuild@0.25.9))
+ version: 4.0.2(webpack@5.101.2(esbuild@0.25.9))
loader-utils:
specifier: 3.3.1
version: 3.3.1
mini-css-extract-plugin:
specifier: 2.9.4
- version: 2.9.4(webpack@5.101.1(esbuild@0.25.9))
+ version: 2.9.4(webpack@5.101.2(esbuild@0.25.9))
open:
specifier: 10.2.0
version: 10.2.0
@@ -703,7 +703,7 @@ importers:
version: 8.5.6
postcss-loader:
specifier: 8.1.1
- version: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.1(esbuild@0.25.9))
+ version: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))
resolve-url-loader:
specifier: 5.0.0
version: 5.0.0
@@ -715,13 +715,13 @@ importers:
version: 1.90.0
sass-loader:
specifier: 16.0.5
- version: 16.0.5(sass@1.90.0)(webpack@5.101.1(esbuild@0.25.9))
+ version: 16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9))
semver:
specifier: 7.7.2
version: 7.7.2
source-map-loader:
specifier: 5.0.0
- version: 5.0.0(webpack@5.101.1(esbuild@0.25.9))
+ version: 5.0.0(webpack@5.101.2(esbuild@0.25.9))
source-map-support:
specifier: 0.5.21
version: 0.5.21
@@ -735,20 +735,20 @@ importers:
specifier: 2.8.1
version: 2.8.1
webpack:
- specifier: 5.101.1
- version: 5.101.1(esbuild@0.25.9)
+ specifier: 5.101.2
+ version: 5.101.2(esbuild@0.25.9)
webpack-dev-middleware:
specifier: 7.4.2
- version: 7.4.2(webpack@5.101.1(esbuild@0.25.9))
+ version: 7.4.2(webpack@5.101.2(esbuild@0.25.9))
webpack-dev-server:
specifier: 5.2.2
- version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9))
+ version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9))
webpack-merge:
specifier: 6.0.1
version: 6.0.1
webpack-subresource-integrity:
specifier: 5.1.0
- version: 5.1.0(webpack@5.101.1(esbuild@0.25.9))
+ version: 5.1.0(webpack@5.101.2(esbuild@0.25.9))
devDependencies:
'@angular/ssr':
specifier: workspace:*
@@ -786,11 +786,11 @@ importers:
specifier: workspace:0.0.0-PLACEHOLDER
version: link:../../ngtools/webpack
webpack:
- specifier: 5.101.1
- version: 5.101.1(esbuild@0.25.9)
+ specifier: 5.101.2
+ version: 5.101.2(esbuild@0.25.9)
webpack-dev-server:
specifier: 5.2.2
- version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9))
+ version: 5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9))
packages/angular_devkit/core:
dependencies:
@@ -844,8 +844,8 @@ importers:
specifier: workspace:0.0.0-PLACEHOLDER
version: link:../schematics
'@inquirer/prompts':
- specifier: 7.8.1
- version: 7.8.1(@types/node@24.2.0)
+ specifier: 7.8.2
+ version: 7.8.2(@types/node@24.2.0)
ansi-colors:
specifier: 4.1.3
version: 4.1.3
@@ -868,8 +868,8 @@ importers:
specifier: 5.9.2
version: 5.9.2
webpack:
- specifier: 5.101.1
- version: 5.101.1(esbuild@0.25.9)
+ specifier: 5.101.2
+ version: 5.101.2(esbuild@0.25.9)
packages/schematics/angular:
dependencies:
@@ -1109,8 +1109,12 @@ packages:
resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.0':
- resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
+ '@babel/core@7.28.3':
+ resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.27.3':
@@ -1127,6 +1131,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-create-class-features-plugin@7.28.3':
+ resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-create-regexp-features-plugin@7.27.1':
resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==}
engines: {node: '>=6.9.0'}
@@ -1156,6 +1166,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-optimise-call-expression@7.27.1':
resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
engines: {node: '>=6.9.0'}
@@ -1204,11 +1220,20 @@ packages:
resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@7.28.3':
+ resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.28.0':
resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.28.3':
+ resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1':
resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==}
engines: {node: '>=6.9.0'}
@@ -1233,8 +1258,8 @@ packages:
peerDependencies:
'@babel/core': ^7.13.0
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1':
- resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3':
+ resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1299,14 +1324,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-static-block@7.27.1':
- resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==}
+ '@babel/plugin-transform-class-static-block@7.28.3':
+ resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.28.0':
- resolution: {integrity: sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==}
+ '@babel/plugin-transform-classes@7.28.3':
+ resolution: {integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1497,8 +1522,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.28.1':
- resolution: {integrity: sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==}
+ '@babel/plugin-transform-regenerator@7.28.3':
+ resolution: {integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1515,8 +1540,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-runtime@7.28.0':
- resolution: {integrity: sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==}
+ '@babel/plugin-transform-runtime@7.28.3':
+ resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1575,8 +1600,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.28.0':
- resolution: {integrity: sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==}
+ '@babel/preset-env@7.28.3':
+ resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1586,8 +1611,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
- '@babel/runtime@7.28.2':
- resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==}
+ '@babel/runtime@7.28.3':
+ resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==}
engines: {node: '>=6.9.0'}
'@babel/template@7.27.2':
@@ -1598,6 +1623,10 @@ packages:
resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.28.3':
+ resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.28.2':
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
engines: {node: '>=6.9.0'}
@@ -2170,6 +2199,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/checkbox@4.2.1':
+ resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/confirm@5.1.14':
resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==}
engines: {node: '>=18'}
@@ -2197,6 +2235,15 @@ packages:
'@types/node':
optional: true
+ '@inquirer/editor@4.2.17':
+ resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/expand@4.0.17':
resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==}
engines: {node: '>=18'}
@@ -2212,6 +2259,15 @@ packages:
peerDependencies:
'@types/node': '>=18'
+ '@inquirer/external-editor@1.0.1':
+ resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@inquirer/figures@1.0.13':
resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==}
engines: {node: '>=18'}
@@ -2252,8 +2308,8 @@ packages:
'@types/node':
optional: true
- '@inquirer/prompts@7.8.1':
- resolution: {integrity: sha512-LpBPeIpyCF1H3C7SK/QxJQG4iV1/SRmJdymfcul8PuwtVhD0JI1CSwqmd83VgRgt1QEsDojQYFSXJSgo81PVMw==}
+ '@inquirer/prompts@7.8.2':
+ resolution: {integrity: sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
@@ -2420,8 +2476,8 @@ packages:
cpu: [x64]
os: [win32]
- '@modelcontextprotocol/sdk@1.17.2':
- resolution: {integrity: sha512-EFLRNXR/ixpXQWu6/3Cu30ndDFIFNaqUXcTqsGebujeMan9FzhAaFFswLRiFj61rgygDRr8WO1N+UijjgRxX9g==}
+ '@modelcontextprotocol/sdk@1.17.3':
+ resolution: {integrity: sha512-JPwUKWSsbzx+DLFznf/QZ32Qa+ptfbUlHhRLrBQBAFu9iI1iYvizM4p+zhhRDceSsPutXp4z+R/HPVphlIiclg==}
engines: {node: '>=18'}
'@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3':
@@ -8677,8 +8733,8 @@ packages:
html-webpack-plugin:
optional: true
- webpack@5.101.1:
- resolution: {integrity: sha512-rHY3vHXRbkSfhG6fH8zYQdth/BtDgXXuR2pHF++1f/EBkI8zkgM5XWfsC3BvOoW9pr1CvZ1qQCxhCEsbNgT50g==}
+ webpack@5.101.2:
+ resolution: {integrity: sha512-4JLXU0tD6OZNVqlwzm3HGEhAHufSiyv+skb7q0d2367VDMzrU1Q/ZeepvkcHH0rZie6uqEtTQQe0OEOOluH3Mg==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -9128,11 +9184,11 @@ snapshots:
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.2)':
+ '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e16e229975bd41d66ec49905d5896b8f61068a19(@modelcontextprotocol/sdk@1.17.3)':
dependencies:
'@actions/core': 1.11.1
'@google-cloud/spanner': 8.0.0(supports-color@10.1.0)
- '@google/genai': 1.13.0(@modelcontextprotocol/sdk@1.17.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)
+ '@google/genai': 1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)
'@inquirer/prompts': 7.8.0(@types/node@24.2.0)
'@inquirer/type': 3.0.8(@types/node@24.2.0)
'@octokit/auth-app': 8.0.2
@@ -9242,7 +9298,7 @@ snapshots:
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
+ '@babel/generator': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
'@babel/helpers': 7.28.2
@@ -9258,9 +9314,29 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.28.0':
+ '@babel/core@7.28.3':
dependencies:
- '@babel/parser': 7.28.0
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3)
+ '@babel/helpers': 7.28.3
+ '@babel/parser': 7.28.3
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.3
+ '@babel/types': 7.28.2
+ convert-source-map: 2.0.0
+ debug: 4.4.1(supports-color@10.1.0)
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.28.3':
+ dependencies:
+ '@babel/parser': 7.28.3
'@babel/types': 7.28.2
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.30
@@ -9278,29 +9354,42 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
'@babel/traverse': 7.28.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.28.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.3)':
+ dependencies:
+ '@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
regexpu-core: 6.2.0
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)':
+ '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
debug: 4.4.1(supports-color@10.1.0)
@@ -9334,27 +9423,45 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.3)':
+ dependencies:
+ '@babel/core': 7.28.3
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)':
+ dependencies:
+ '@babel/core': 7.28.3
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.3
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
'@babel/types': 7.28.2
'@babel/helper-plugin-utils@7.27.1': {}
- '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-wrap-function': 7.27.1
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)':
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.3
transitivePeerDependencies:
- supports-color
@@ -9388,505 +9495,514 @@ snapshots:
'@babel/template': 7.27.2
'@babel/types': 7.28.2
+ '@babel/helpers@7.28.3':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.2
+
'@babel/parser@7.28.0':
dependencies:
'@babel/types': 7.28.2
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)':
+ '@babel/parser@7.28.3':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/types': 7.28.2
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.3)':
+ dependencies:
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.3
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
- '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3)
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-module-imports': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-classes@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-globals': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
- '@babel/traverse': 7.28.0
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3)
+ '@babel/traverse': 7.28.3
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/template': 7.27.2
- '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3)
'@babel/traverse': 7.28.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)':
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-regenerator@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)':
+ '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-module-imports': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.3)
'@babel/helper-plugin-utils': 7.27.1
- '@babel/preset-env@7.28.0(@babel/core@7.28.0)':
+ '@babel/preset-env@7.28.3(@babel/core@7.28.3)':
dependencies:
'@babel/compat-data': 7.28.0
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.0)
- '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
- '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.0)
- '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.3)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3)
+ '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.3)
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.3)
+ '@babel/plugin-transform-classes': 7.28.3(@babel/core@7.28.3)
+ '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3)
+ '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-regenerator': 7.28.3(@babel/core@7.28.3)
+ '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.3)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.3)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3)
core-js-compat: 3.45.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.3)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
'@babel/types': 7.28.2
esutils: 2.0.3
- '@babel/runtime@7.28.2': {}
+ '@babel/runtime@7.28.3': {}
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.0
+ '@babel/parser': 7.28.3
'@babel/types': 7.28.2
'@babel/traverse@7.28.0':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
+ '@babel/generator': 7.28.3
'@babel/helper-globals': 7.28.0
'@babel/parser': 7.28.0
'@babel/template': 7.27.2
@@ -9895,6 +10011,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@7.28.3':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.3
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.2
+ debug: 4.4.1(supports-color@10.1.0)
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.28.2':
dependencies:
'@babel/helper-string-parser': 7.27.1
@@ -10476,12 +10604,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@google/genai@1.13.0(@modelcontextprotocol/sdk@1.17.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)':
+ '@google/genai@1.13.0(@modelcontextprotocol/sdk@1.17.3)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.1.0)(utf-8-validate@6.0.5)':
dependencies:
google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.1.0)
ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
optionalDependencies:
- '@modelcontextprotocol/sdk': 1.17.2
+ '@modelcontextprotocol/sdk': 1.17.3
transitivePeerDependencies:
- bufferutil
- encoding
@@ -10537,6 +10665,16 @@ snapshots:
optionalDependencies:
'@types/node': 24.2.0
+ '@inquirer/checkbox@4.2.1(@types/node@24.2.0)':
+ dependencies:
+ '@inquirer/core': 10.1.15(@types/node@24.2.0)
+ '@inquirer/figures': 1.0.13
+ '@inquirer/type': 3.0.8(@types/node@24.2.0)
+ ansi-escapes: 4.3.2
+ yoctocolors-cjs: 2.1.2
+ optionalDependencies:
+ '@types/node': 24.2.0
+
'@inquirer/confirm@5.1.14(@types/node@24.2.0)':
dependencies:
'@inquirer/core': 10.1.15(@types/node@24.2.0)
@@ -10565,6 +10703,14 @@ snapshots:
optionalDependencies:
'@types/node': 24.2.0
+ '@inquirer/editor@4.2.17(@types/node@24.2.0)':
+ dependencies:
+ '@inquirer/core': 10.1.15(@types/node@24.2.0)
+ '@inquirer/external-editor': 1.0.1(@types/node@24.2.0)
+ '@inquirer/type': 3.0.8(@types/node@24.2.0)
+ optionalDependencies:
+ '@types/node': 24.2.0
+
'@inquirer/expand@4.0.17(@types/node@24.2.0)':
dependencies:
'@inquirer/core': 10.1.15(@types/node@24.2.0)
@@ -10579,6 +10725,13 @@ snapshots:
chardet: 2.1.0
iconv-lite: 0.6.3
+ '@inquirer/external-editor@1.0.1(@types/node@24.2.0)':
+ dependencies:
+ chardet: 2.1.0
+ iconv-lite: 0.6.3
+ optionalDependencies:
+ '@types/node': 24.2.0
+
'@inquirer/figures@1.0.13': {}
'@inquirer/input@4.2.1(@types/node@24.2.0)':
@@ -10618,11 +10771,11 @@ snapshots:
optionalDependencies:
'@types/node': 24.2.0
- '@inquirer/prompts@7.8.1(@types/node@24.2.0)':
+ '@inquirer/prompts@7.8.2(@types/node@24.2.0)':
dependencies:
- '@inquirer/checkbox': 4.2.0(@types/node@24.2.0)
+ '@inquirer/checkbox': 4.2.1(@types/node@24.2.0)
'@inquirer/confirm': 5.1.14(@types/node@24.2.0)
- '@inquirer/editor': 4.2.16(@types/node@24.2.0)
+ '@inquirer/editor': 4.2.17(@types/node@24.2.0)
'@inquirer/expand': 4.0.17(@types/node@24.2.0)
'@inquirer/input': 4.2.1(@types/node@24.2.0)
'@inquirer/number': 3.0.17(@types/node@24.2.0)
@@ -10747,9 +10900,9 @@ snapshots:
'@leichtgewicht/ip-codec@2.0.5': {}
- '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.1(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)':
+ '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@24.2.0))(@types/node@24.2.0)(listr2@9.0.1)':
dependencies:
- '@inquirer/prompts': 7.8.1(@types/node@24.2.0)
+ '@inquirer/prompts': 7.8.2(@types/node@24.2.0)
'@inquirer/type': 3.0.8(@types/node@24.2.0)
listr2: 9.0.1
transitivePeerDependencies:
@@ -10776,7 +10929,7 @@ snapshots:
'@lmdb/lmdb-win32-x64@3.4.2':
optional: true
- '@modelcontextprotocol/sdk@1.17.2':
+ '@modelcontextprotocol/sdk@1.17.3':
dependencies:
ajv: 6.12.6
content-type: 1.0.5
@@ -12633,33 +12786,33 @@ snapshots:
b4a@1.6.7: {}
- babel-loader@10.0.0(@babel/core@7.28.0)(webpack@5.101.1(esbuild@0.25.9)):
+ babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
find-up: 5.0.0
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
- babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0):
+ babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3):
dependencies:
'@babel/compat-data': 7.28.0
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0):
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.3):
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3)
core-js-compat: 3.45.0
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0):
+ babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.3):
dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ '@babel/core': 7.28.3
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3)
transitivePeerDependencies:
- supports-color
@@ -13203,14 +13356,14 @@ snapshots:
dependencies:
is-what: 3.14.1
- copy-webpack-plugin@13.0.1(webpack@5.101.1(esbuild@0.25.9)):
+ copy-webpack-plugin@13.0.1(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
glob-parent: 6.0.2
normalize-path: 3.0.0
schema-utils: 4.3.2
serialize-javascript: 6.0.2
tinyglobby: 0.2.14
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
core-js-compat@3.45.0:
dependencies:
@@ -13254,7 +13407,7 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- css-loader@7.1.2(webpack@5.101.1(esbuild@0.25.9)):
+ css-loader@7.1.2(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
icss-utils: 5.1.0(postcss@8.5.6)
postcss: 8.5.6
@@ -13265,7 +13418,7 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.7.2
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
css-select@6.0.0:
dependencies:
@@ -15012,7 +15165,7 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/parser': 7.28.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
@@ -15022,7 +15175,7 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.3
'@babel/parser': 7.28.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
@@ -15369,11 +15522,11 @@ snapshots:
picocolors: 1.1.1
shell-quote: 1.8.3
- less-loader@12.3.0(less@4.4.0)(webpack@5.101.1(esbuild@0.25.9)):
+ less-loader@12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
less: 4.4.0
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
less@4.4.0:
dependencies:
@@ -15394,11 +15547,11 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- license-webpack-plugin@4.0.2(webpack@5.101.1(esbuild@0.25.9)):
+ license-webpack-plugin@4.0.2(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
webpack-sources: 3.3.3
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
lie@3.3.0:
dependencies:
@@ -15629,11 +15782,11 @@ snapshots:
mimic-function@5.0.1: {}
- mini-css-extract-plugin@2.9.4(webpack@5.101.1(esbuild@0.25.9)):
+ mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
schema-utils: 4.3.2
tapable: 2.2.2
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
minimalistic-assert@1.0.1: {}
@@ -16289,14 +16442,14 @@ snapshots:
possible-typed-array-names@1.1.0: {}
- postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.1(esbuild@0.25.9)):
+ postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
cosmiconfig: 9.0.0(typescript@5.9.2)
jiti: 1.21.7
postcss: 8.5.6
semver: 7.7.2
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
transitivePeerDependencies:
- typescript
@@ -16843,12 +16996,12 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.1(esbuild@0.25.9)):
+ sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
neo-async: 2.6.2
optionalDependencies:
sass: 1.90.0
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
sass@1.90.0:
dependencies:
@@ -17167,11 +17320,11 @@ snapshots:
source-map-js@1.2.1: {}
- source-map-loader@5.0.0(webpack@5.101.1(esbuild@0.25.9)):
+ source-map-loader@5.0.0(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
iconv-lite: 0.6.3
source-map-js: 1.2.1
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
source-map-support@0.4.18:
dependencies:
@@ -17465,14 +17618,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.101.1(esbuild@0.25.9)):
+ terser-webpack-plugin@5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
'@jridgewell/trace-mapping': 0.3.30
jest-worker: 27.5.1
schema-utils: 4.3.2
serialize-javascript: 6.0.2
terser: 5.43.1
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
optionalDependencies:
esbuild: 0.25.9
@@ -18001,7 +18154,7 @@ snapshots:
webidl-conversions@7.0.0: {}
- webpack-dev-middleware@7.4.2(webpack@5.101.1(esbuild@0.25.9)):
+ webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
colorette: 2.0.20
memfs: 4.36.0
@@ -18010,9 +18163,9 @@ snapshots:
range-parser: 1.2.1
schema-utils: 4.3.2
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
- webpack-dev-server@5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.1(esbuild@0.25.9)):
+ webpack-dev-server@5.2.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
'@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4
@@ -18040,10 +18193,10 @@ snapshots:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack-dev-middleware: 7.4.2(webpack@5.101.1(esbuild@0.25.9))
+ webpack-dev-middleware: 7.4.2(webpack@5.101.2(esbuild@0.25.9))
ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
optionalDependencies:
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
transitivePeerDependencies:
- bufferutil
- debug
@@ -18058,12 +18211,12 @@ snapshots:
webpack-sources@3.3.3: {}
- webpack-subresource-integrity@5.1.0(webpack@5.101.1(esbuild@0.25.9)):
+ webpack-subresource-integrity@5.1.0(webpack@5.101.2(esbuild@0.25.9)):
dependencies:
typed-assert: 1.0.9
- webpack: 5.101.1(esbuild@0.25.9)
+ webpack: 5.101.2(esbuild@0.25.9)
- webpack@5.101.1(esbuild@0.25.9):
+ webpack@5.101.2(esbuild@0.25.9):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -18087,7 +18240,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 4.3.2
tapable: 2.2.2
- terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.1(esbuild@0.25.9))
+ terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9))
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
diff --git a/scripts/diff-release-package.mts b/scripts/diff-release-package.mts
index 0cc4524ad03d..2bf01aded3cd 100644
--- a/scripts/diff-release-package.mts
+++ b/scripts/diff-release-package.mts
@@ -64,7 +64,7 @@ async function main(packageName: string) {
console.log(`--> Cloned snapshot repo.`);
const bazelBinDir = childProcess
- .spawnSync(bazel, ['info', 'bazel-bin'], {
+ .spawnSync(`${bazel} info bazel-bin`, {
shell: true,
encoding: 'utf8',
stdio: ['pipe', 'pipe', 'inherit'],
@@ -79,15 +79,11 @@ async function main(packageName: string) {
// Delete old directory to avoid surprises, or stamping being outdated.
await deleteDir(outputPath);
- childProcess.spawnSync(
- bazel,
- ['build', `//packages/${targetDir}:npm_package`, '--config=snapshot'],
- {
- shell: true,
- stdio: 'inherit',
- encoding: 'utf8',
- },
- );
+ childProcess.spawnSync(`${bazel} build //packages/${targetDir}:npm_package --config=snapshot`, {
+ shell: true,
+ stdio: 'inherit',
+ encoding: 'utf8',
+ });
console.log('--> Built npm package with --config=snapshot');
console.error(`--> Output: ${outputPath}`);
diff --git a/scripts/validate.mts b/scripts/validate.mts
index 2eebce377b44..1de28c3e5de2 100644
--- a/scripts/validate.mts
+++ b/scripts/validate.mts
@@ -13,8 +13,10 @@ import validateUserAnalytics from './validate-user-analytics.mjs';
export default async function (options: { verbose: boolean }) {
let error = false;
- if (execSync(`git status --porcelain`).toString()) {
- console.error('There are local changes.');
+ const changes = execSync(`git status --porcelain`).toString();
+ if (changes) {
+ console.error('There are local changes. See below:');
+ console.error(changes);
if (!options.verbose) {
return 101;
}
diff --git a/scripts/windows-testing/convert-symlinks.mjs b/scripts/windows-testing/convert-symlinks.mjs
index a170e350dae2..f07bbaaeb481 100644
--- a/scripts/windows-testing/convert-symlinks.mjs
+++ b/scripts/windows-testing/convert-symlinks.mjs
@@ -1,3 +1,11 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.dev/license
+ */
+
/**
* @fileoverview Script that takes a directory and converts all its Unix symlinks
* to relative Windows-compatible symlinks. This is necessary because when building
@@ -13,14 +21,13 @@
* - https://pnpm.io/symlinked-node-modules-structure.
*/
-import path from 'node:path';
-import fs from 'node:fs/promises';
import childProcess from 'node:child_process';
+import fs from 'node:fs/promises';
+import path from 'node:path';
+import { setTimeout } from 'node:timers/promises';
const [rootDir, cmdPath] = process.argv.slice(2);
-// GitHub actions can set this environment variable when pressing the "re-run" button.
-const debug = process.env.ACTIONS_STEP_DEBUG === 'true';
const skipDirectories = [
// Modules that we don't need and would unnecessarily slow-down this.
'_windows_amd64/bin/nodejs/node_modules',
@@ -87,28 +94,34 @@ async function transformDir(p) {
await Promise.all(directoriesToVisit.map((d) => transformDir(d)));
}
-function exec(cmd, maxRetries = 3) {
- return new Promise((resolve, reject) => {
- childProcess.exec(cmd, { cwd: rootDir }, (error) => {
- if (error !== null) {
- // Windows command spawned within WSL (which is untypical) seem to be flaky rarely.
- // This logic tries to make it fully stable by re-trying if this surfaces:
- // See: https://github.com/microsoft/WSL/issues/8677.
- if (
- maxRetries > 0 &&
- error.stderr !== undefined &&
- error.stderr.includes(`accept4 failed 110`)
- ) {
- resolve(exec(cmd, maxRetries - 1));
- return;
- }
-
- reject(error);
+async function exec(cmd, maxRetries = 5, retryDelay = 100) {
+ let attempts = 0;
+ while (attempts <= maxRetries) {
+ try {
+ await new Promise((resolve, reject) => {
+ childProcess.exec(cmd, { cwd: rootDir }, (error) => {
+ if (error) {
+ reject(error);
+ } else {
+ resolve();
+ }
+ });
+ });
+
+ return;
+ } catch (error) {
+ // Windows command spawned within WSL (which is untypical) seem to be flaky.
+ // This logic tries to make it fully stable by re-trying if this surfaces:
+ // See: https://github.com/microsoft/WSL/issues/8677.
+ if (attempts < maxRetries && error.stderr?.includes('accept4 failed 110')) {
+ // Add a delay before the next attempt
+ await setTimeout(retryDelay);
+ attempts++;
} else {
- resolve();
+ throw error;
}
- });
- });
+ }
+ }
}
try {
@@ -120,7 +133,7 @@ try {
// Re-link symlinks to work inside Windows.
// This is done in batches to avoid flakiness due to WSL
// See: https://github.com/microsoft/WSL/issues/8677.
- const batchSize = 75;
+ const batchSize = 50;
for (let i = 0; i < relinkFns.length; i += batchSize) {
await Promise.all(relinkFns.slice(i, i + batchSize).map((fn) => fn()));
}
diff --git a/scripts/windows-testing/parallel-executor.mjs b/scripts/windows-testing/parallel-executor.mjs
index b5c496578277..a416d5c90def 100644
--- a/scripts/windows-testing/parallel-executor.mjs
+++ b/scripts/windows-testing/parallel-executor.mjs
@@ -1,3 +1,11 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.dev/license
+ */
+
import * as child_process from 'node:child_process';
import path from 'node:path';
import { stripVTControlCharacters } from 'node:util';
diff --git a/tests/legacy-cli/BUILD.bazel b/tests/legacy-cli/BUILD.bazel
index c148aba86de5..0b66850c52b2 100644
--- a/tests/legacy-cli/BUILD.bazel
+++ b/tests/legacy-cli/BUILD.bazel
@@ -67,7 +67,6 @@ e2e_suites(
# Extra runtime deps due to bundling issues.
# TODO: Clean this up.
- "//:node_modules/@verdaccio/config",
"//:node_modules/express",
],
runner = ":runner_entrypoint",
diff --git a/tests/legacy-cli/e2e.bzl b/tests/legacy-cli/e2e.bzl
index 2647cedfde32..57ed1da1bebf 100644
--- a/tests/legacy-cli/e2e.bzl
+++ b/tests/legacy-cli/e2e.bzl
@@ -37,11 +37,13 @@ ESBUILD_TESTS = [
"tests/commands/serve/ssr-http-requests-assets.js",
"tests/i18n/**",
"tests/vite/**",
+ "tests/vitest/**",
"tests/test/**",
]
WEBPACK_IGNORE_TESTS = [
"tests/vite/**",
+ "tests/vitest/**",
"tests/build/app-shell/**",
"tests/i18n/ivy-localize-app-shell.js",
"tests/i18n/ivy-localize-app-shell-service-worker.js",
@@ -115,8 +117,8 @@ def _e2e_tests(name, runner, toolchain, **kwargs):
"CHROME_PATH": "$(CHROME-HEADLESS-SHELL)",
"CHROMEDRIVER_BIN": "$(CHROMEDRIVER)",
})
- toolchains = toolchains + ["@rules_browsers//src/browsers/chromium:toolchain_alias"]
- data = data + ["@rules_browsers//src/browsers/chromium"]
+ toolchains = toolchains + ["@rules_browsers//browsers/chromium:toolchain_alias"]
+ data = data + ["@rules_browsers//browsers/chromium"]
js_test(
name = name,
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/package.json b/tests/legacy-cli/e2e/assets/17.0-project/package.json
deleted file mode 100644
index c0f3c7b59156..000000000000
--- a/tests/legacy-cli/e2e/assets/17.0-project/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "seventeen-project",
- "version": "0.0.0",
- "scripts": {
- "ng": "ng",
- "start": "ng serve",
- "build": "ng build",
- "watch": "ng build --watch --configuration development",
- "test": "ng test"
- },
- "private": true,
- "dependencies": {
- "@angular/animations": "^17.3.0",
- "@angular/common": "^17.3.0",
- "@angular/compiler": "^17.3.0",
- "@angular/core": "^17.3.0",
- "@angular/forms": "^17.3.0",
- "@angular/platform-browser": "^17.3.0",
- "@angular/platform-browser-dynamic": "^17.3.0",
- "@angular/router": "^17.3.0",
- "rxjs": "~7.8.0",
- "tslib": "^2.3.0",
- "zone.js": "~0.14.3"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "^17.3.12",
- "@angular/cli": "^17.3.12",
- "@angular/compiler-cli": "^17.3.0",
- "@types/jasmine": "~5.1.0",
- "jasmine-core": "~5.1.0",
- "karma": "~6.4.0",
- "karma-chrome-launcher": "~3.2.0",
- "karma-coverage": "~2.2.0",
- "karma-jasmine": "~5.1.0",
- "karma-jasmine-html-reporter": "~2.1.0",
- "typescript": "~5.4.2"
- }
-}
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts b/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts
deleted file mode 100644
index 6c6ef6035f3d..000000000000
--- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ApplicationConfig } from '@angular/core';
-import { provideRouter } from '@angular/router';
-
-import { routes } from './app.routes';
-
-export const appConfig: ApplicationConfig = {
- providers: [provideRouter(routes)]
-};
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/assets/.gitkeep b/tests/legacy-cli/e2e/assets/17.0-project/src/assets/.gitkeep
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json b/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json
deleted file mode 100644
index 374cc9d294aa..000000000000
--- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "./out-tsc/app",
- "types": []
- },
- "files": [
- "src/main.ts"
- ],
- "include": [
- "src/**/*.d.ts"
- ]
-}
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json b/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json
deleted file mode 100644
index be7e9da76f7b..000000000000
--- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.spec.json
+++ /dev/null
@@ -1,14 +0,0 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "./out-tsc/spec",
- "types": [
- "jasmine"
- ]
- },
- "include": [
- "src/**/*.spec.ts",
- "src/**/*.d.ts"
- ]
-}
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/.editorconfig b/tests/legacy-cli/e2e/assets/18.0-project/.editorconfig
similarity index 87%
rename from tests/legacy-cli/e2e/assets/17.0-project/.editorconfig
rename to tests/legacy-cli/e2e/assets/18.0-project/.editorconfig
index 59d9a3a3e73f..f166060da1cb 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/.editorconfig
+++ b/tests/legacy-cli/e2e/assets/18.0-project/.editorconfig
@@ -10,6 +10,7 @@ trim_trailing_whitespace = true
[*.ts]
quote_type = single
+ij_typescript_use_double_quotes = false
[*.md]
max_line_length = off
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/.gitignore b/tests/legacy-cli/e2e/assets/18.0-project/.gitignore
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/.gitignore
rename to tests/legacy-cli/e2e/assets/18.0-project/.gitignore
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/README.md b/tests/legacy-cli/e2e/assets/18.0-project/README.md
similarity index 92%
rename from tests/legacy-cli/e2e/assets/17.0-project/README.md
rename to tests/legacy-cli/e2e/assets/18.0-project/README.md
index 5418a46b83c0..60097ece05c4 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/README.md
+++ b/tests/legacy-cli/e2e/assets/18.0-project/README.md
@@ -1,6 +1,6 @@
-# SeventeenProject
+# EighteenProject
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.12.
+This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.20.
## Development server
@@ -24,4 +24,4 @@ Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To u
## Further help
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
+To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/angular.json b/tests/legacy-cli/e2e/assets/18.0-project/angular.json
similarity index 77%
rename from tests/legacy-cli/e2e/assets/17.0-project/angular.json
rename to tests/legacy-cli/e2e/assets/18.0-project/angular.json
index 4e6c604d0031..70c98c792416 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/angular.json
+++ b/tests/legacy-cli/e2e/assets/18.0-project/angular.json
@@ -3,7 +3,7 @@
"version": 1,
"newProjectRoot": "projects",
"projects": {
- "seventeen-project": {
+ "eighteen-project": {
"projectType": "application",
"schematics": {},
"root": "",
@@ -13,7 +13,7 @@
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
- "outputPath": "dist/seventeen-project",
+ "outputPath": "dist/eighteen-project",
"index": "src/index.html",
"browser": "src/main.ts",
"polyfills": [
@@ -21,8 +21,10 @@
],
"tsConfig": "tsconfig.app.json",
"assets": [
- "src/favicon.ico",
- "src/assets"
+ {
+ "glob": "**/*",
+ "input": "public"
+ }
],
"styles": [
"src/styles.css"
@@ -34,13 +36,13 @@
"budgets": [
{
"type": "initial",
- "maximumWarning": "500kb",
- "maximumError": "1mb"
+ "maximumWarning": "500kB",
+ "maximumError": "1MB"
},
{
"type": "anyComponentStyle",
- "maximumWarning": "2kb",
- "maximumError": "4kb"
+ "maximumWarning": "2kB",
+ "maximumError": "4kB"
}
],
"outputHashing": "all"
@@ -57,19 +59,16 @@
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
- "buildTarget": "seventeen-project:build:production"
+ "buildTarget": "eighteen-project:build:production"
},
"development": {
- "buildTarget": "seventeen-project:build:development"
+ "buildTarget": "eighteen-project:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
- "options": {
- "buildTarget": "seventeen-project:build"
- }
+ "builder": "@angular-devkit/build-angular:extract-i18n"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
@@ -80,8 +79,10 @@
],
"tsConfig": "tsconfig.spec.json",
"assets": [
- "src/favicon.ico",
- "src/assets"
+ {
+ "glob": "**/*",
+ "input": "public"
+ }
],
"styles": [
"src/styles.css"
diff --git a/tests/legacy-cli/e2e/assets/18.0-project/package.json b/tests/legacy-cli/e2e/assets/18.0-project/package.json
new file mode 100644
index 000000000000..8b05bf229739
--- /dev/null
+++ b/tests/legacy-cli/e2e/assets/18.0-project/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "eighteen-project",
+ "version": "0.0.0",
+ "scripts": {
+ "ng": "ng",
+ "start": "ng serve",
+ "build": "ng build",
+ "watch": "ng build --watch --configuration development",
+ "test": "ng test"
+ },
+ "private": true,
+ "dependencies": {
+ "@angular/animations": "^18.2.0",
+ "@angular/common": "^18.2.0",
+ "@angular/compiler": "^18.2.0",
+ "@angular/core": "^18.2.0",
+ "@angular/forms": "^18.2.0",
+ "@angular/platform-browser": "^18.2.0",
+ "@angular/platform-browser-dynamic": "^18.2.0",
+ "@angular/router": "^18.2.0",
+ "rxjs": "~7.8.0",
+ "tslib": "^2.3.0",
+ "zone.js": "~0.14.10"
+ },
+ "devDependencies": {
+ "@angular-devkit/build-angular": "^18.2.20",
+ "@angular/cli": "^18.2.20",
+ "@angular/compiler-cli": "^18.2.0",
+ "@types/jasmine": "~5.1.0",
+ "jasmine-core": "~5.2.0",
+ "karma": "~6.4.0",
+ "karma-chrome-launcher": "~3.2.0",
+ "karma-coverage": "~2.2.0",
+ "karma-jasmine": "~5.1.0",
+ "karma-jasmine-html-reporter": "~2.1.0",
+ "typescript": "~5.5.2"
+ }
+}
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/favicon.ico b/tests/legacy-cli/e2e/assets/18.0-project/public/favicon.ico
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/favicon.ico
rename to tests/legacy-cli/e2e/assets/18.0-project/public/favicon.ico
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.css b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.css
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.css
rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.css
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html
similarity index 98%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html
rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html
index cfb20b1ffb89..36093e187977 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.html
+++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.html
@@ -134,15 +134,11 @@
--pill-accent: var(--bright-blue);
}
.pill-group .pill:nth-child(6n + 2) {
- --pill-accent: var(--electric-violet);
- }
- .pill-group .pill:nth-child(6n + 3) {
--pill-accent: var(--french-violet);
}
-
+ .pill-group .pill:nth-child(6n + 3),
.pill-group .pill:nth-child(6n + 4),
- .pill-group .pill:nth-child(6n + 5),
- .pill-group .pill:nth-child(6n + 6) {
+ .pill-group .pill:nth-child(6n + 5) {
--pill-accent: var(--hot-red);
}
@@ -238,7 +234,6 @@ Hello, {{ title }}
@for (item of [
{ title: 'Explore the Docs', link: 'https://angular.dev' },
{ title: 'Learn with Tutorials', link: 'https://angular.dev/tutorials' },
- { title: 'Prompt and best practices for AI', link: 'https://angular.dev/ai/develop-with-ai'},
{ title: 'CLI Docs', link: 'https://angular.dev/tools/cli' },
{ title: 'Angular Language Service', link: 'https://angular.dev/tools/language-service' },
{ title: 'Angular DevTools', link: 'https://angular.dev/tools/devtools' },
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts
similarity index 85%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts
rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts
index 81f10c9432b5..6e84e2cd2b04 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.spec.ts
+++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.spec.ts
@@ -14,16 +14,16 @@ describe('AppComponent', () => {
expect(app).toBeTruthy();
});
- it(`should have the 'seventeen-project' title`, () => {
+ it(`should have the 'eighteen-project' title`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
- expect(app.title).toEqual('seventeen-project');
+ expect(app.title).toEqual('eighteen-project');
});
it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
- expect(compiled.querySelector('h1')?.textContent).toContain('Hello, seventeen-project');
+ expect(compiled.querySelector('h1')?.textContent).toContain('Hello, eighteen-project');
});
});
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts
similarity index 90%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts
rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts
index ec163593670e..9b1edc2b9399 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.component.ts
+++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.component.ts
@@ -9,5 +9,5 @@ import { RouterOutlet } from '@angular/router';
styleUrl: './app.component.css'
})
export class AppComponent {
- title = 'seventeen-project';
+ title = 'eighteen-project';
}
diff --git a/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts
new file mode 100644
index 000000000000..a1e7d6f864c1
--- /dev/null
+++ b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.config.ts
@@ -0,0 +1,8 @@
+import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
+import { provideRouter } from '@angular/router';
+
+import { routes } from './app.routes';
+
+export const appConfig: ApplicationConfig = {
+ providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)]
+};
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/app/app.routes.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/app/app.routes.ts
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/app/app.routes.ts
rename to tests/legacy-cli/e2e/assets/18.0-project/src/app/app.routes.ts
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/index.html b/tests/legacy-cli/e2e/assets/18.0-project/src/index.html
similarity index 88%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/index.html
rename to tests/legacy-cli/e2e/assets/18.0-project/src/index.html
index 18ffbad003b2..ff4948e77fd2 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/src/index.html
+++ b/tests/legacy-cli/e2e/assets/18.0-project/src/index.html
@@ -2,7 +2,7 @@
- SeventeenProject
+ EighteenProject
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/main.ts b/tests/legacy-cli/e2e/assets/18.0-project/src/main.ts
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/main.ts
rename to tests/legacy-cli/e2e/assets/18.0-project/src/main.ts
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/src/styles.css b/tests/legacy-cli/e2e/assets/18.0-project/src/styles.css
similarity index 100%
rename from tests/legacy-cli/e2e/assets/17.0-project/src/styles.css
rename to tests/legacy-cli/e2e/assets/18.0-project/src/styles.css
diff --git a/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json
new file mode 100644
index 000000000000..3775b37e3bbc
--- /dev/null
+++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.app.json
@@ -0,0 +1,15 @@
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./out-tsc/app",
+ "types": []
+ },
+ "files": [
+ "src/main.ts"
+ ],
+ "include": [
+ "src/**/*.d.ts"
+ ]
+}
diff --git a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json
similarity index 70%
rename from tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json
rename to tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json
index eb49734a4325..a8bb65b6e220 100644
--- a/tests/legacy-cli/e2e/assets/17.0-project/tsconfig.json
+++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.json
@@ -1,4 +1,5 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"compileOnSave": false,
"compilerOptions": {
@@ -9,15 +10,15 @@
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"skipLibCheck": true,
+ "isolatedModules": true,
"esModuleInterop": true,
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true,
- "moduleResolution": "node",
+ "moduleResolution": "bundler",
"importHelpers": true,
"target": "ES2022",
"module": "ES2022",
- "useDefineForClassFields": false,
"lib": [
"ES2022",
"dom"
diff --git a/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json
new file mode 100644
index 000000000000..5fb748d9207a
--- /dev/null
+++ b/tests/legacy-cli/e2e/assets/18.0-project/tsconfig.spec.json
@@ -0,0 +1,15 @@
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./out-tsc/spec",
+ "types": [
+ "jasmine"
+ ]
+ },
+ "include": [
+ "src/**/*.spec.ts",
+ "src/**/*.d.ts"
+ ]
+}
diff --git a/tests/legacy-cli/e2e/tests/basic/e2e.ts b/tests/legacy-cli/e2e/tests/basic/e2e.ts
deleted file mode 100644
index 655b679192d1..000000000000
--- a/tests/legacy-cli/e2e/tests/basic/e2e.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import assert from 'node:assert/strict';
-import { setTimeout } from 'node:timers/promises';
-import { silentNg } from '../../utils/process';
-
-export default async function () {
- await assert.rejects(silentNg('e2e', 'test-project', '--dev-server-target='));
-
- // These should work.
- await silentNg('e2e', 'test-project');
- await setTimeout(500);
- await silentNg('e2e', 'test-project', '--dev-server-target=test-project:serve');
-}
diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts b/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts
deleted file mode 100644
index 7e70e885a929..000000000000
--- a/tests/legacy-cli/e2e/tests/commands/e2e/e2e-and-serve.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { silentNg } from '../../../utils/process';
-import { ngServe } from '../../../utils/project';
-
-export default async function () {
- // Should run side-by-side with `ng serve`
- await ngServe();
- await silentNg('e2e');
-}
diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts b/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts
deleted file mode 100644
index c7da20adf900..000000000000
--- a/tests/legacy-cli/e2e/tests/commands/e2e/multiple-specs.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { silentNg } from '../../../utils/process';
-import { moveFile, copyFile } from '../../../utils/fs';
-
-export default async function () {
- // Should accept different multiple spec files
- await moveFile('./e2e/src/app.e2e-spec.ts', './e2e/src/renamed-app.e2e-spec.ts');
- await copyFile('./e2e/src/renamed-app.e2e-spec.ts', './e2e/src/another-app.e2e-spec.ts');
-
- await silentNg(
- 'e2e',
- 'test-project',
- '--specs',
- './e2e/renamed-app.e2e-spec.ts',
- '--specs',
- './e2e/another-app.e2e-spec.ts',
- );
-}
diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts b/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts
deleted file mode 100644
index 52e9494e4062..000000000000
--- a/tests/legacy-cli/e2e/tests/commands/e2e/protractor-config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { moveFile } from '../../../utils/fs';
-import { silentNg } from '../../../utils/process';
-
-export default async function () {
- // Should accept different config file
- await moveFile('./e2e/protractor.conf.js', './e2e/renamed-protractor.conf.js');
- await silentNg('e2e', 'test-project', '--protractor-config=e2e/renamed-protractor.conf.js');
-}
diff --git a/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts b/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts
deleted file mode 100644
index 519ed63a71bb..000000000000
--- a/tests/legacy-cli/e2e/tests/commands/e2e/suite.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { silentNg } from '../../../utils/process';
-import { replaceInFile } from '../../../utils/fs';
-
-export default async function () {
- // Suites block need to be added in the protractor.conf.js file to test suites
- await replaceInFile(
- 'e2e/protractor.conf.js',
- `allScriptsTimeout: 11000,`,
- `allScriptsTimeout: 11000,
- suites: {
- app: './e2e/src/app.e2e-spec.ts'
- },
- `,
- );
- await silentNg('e2e', 'test-project', '--suite=app');
-}
diff --git a/tests/legacy-cli/e2e/tests/generate/class.ts b/tests/legacy-cli/e2e/tests/generate/class.ts
deleted file mode 100644
index e1b21f28982a..000000000000
--- a/tests/legacy-cli/e2e/tests/generate/class.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'node:path';
-import { ng } from '../../utils/process';
-import { expectFileToExist } from '../../utils/fs';
-
-export default function () {
- const projectDir = join('src', 'app');
-
- return (
- ng('generate', 'class', 'test-class')
- .then(() => expectFileToExist(projectDir))
- .then(() => expectFileToExist(join(projectDir, 'test-class.ts')))
- .then(() => expectFileToExist(join(projectDir, 'test-class.spec.ts')))
-
- // Try to run the unit tests.
- .then(() => ng('test', '--watch=false'))
- );
-}
diff --git a/tests/legacy-cli/e2e/tests/generate/interface.ts b/tests/legacy-cli/e2e/tests/generate/interface.ts
deleted file mode 100644
index d58248d27ac4..000000000000
--- a/tests/legacy-cli/e2e/tests/generate/interface.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { join } from 'node:path';
-import { ng } from '../../utils/process';
-import { expectFileToExist } from '../../utils/fs';
-
-export default function () {
- const interfaceDir = join('src', 'app');
-
- return (
- ng('generate', 'interface', 'test-interface', 'model')
- .then(() => expectFileToExist(interfaceDir))
- .then(() => expectFileToExist(join(interfaceDir, 'test-interface.model.ts')))
-
- // Try to run the unit tests.
- .then(() => ng('test', '--watch=false'))
- );
-}
diff --git a/tests/legacy-cli/e2e/tests/mcp/best-practices.ts b/tests/legacy-cli/e2e/tests/mcp/best-practices.ts
new file mode 100644
index 000000000000..55736c63795b
--- /dev/null
+++ b/tests/legacy-cli/e2e/tests/mcp/best-practices.ts
@@ -0,0 +1,43 @@
+import { chdir } from 'node:process';
+import { exec, ProcessOutput, silentNpm } from '../../utils/process';
+import assert from 'node:assert/strict';
+
+const MCP_INSPECTOR_PACKAGE_NAME = '@modelcontextprotocol/inspector-cli';
+const MCP_INSPECTOR_PACKAGE_VERSION = '0.16.2';
+const MCP_INSPECTOR_COMMAND_NAME = 'mcp-inspector-cli';
+
+async function runInspector(...args: string[]): Promise {
+ const result = await exec(
+ MCP_INSPECTOR_COMMAND_NAME,
+ '--cli',
+ 'npx',
+ '--no',
+ '@angular/cli',
+ 'mcp',
+ ...args,
+ );
+
+ return result;
+}
+
+export default async function () {
+ await silentNpm(
+ 'install',
+ '--ignore-scripts',
+ '-g',
+ `${MCP_INSPECTOR_PACKAGE_NAME}@${MCP_INSPECTOR_PACKAGE_VERSION}`,
+ );
+
+ // Ensure `get_best_practices` returns the markdown content
+ const { stdout: stdoutInsideWorkspace } = await runInspector(
+ '--method',
+ 'tools/call',
+ '--tool-name',
+ 'get_best_practices',
+ );
+
+ assert.match(
+ stdoutInsideWorkspace,
+ /You are an expert in TypeScript, Angular, and scalable web application development./,
+ );
+}
diff --git a/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts b/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts
index e2c9461d6a26..a1271b35b64c 100644
--- a/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts
+++ b/tests/legacy-cli/e2e/tests/mcp/registers-tools.ts
@@ -29,19 +29,21 @@ export default async function () {
);
// Ensure 'list_projects' is registered when inside an Angular workspace
- const { stdout: stdoutInsideWorkspace } = await runInspector('--method', 'tools/list');
+ try {
+ const { stdout: stdoutInsideWorkspace } = await runInspector('--method', 'tools/list');
- assert.match(stdoutInsideWorkspace, /"list_projects"/);
- assert.match(stdoutInsideWorkspace, /"get_best_practices"/);
- assert.match(stdoutInsideWorkspace, /"search_documentation"/);
+ assert.match(stdoutInsideWorkspace, /"list_projects"/);
+ assert.match(stdoutInsideWorkspace, /"get_best_practices"/);
+ assert.match(stdoutInsideWorkspace, /"search_documentation"/);
- chdir('..');
+ chdir('..');
- const { stdout: stdoutOutsideWorkspace } = await runInspector('--method', 'tools/list');
+ const { stdout: stdoutOutsideWorkspace } = await runInspector('--method', 'tools/list');
- assert.doesNotMatch(stdoutOutsideWorkspace, /"list_projects"/);
- assert.match(stdoutOutsideWorkspace, /"get_best_practices"/);
- assert.match(stdoutInsideWorkspace, /"search_documentation"/);
-
- silentNpm('uninstall', '-g', MCP_INSPECTOR_PACKAGE_NAME);
+ assert.doesNotMatch(stdoutOutsideWorkspace, /"list_projects"/);
+ assert.match(stdoutOutsideWorkspace, /"get_best_practices"/);
+ assert.match(stdoutInsideWorkspace, /"search_documentation"/);
+ } finally {
+ await silentNpm('uninstall', '-g', MCP_INSPECTOR_PACKAGE_NAME);
+ }
}
diff --git a/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts b/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts
index 66b58d87b908..ce343df77d29 100644
--- a/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts
+++ b/tests/legacy-cli/e2e/tests/update/update-multiple-versions.ts
@@ -7,7 +7,7 @@ import { expectToFail } from '../../utils/utils';
export default async function () {
let restoreRegistry: (() => Promise) | undefined;
try {
- restoreRegistry = await createProjectFromAsset('17.0-project', true);
+ restoreRegistry = await createProjectFromAsset('18.0-project', true);
await setRegistry(true);
const extraArgs = ['--force'];
diff --git a/tests/legacy-cli/e2e/tests/update/update.ts b/tests/legacy-cli/e2e/tests/update/update.ts
index d6b73b585eff..3ab99bb0d7b6 100644
--- a/tests/legacy-cli/e2e/tests/update/update.ts
+++ b/tests/legacy-cli/e2e/tests/update/update.ts
@@ -11,10 +11,10 @@ export default async function () {
try {
// We need to use the public registry because in the local NPM server we don't have
// older versions @angular/cli packages which would cause `npm install` during `ng update` to fail.
- restoreRegistry = await createProjectFromAsset('17.0-project', true);
+ restoreRegistry = await createProjectFromAsset('18.0-project', true);
// CLI project version
- const cliMajorProjectVersion = 17;
+ const cliMajorProjectVersion = 18;
// If using npm, enable legacy peer deps mode to avoid defects in npm 7+'s peer dependency resolution
// Example error where 11.2.14 satisfies the SemVer range ^11.0.0 but still fails:
@@ -71,12 +71,12 @@ export default async function () {
await ng('update', '@angular/cli', ...extraUpdateArgs);
// Generate E2E setup
- await ng('generate', 'private-e2e', '--related-app-name=seventeen-project');
+ await ng('generate', 'private-e2e', '--related-app-name=eighteen-project');
// Setup testing to use CI Chrome.
- await useCIChrome('seventeen-project', './');
- await useCIChrome('seventeen-project', './e2e/');
- await useCIDefaults('seventeen-project');
+ await useCIChrome('eighteen-project', './');
+ await useCIChrome('eighteen-project', './e2e/');
+ await useCIDefaults('eighteen-project');
// Run CLI commands.
await ng('generate', 'component', 'my-comp');
@@ -87,5 +87,5 @@ export default async function () {
// Verify project now creates bundles
await noSilentNg('build', '--configuration=production');
- await expectFileMatchToExist('dist/seventeen-project/browser', /main-[a-zA-Z0-9]{8}\.js/);
+ await expectFileMatchToExist('dist/eighteen-project/browser', /main-[a-zA-Z0-9]{8}\.js/);
}
diff --git a/tests/legacy-cli/e2e/tests/vitest/basic.ts b/tests/legacy-cli/e2e/tests/vitest/basic.ts
new file mode 100644
index 000000000000..5d2f2c3e2b37
--- /dev/null
+++ b/tests/legacy-cli/e2e/tests/vitest/basic.ts
@@ -0,0 +1,15 @@
+import assert from 'node:assert/strict';
+import { applyVitestBuilder } from '../../utils/vitest';
+import { ng } from '../../utils/process';
+
+export default async function (): Promise {
+ await applyVitestBuilder();
+
+ const { stderr } = await ng('test');
+
+ assert.match(
+ stderr,
+ /NOTE: The "unit-test" builder is currently EXPERIMENTAL/,
+ 'Expected stderr to include the experimental notice.',
+ );
+}
diff --git a/tests/legacy-cli/e2e/tests/vitest/component.ts b/tests/legacy-cli/e2e/tests/vitest/component.ts
new file mode 100644
index 000000000000..421587892196
--- /dev/null
+++ b/tests/legacy-cli/e2e/tests/vitest/component.ts
@@ -0,0 +1,12 @@
+import assert from 'node:assert/strict';
+import { applyVitestBuilder } from '../../utils/vitest';
+import { ng } from '../../utils/process';
+
+export default async function (): Promise {
+ await applyVitestBuilder();
+ await ng('generate', 'component', 'my-comp');
+
+ const { stdout } = await ng('test');
+
+ assert.match(stdout, /2 passed/, 'Expected 2 tests to pass.');
+}
diff --git a/tests/legacy-cli/e2e/utils/vitest.ts b/tests/legacy-cli/e2e/utils/vitest.ts
new file mode 100644
index 000000000000..0cf662bdd48c
--- /dev/null
+++ b/tests/legacy-cli/e2e/utils/vitest.ts
@@ -0,0 +1,28 @@
+import { silentNpm } from './process';
+import { updateJsonFile } from './project';
+
+/** Updates the `test` builder in the current workspace to use Vitest. */
+export async function applyVitestBuilder(): Promise {
+ await silentNpm('install', 'vitest@3.2.4', 'jsdom@26.1.0', '--save-dev');
+
+ await updateJsonFile('angular.json', (json) => {
+ const projects = Object.values(json['projects']);
+ if (projects.length !== 1) {
+ throw new Error(
+ `Expected exactly one project but found ${projects.length} projects named ${Object.keys(
+ json['projects'],
+ ).join(', ')}`,
+ );
+ }
+ const project = projects[0]! as any;
+
+ // Update to Vitest builder.
+ const test = project['architect']['test'];
+ test['builder'] = '@angular/build:unit-test';
+ test['options'] = {
+ tsConfig: test['options']['tsConfig'],
+ buildTarget: '::development',
+ runner: 'vitest',
+ };
+ });
+}
diff --git a/tools/bazel/npm_package.bzl b/tools/bazel/npm_package.bzl
index 0a76bfe1bb73..d38cebef4579 100644
--- a/tools/bazel/npm_package.bzl
+++ b/tools/bazel/npm_package.bzl
@@ -45,7 +45,7 @@ def npm_package(
pkg_label = to_label(pkg_dep)
if pkg_label.name != "package.json":
fail("ERROR: only package.json files allowed in pkg_deps of pkg_npm macro")
- pkg_deps_copies.append("@%s//%s:package_json_copy" % (pkg_label.workspace_name, pkg_label.package))
+ pkg_deps_copies.append("@@%s//%s:package_json_copy" % (pkg_label.repo_name, pkg_label.package))
# Substitute dependencies on other packages in this repo with tarballs.
link_package_json_to_tarballs(
diff --git a/tools/link_package_json_to_tarballs.bzl b/tools/link_package_json_to_tarballs.bzl
index 38172e53acc9..1a8ea5a17486 100644
--- a/tools/link_package_json_to_tarballs.bzl
+++ b/tools/link_package_json_to_tarballs.bzl
@@ -41,7 +41,7 @@ def link_package_json_to_tarballs(name, src, pkg_deps, out):
# for the tar for this package as that would create a circular dependency.
pkg_label = to_label(pkg_dep)
if pkg_label.package != src_pkg:
- pkg_tar = "@%s//%s:npm_package_archive.tgz" % (pkg_label.workspace_name, pkg_label.package)
+ pkg_tar = "@@%s//%s:npm_package_archive.tgz" % (pkg_label.repo_name, pkg_label.package)
srcs.append(pkg_tar)
# Deriving the absolute path to the tar in the execroot requries different
diff --git a/tools/test/BUILD.bazel b/tools/test/BUILD.bazel
index 2e651ae3e654..5d210ff7ac50 100644
--- a/tools/test/BUILD.bazel
+++ b/tools/test/BUILD.bazel
@@ -1,5 +1,5 @@
-load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
load("@aspect_bazel_lib//lib:jq.bzl", "jq")
+load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
jq(
name = "final_package_json",